Šifrovaná instalace BTRFS a LUKS pomocí Calam-Arch-installer

Šifrovaná instalace BTRFS a LUKS pomocí Calam-Arch-installer

29. 5. 2021 3 Od archos

Pro začátečníka je složité až skoro nemožné Arch nainstalovat a nakonfigurovat podle svých potřeb. Někoho může i instalace v příkazovém řádku odradit. V dnešním návodu si ukážeme,jak nainstalovat Arch Linux pomocí instalátoru Calam-Arch-installer. Tento návod předpokládá, že Arch Linux bude jediným OS v zařízení.

Tímto návodem získáte:

  • Plně LUKS šifrovaný oddíl obsahující souborový systém BTRFS s / boot, / root a / home
  • / a /home jako samostatné dílčí svazky, které umožňují snadnou a úložnou úsporu místa snímků kořenového systému
  • automatické vytváření snímků (při upgradu systému a každodenním bootování)
  • schopnost zavést do funkčního snímku z nabídky grub (automatické vytváření spouštěcích položek) a poté nastavit tento nebo jiný snímek jako nový výchozí systém (z grafického uživatelského rozhraní)

1.Stažení a příprava instalačního USB

Nejdříve stáhneme ISO Calam-Arch-Installer . Obraz zapíšeme na USB disk, třeba pomocí nástroje Etcher. Restartujeme počítač a při zavádění systému v BIOSu nastavíme zavádění systému pomocí USB.

Po nabootování Vás přivítá úvodní obrazovka.

Necháme systém nabotovat do grafického prostředí

Příprava instalace

Nejdříve musíme udělat pár maličkostí před instalací našeho nového systému.

Změňte výchozí nastavení btrfs calamar pro fstab. Následující krok vynutí, aby calamar přiřadil a používal kompresi na všech instalačních zařízeních btrfs; bez ohledu na to, zda jsou ssd nebo hdd. Použijeme kompresi zstd.

Otevřete  Terminal, Firefox s tímto návodem a zadejte (nebo označte a zkopírujte níže uvedené příkazy pomocí ctrl-c a vložte do terminálu pomocí shift-ctrl-v | vždy můžete kopírovat a vložit všechny řádky zobrazené v jednom bloku najednou)

sudo sed -i 's/compress=lzo/compress=zstd/' /usr/share/calamares/modules/fstab.conf
sudo sed -i 's/autodefrag/autodefrag,compress=zstd/' /usr/share/calamares/modules/fstab.conf

Terminál necháme otevřený a můžeme přistoupit k samotné instalaci.

Instalace systému

Instalátor Calam-Arch-Installer je založený na instalačním frameworku Calamares, který používají i jiné linuxové distribuce EndeavourOS, Manjaro, Arcolinux a mnoho dalších.

Instalátor nám položí několik otázek. Nejdříve nastavíme jazyk systému

Dále nastavíme naše časové pásmo

V dalším kroku vybereme požadovanou klávesnici

Nyní přejdeme k rozdělení disku. Nejdříve vytvoříme novou tabulku oddílů a jako typ oddílu zvolíme GPT zadáním ok, vytvoříme tabulku

Dále zvolíme ruční rozdělení disku a vytvoříme oddíl 512MB Fat 32 s přípojným bodem /boot a s příznakem boot. Tímto vytvoříme systémový oddíl EFI.

Na zbytku volného místa vytvoříme souborový systém BTRFS, zaškrtneme šifrování a zvolíme heslo.

Přípojný bod pro tento oddíl bude /

V dalším kroku vybereme grafické prostředí, ovladače grafické karty a nebo veškeré balíčky pro správu tisku.

V dalším kroku vytvoříme uživatele, heslo pro přihlášení do systému.

Klikneme na další a systém se nám nainstaluje.Po dokončení instalace systém NERESTARTOVAT,

ale zadáme ještě několik příkazů. Prvním příkazem vytvoříme odkládací prostor. 8G nahradíme námi požadovanou velikostí.

swapsize=8G

Po vytvoření oddílu spustíme další příkazy. Stáčí je jen všechny zkopírovat (ctrl+c) a následně vložit do terminálu (ctrl+shift+v)

