Keeping about 15% unallocated space on both disks.
sgdisk --zap-all /dev/disk/by-id/ata-CT240BX500SSD1_A
sgdisk -n1:0:+550M -t1:ef00 /dev/disk/by-id/ata-CT240BX500SSD1_A
sgdisk -n2:0:+190G -t2:8300 /dev/disk/by-id/ata-CT240BX500SSD1_A
sgdisk -n3:0:+8G -t3:8200 /dev/disk/by-id/ata-CT240BX500SSD1_A
sgdisk --zap-all /dev/disk/by-id/ata-CT240BX500SSD1_B
sgdisk -n1:0:+550M -t1:ef00 /dev/disk/by-id/ata-CT240BX500SSD1_B
sgdisk -n2:0:+190G -t2:8300 /dev/disk/by-id/ata-CT240BX500SSD1_B
sgdisk -n3:0:8G -t3:8200 /dev/disk/by-id/ata-CT240BX500SSD1_B
mkfs.vfat -F 32 /dev/disk/by-id/ata-CT240BX500SSD1_A-part1
mkfs.vfat -F 32 /dev/disk/by-id/ata-CT240BX500SSD1_B-part1
mkswap /dev/disk/by-id/ata-CT240BX500SSD1_A-part3
mkswap /dev/disk/by-id/ata-CT240BX500SSD1_B-part3
swapon /dev/disk/by-id/ata-CT240BX500SSD1_A-part3 /dev/disk/by-id/ata-CT240BX500SSD1_B-part3
mkfs.btrfs -L system -m raid1 -d raid0 /dev/disk/by-id/ata-CT240BX500SSD1_A-part2 /dev/disk/by-id/ata-CT240BX500SSD1_B-part2
mkdir /mnt/system
mount -o rw,noatime,nodiratime,compress=no,ssd,space_cache /dev/disk/by-label/system /mnt/system
mkdir /mnt/system/{snapshots,default}
btrfs su cr /mnt/system/default/ROOT
btrfs su cr /mnt/system/snapshots/ROOT
btrfs su cr /mnt/system/default/home
btrfs su cr /mnt/system/default/local
btrfs su cr /mnt/system/default/log
btrfs su cr /mnt/system/default/pkg
btrfs su cr /mnt/system/default/docker
btrfs su cr /mnt/system/default/mysql
mkdir -p /mnt/default
mount -o rw,noatime,nodiratime,compress=no,ssd,space_cache,subvol=default/ROOT /dev/disk/by-label/system /mnt/default
mkdir -p /mnt/default/{boot,home,local,var/log,var/cache/pacman/pkg,var/lib/docker,var/lib/mysql,.snapshots}
mount /dev/disk/by-id/ata-CT240BX500SSD1_A-part1 /mnt/default/boot
mount -o rw,noatime,nodiratime,compress=no,ssd,space_cache,subvol=default/home /dev/disk/by-label/system /mnt/default/home
mount -o rw,noatime,nodiratime,compress=no,ssd,space_cache,subvol=default/local /dev/disk/by-label/system /mnt/default/local
mount -o rw,noatime,nodiratime,compress=no,ssd,space_cache,subvol=default/log /dev/disk/by-label/system /mnt/default/var/log
mount -o rw,noatime,nodiratime,compress=no,ssd,space_cache,subvol=default/pkg /dev/disk/by-label/system /mnt/default/var/cache/pacman/pkg
mount -o rw,noatime,nodiratime,compress=no,ssd,space_cache,subvol=default/docker /dev/disk/by-label/system /mnt/default/var/lib/docker
mount -o rw,noatime,nodiratime,compress=no,ssd,space_cache,nodatacow,subvol=default/mysql /dev/disk/by-label/system /mnt/default/var/lib/mysql
mount -o rw,noatime,nodiratime,compress=zstd:3,ssd,space_cache,subvol=snapshots/ROOT /dev/disk/by-label/system /mnt/default/.snapshots
pacstrap /mnt/default base base-devel linux linux-firmware btrfs-progs vim sudo networkmanager openssh amd-ucode rsync
genfstab -U /mnt/default >> /mnt/default/etc/fstab
arch-chroot /mnt/default
[...]
bootctl --path=/boot install
[...]
Add btrfs
hook in mkinitcpio.conf
and create initial ramdisk.
mkinitcpio -p linux
passwd
exit
umount -R /mnt/{default,system}
reboot
Create directories:
mkdir /.snapshots/{B,R}OOT /run/ROOT
Mount top-level volume:
UUID=415391c1-657a-4102-82c3-239e4363fc71 /run/ROOT btrfs rw,nodev,nosuid,noexec,noatime,nodiratime,compress=no,ssd,space_cache 0 0