====== Install ======
===== from archlinux iso =====
install on archiso zfs system from https://github.com/eoli3n/archiso-zfs
curl -s https://raw.githubusercontent.com/eoli3n/archiso-zfs/master/init | bash
===== ext4 =====
create partition
DISK=ata-SSDPR-CX400-256-G2_GY3042305
sgdisk --clear -g $DISK
sgdisk -n3:1M:+512M -t3:EF00 $DISK # boot partition or efi partition
parted $DISK set 3 bios_grub on
sgdisk -n1:0:0 -t1:8300 $DISK
format
mkfs.ext4 -L ROOT $DISK-part1
mount
mount $DISK-part1 /mnt
install arch
pacstrap /mnt base linux-lts linux-firmware
genfstab -U /mnt >> /mnt/etc/fstab
follow https://wiki.archlinux.org/title/installation_guide
==== ZFS ====
Reset disk and create GPT partition schema
DISK=/dev/disk/by-id/ata-HFS512G39MND-3510A_FJ64N5235113A4S13
sgdisk --clear -g $DISK
Prepare partitions
# Run this if you need legacy (BIOS) booting:
# sgdisk -a1 -n2:34:2047 -t2:EF02 $DISK
# Run this for legacy (BIOS) boot or UEFI booting or raidz pool:
sgdisk -n3:1M:+512M -t3:EF00 $DISK
parted $DISK set 3 bios_grub on # needed for embedding grub in this partition
# and after run these:
sgdisk -n9:-8M:0 -t9:BF07 $DISK
sgdisk -n1:0:0 -t1:BF01 $DISK
Create pool or ...
zpool create -o ashift=12 \
-O atime=off -O canmount=off -O normalization=formD \
-O mountpoint=/ -R /mnt -f \
rpool ${DISK}-part1
... import existing pool
zpool export rpool
zpool import -R /mnt rpool
... umount everything inside /mnt and remove subfolders
zfs mount rpool/ROOT/arch
or create raidz pool
zpool create -O atime=off -O mountpoint=/ -R /mnt -O canmount=off -O compression=lz4 -O normalization=formD -o ashift=12 \
rpool raidz /dev/disk/by-id/ata-ST4000NM0035-1V4107_ZC10????-part1
create dataset
zfs create -o canmount=off -o mountpoint=none rpool/ROOT
zfs create -o canmount=noauto -o mountpoint=/ rpool/ROOT/arch
zfs mount rpool/ROOT/arch
zfs create -o setuid=off rpool/home
zpool set bootfs=rpool/ROOT/arch rpool
install base system
pacstrap /mnt base
echo "rpool/ROOT/arch / zfs rw,noatime,xattr,noacl 0 0" > /mnt/etc/fstab
zfs cache
[ -f /etc/zfs/zpool.cache ] || zpool set cachefile=/etc/zfs/zpool.cache rpool
mkdir -p /mnt/etc/zfs
cp /etc/zfs/zpool.cache /mnt/etc/zfs/zpool.cache
arch-chroot /mnt
===== Install system =====
pacman -Syyu
pacman -S base vim
add archzfs repo
cat >> etc/pacman.conf <
basic configuration
ln -sf /usr/share/zoneinfo/Europe/Rome /etc/localtime
hwclock --systohc
cat > /etc/locale.gen < /etc/locale.conf
echo nero > /etc/hostname
echo "KEYMAP=it\nFONT=Lat2-Terminus16" > /etc/vconsole.conf
edit /etc/mkinitcpio.conf to change HOOKS order
HOOKS=(base udev autodetect modconf block keyboard zfs filesystems)
regenerate initram
mkinitcpio -p linux-lts
bios grub
pacman -S grub os-prober
ZPOOL_VDEV_NAME_PATH=1 grub-install --target=i386-pc /dev/sda
ZPOOL_VDEV_NAME_PATH=1 grub-mkconfig -o /boot/grub/grub.cfg
uefi grub
# exit from chroot
mount /dev/sda3 /arch/efi # /dev/sda3 is EFI partition
chroot /arch bash
mount -t efivarfs efivarfs /sys/firmware/efi/efivars
pacman --noconfirm -S grub efibootmgr
ZPOOL_VDEV_NAME_PATH=1 grub-install --target=x86_64-efi --efi-directory=/efi --bootloader-id=arch
edit /etc/default/grub
GRUB_CMDLINE_LINUX_DEFAULT="noresume zfs_force=1 libahci.ignore_sss=1 vga=current"
generate grub config
export ZPOOL_VDEV_NAME_PATH=1
grub-mkconfig -o /boot/grub/grub.cfg
root password
passwd
==== User ====
pacman -S sudo
useradd -m scipio
usermod -a -G wheel scipio
passwd scipio
decomment wheel in /etc/sudoers
==== Basic ====
systemctl start systemd-timesyncd.service
systemctl enable systemd-timesyncd.service
==== Gnome ====
pacman -S gnome gpaste network-manager-applet
systemctl enable NetworkManager.service
systemctl enable gdm
nvidia
pacman -S nvidia-dmks
others
pacman -S fish rsync openssh
pacman -S libreoffice-fresh-it
exit
mount | grep -v zfs | tac | awk '/\/mnt/ {print $3}' | xargs -i{} umount -lf {}
zpool export rpool
reboot