Příprava disku
Aktualizujte btrfs-progs
pacman -Syy btrfs-progs
Zobrazení disků a oddílů
lsblk
Vytvořte oddíly EFI System a Linux LUKS
Number | Start (sector | End (sector) | Size | Code | Name |
1 | 2048 | 1130495 | 256.0 MiB | EF00 | EFI System |
2 | 1130496 | 976773134 | 465.2 GiB | 8309 | Linux LUKS |
gdisk /dev/nvme0n1 # alternative apps cfdisk fdisk
o n [Enter] 0 +256M ef00 n [Enter] [Enter] [Enter] 8309 w
Vytvořte šifrovaný kontejner LUKS1 na oddílu Linux LUKS (GRUB nepodporuje LUKS2 od května 2019)
cryptsetup luksFormat --type luks1 --use-random -S 1 -s 512 -h sha512 -i 1000 /dev/nvme0n1p2
Otevřete kontejner (dešifrujte jej a zpřístupněte na /dev/mapper/cryptbtrfs)
cryptsetup open /dev/nvme0n1p2 cryptbtrfs
Příprava svazku/podsvazků BTRFS
Formátování btrfs, nyní již dešifrovaného disku
mkfs.btrfs -L "Arch Linux" /dev/mapper/cryptbtrfs
Připojit souborový systém (zatím bezparametrické)
mount /dev/mapper/cryptbtrfs /mnt
Vytvoření podsvazků (subvolumes)
Toto schéma lze upravit podle vašich potřeb, navrhoval bych alespoň jeden podsvazek pro root (@) a jeden pro snímky (.@snapshots). varlog a tmp jsou vytvořeny pro snadné zakázání kopírování při zápisu na /var/log a /tmp. pkg subvolume naopak pomáhá v organizaci pacman balíčků s možností jejich zálohy a vrácení se k předchozím verzím. docker subvolume umožňuje efektivní práci s dockrem, který má implementovanou efektivní spolupráci s btrfs souborovým systémem.
btrfs sub cr /mnt/@
btrfs sub cr /mnt/@home
btrfs sub cr /mnt/@tmp
btrfs sub cr /mnt/@log
btrfs sub cr /mnt/@pkg
btrfs sub cr /mnt/@docker
btrfs sub cr /mnt/.@snapshots
Zakázat kopírování při zápisu do /var/log a /tmp
chattr +C /mnt/@log chattr +C /mnt/@tmp umount /mnt
Připojení subolumes BTRFS, nyní již s kompletní parametrizací pro stálé používání
mount -o defaults,noatime,discard,ssd,subvol=@ /dev/mapper/cryptbtrfs /mnt
mkdir -p /mnt/{home,var/log,var/cache/pacman/pkg,var/lib/docker,tmp,.snapshots}
# Discard and ssd options and are for ssd disks only
mount -o defaults,noatime,discard,ssd,subvol=@home /dev/mapper/cryptbtrfs /mnt/home
mount -o defaults,noatime,discard,ssd,subvol=@tmp /dev/mapper/cryptbtrfs /mnt/tmp
mount -o defaults,noatime,discard,ssd,subvol=@log /dev/mapper/cryptbtrfs /mnt/var/log
mount -o defaults,noatime,discard,ssd,subvol=@pkg /dev/mapper/cryptbtrfs /mnt/var/cache/pacman/pkg/
mount -o defaults,noatime,discard,ssd,subvol=@docker /dev/mapper/cryptbtrfs /mnt/var/lib/docker
mount -o defaults,noatime,discard,ssd,subvol=.@snapshots /dev/mapper/cryptbtrfs /mnt/.snapshots
Příprava oddílu EFI
Vytvořte souborový systém FAT32 na systémovém oddílu EFI
mkfs.fat -F32 /dev/nvme0n1p1
Vytvořte bod připojení pro systémový oddíl EFI na /efi pro kompatibilitu s grub-install a připojte jej
mkdir /mnt/efi mount /dev/nvme0n1p1 /mnt/efi