sudo mkdir /mnt/btrfs
btrfsonluks=`sudo blkid -o device | grep luks`
sudo mount -o subvolid=5 $btrfsonluks /mnt/btrfs
sudo sed -i 's/compress=zstd 0 1/compress=zstd 0 0/' /mnt/btrfs/@/etc/fstab
sudo sed -i 's/compress=zstd 0 2/compress=zstd 0 0/' /mnt/btrfs/@/etc/fstab
sudo btrfs subvolume create /mnt/btrfs/@var-cache-pacman-pkg
fstabstr=`grep "/home" /mnt/btrfs/@/etc/fstab`
fstabstr=${fstabstr//\/home/\/var\/cache\/pacman\/pkg}
fstabstr=${fstabstr//@home/@var-cache-pacman-pkg}
sudo sh -c "echo $fstabstr >> /mnt/btrfs/@/etc/fstab"
sudo btrfs subvolume create /mnt/btrfs/@swap
sudo mkdir /mnt/btrfs/@/swap
sudo sh -c "printf '\n$btrfsonluks /swap          btrfs   subvol=@swap,defaults,compress=no 0 0\n' >> /mnt/btrfs/@/etc/fstab"
sudo truncate -s 0 /mnt/btrfs/@swap/swapfile
sudo chattr +C /mnt/btrfs/@swap/swapfile
sudo btrfs property set /mnt/btrfs/@swap/swapfile compression none
sudo fallocate -l $swapsize /mnt/btrfs/@swap/swapfile
sudo chmod 600 /mnt/btrfs/@swap/swapfile
sudo mkswap /mnt/btrfs/@swap/swapfile
sudo swapon /mnt/btrfs/@swap/swapfile
sudo sh -c "echo '/swap/swapfile none swap defaults 0 0' >> /mnt/btrfs/@/etc/fstab"
wget https://raw.githubusercontent.com/osandov/osandov-linux/master/scripts/btrfs_map_physical.c
gcc -O2 -o btrfs_map_physical btrfs_map_physical.c
offset=`sudo ./btrfs_map_physical /mnt/btrfs/@swap/swapfile`
offset_arr=(`echo ${offset}`)
offset_pagesize=(`getconf PAGESIZE`)
offset=$(( offset_arr[25] / offset_pagesize ))
sudo sed -i "s/loglevel=3/loglevel=3 resume_offset=$offset/" /mnt/btrfs/@/etc/default/grub
sudo sed -i "s#loglevel=3#resume=$btrfsonluks loglevel=3#" /mnt/btrfs/@/etc/default/grub
sudo sed -i 's/keymap encrypt filesystems/keymap encrypt filesystems resume/' /mnt/btrfs/@/etc/mkinitcpio.conf
sudo mkdir /mnt/chroot
sudo mount -o compress=zstd,subvol=@ $btrfsonluks /mnt/chroot
efidevice=`sudo blkid -o device -l -t TYPE=vfat`
sudo mount $efidevice /mnt/chroot/boot/efi
sudo arch-chroot /mnt/chroot
sudo pacman --noconfirm -S cronie
sudo systemctl enable cronie.service
sudo grub-mkconfig -o /boot/grub/grub.cfg
sudo mkinitcpio -p linux

Nyní můžeme restartovat počítač.

Restart do nového systému

Po restartu a přihlášení do nového systému,musíme nejdřív nainstalovat pomocníka YAY pro AUR repozitář. V AUR repozitáři se nachází zálohovací program Timeshift

pacman -S --needed git base-devel
git clone https://aur.archlinux.org/yay.git
cd yay
makepkg -si

Nyní nainstalujeme program Timeshift a potřebné závislosti.

sudo pacman --noconfirm -Syy &&
yay --noconfirm -S timeshift timeshift-autosnap grub-btrfs

Poté spustíme následující příkazy

sudo cp /etc/timeshift/default.json /etc/timeshift/timeshift.json &&
fs_uuid=`sudo blkid -o device | grep luks` &&
fs_uuid=`sudo blkid -o value -s UUID $fs_uuid` &&
sudo sed -i "s/backup_device_uuid\" : \"/backup_device_uuid\" : \"$fs_uuid/" /etc/timeshift/timeshift.json &&
fs_uuid=`sudo blkid -o device -l -t TYPE=crypto_LUKS` &&
fs_uuid=`sudo blkid -o value -s UUID $fs_uuid` &&
sudo sed -i "s/parent_device_uuid\" : \"/parent_device_uuid\" : \"$fs_uuid/" /etc/timeshift/timeshift.json &&
sudo sed -i 's/run" : "true/run" : "false/' /etc/timeshift/timeshift.json &&
sudo sed -i 's/btrfs_mode" : "false/btrfs_mode" : "true/' /etc/timeshift/timeshift.json &&
sudo sed -i 's/  "include_btrfs_home" : "false",/  "include_btrfs_home_for_backup" : "false",\n  "include_btrfs_home_for_restore" : "false",/' /etc/timeshift/timeshift.json &&
sudo sed -i 's/schedule_daily" : "false/schedule_daily" : "true/' /etc/timeshift/timeshift.json &&
sudo sed -i 's/schedule_boot" : "false/schedule_boot" : "true/' /etc/timeshift/timeshift.json &&
sudo sed -i 's/count_boot" : "5/count_boot" : "3/' /etc/timeshift/timeshift.json
sudo timeshift --create --comments "1st"

Omezení maximálního počtu snímků

Vyberte počet maximálních snímků, které si váš systém ponechá

max_snapshots=15

Poté spusťte

sudo sh -c '
cat > /etc/systemd/system/limit-timeshift-snapshots-update-grub.service <<- "EOF"
[Unit]
Description=Keep only latest max_snapshots timeshift snapshots and update grub.cfg before shutdown
Before=poweroff.target

[Service]
Type=oneshot
RemainAfterExit=yes
ExecStart=/bin/true
ExecStop=

[Install]
WantedBy=multi-user.target
EOF
' &&
sudo sed -i "s#max_snapshots#$max_snapshots#" /etc/systemd/system/limit-timeshift-snapshots-update-grub.service &&
sudo sed -i "s#ExecStop=#ExecStop=/usr/bin/sh -c \"cd /run/timeshift/backup/timeshift-btrfs/snapshots/ \&\& rm -rf \`ls -1r | awk 'NR>$max_snapshots'\` \&\& /usr/bin/grub-mkconfig -o /boot/grub/grub.cfg\"#" /etc/systemd/system/limit-timeshift-snapshots-update-grub.service &&
sudo systemctl enable limit-timeshift-snapshots-update-grub.service &&
sudo systemctl start limit-timeshift-snapshots-update-grub.service

A je to 🙂

nyní máte plně šifrovaný systém Arch Linux, s aumaticky vytvořenými snímky. Stačí jen při botování vybrat k jakému snímku se potřebujete vratit.

Odkazy :