Arch + LUKS2 + Btrfs + GRUB-on-EFI Installation
Этап первый. Разметка диска
На данном этапе требуется создать два раздела на имеющихся у вас накопителях: один - для EFI, другой - для системы. Диск следует разметить как GPT.
Вики: https://wiki.archlinux.org/title/fdisk
Этап второй. Создание разделов
# mkfs.vfat -F32 /dev/{EFI-раздел}
# cryptsetup --key-size 512 --hash sha512 luksFormat /dev/{системный раздел}
# cryptsetup open /dev/{системный раздел} root
# mkfs.btrfs /dev/{системный раздел}
# mount -o compress-force=zstd:4 /dev/{системный раздел} /mnt
# mount --mkdir /dev/{раздел EFI} /mnt/boot/efi
Этап третий. Установка пакетов и настройка системы
# reflector --save /etc/pacman.d/mirrorlist --latest 5 --country Russia --protocol https
# pacstrap -K /mnt base base-devel {ядро, например, linux} linux-firmware efibootmgr {менеджер сети, например, networkmanager} {текстовый редактор, например, nano}
# genfstab -U /mnt > /mnt/etc/fstab
Выбираем нужные нам локали и запускаем далее:
# echo LANG={локаль, например, en_US.UTF-8} > /etc/locale.conf
# ln -sf /usr/share/zoneinfo/{регион}/{город} /etc/localtime
# echo {имя хоста} > /etc/hostname
Пишем:
127.0.0.1 localhost {имя хоста}
:: 1 localhost {имя хоста}
# systemctl enable NetworkManager
# dd bs=512 count=4 if=/dev/urandom of=/crypto_keyfile.bin
# cryptsetup luksAddKey /dev/{системный раздел} /crypto_keyfile.bin
# chmod 600 /crypto_keyfile.bin
Нам потребуется вручную собрать загрузчик, поэтому выбираем yay из любого репозитория: https://pkgs.org/search/?q=yay
# curl {ссылка на yay из одного из репозиториев, например, https://arch.alerque.com/x86_64/yay-12.0.4-1-x86_64.pkg.tar.zst}
# pacman -U {имя файла пакета, например, yay-12.0.4-1-x86_64.pkg.tar.zst}
# useradd -m {имя пользователя}
Вписываем после строки
root ALL=(ALL:ALL) ALL
строку:
{имя пользователя} ALL=(ALL:ALL) ALL
$ yay -S grub-improved-luks2-git
$ sudo nano /etc/mkinitcpio.conf
Редактируем следующие строки:
MODULES=(btrfs vfat)
FILES=(/crypto_keyfile.bin)
HOOKS=(base udev autodetect modconf kms keyboard keymap block encrypt filesystems fsck)
$ sudo chmod 600 /boot/initramfs-linux*
Редактируем следующие строки:
GRUB_CMDLINE_LINUX="cryptdevice=UUID={UUID системного раздела, смотрим через команду "lsblk -f"}:root root=/dev/mapper/root"
GRUB_ENABLE_CRYPTODISK=y
$ sudo grub-mkconfig -o /boot/grub/grub.cfg
$ sudo grub-install --target=x86_64-efi --efi-directory=/boot/efi --bootloader-id=GRUB
$ sudo nano /boot/grub/grub-pre.cfg
Пишем:
set crypto_uuid={UUID системного раздела}
cryptomount -u $crypto_uuid
set root=crypto0
set prefix=($root)/boot/grub
insmod normal
normal
$ grub-mkimage -p /boot/grub -O x86_64-efi -c /boot/grub/grub-pre.cfg -o /tmp/grubx64.efi luks2 part_gpt cryptodisk gcry_rijndael gcry_sha512 argon2 btrfs
$ sudo install -v /tmp/grubx64.efi /boot/efi/EFI/GRUB/grubx64.efi
После этого, дважды нажав Ctrl+D, выходим в консоль archiso и вводим: