# 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**
120481130495256.0 MiBEF00EFI System
21130496976773134465.2 GiB8309Linux 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) ```shell 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 ```shell mkfs.btrfs -L "Arch Linux" /dev/mapper/cryptbtrfs ``` #### Připojit souborový systém (zatím bezparametrické) ```shell 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. ```shell 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í ```shell 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 ```