GRUB and Encrypted Boot
The best security is to have GRUB protected by Secure Boot, and the entire disk encrypted including kernel and initrd image, which would prevent any chances of attacker tampering with the files (the evil maid attack). Since 2.14rc1, GRUB supports the Argon2i and Argon2id PBKDFs which are considered secure; See upstream commit. (Discussion).
Unfortunately, this is not easy to achieve: ArchLinux installer 2026 or later has up-to-date GRUB but it isn’t signed and thus not eligible for Secure Boot; Ubuntu 25.10 packages older GRUB which is signed but doesn’t support Argon2.
Nevertheless, here are instructions on how to have encrypted boot on ArchLinux.
Installation
Go through the terminal-based ArchLinux installation procedure
since archinstall doesn’t support this yet. Create two partitions:
1G uefi and second one of linux type - this will hold the root fs.
The root fs will be encrypted and there will be no separate partition for /boot -
it will reside on the root fs:
mkfs.fat -F 32 /dev/vda1
cryptsetup luksFormat /dev/vda2
cryptsetup open /dev/vda2 root
mkfs.btrfs /dev/mapper/root
mount /dev/mapper/root /mnt
mkdir /mnt/efi
mount /dev/vda1 /mnt/efi
Read dm-crypt documentation on how this works. By default a very secure argon2id pbkdf is used.
Configuring mkinitcpio
We need to configure the mkinitcpio tool, to generate initrd which can handle encryption and can ask for unlock password.
- Edit
/etc/mkinitcpio.confand add thesd-encrypthook toHOOKS, right after theblockhook. - Edit
/etc/crypttab.initramfsand add the following contents:
root UUID=xyz none luks,discard
(You can find the device UUID via blkid -s or lsblk -f)
Rebuild initrd via mkinitcpio -P.
Configuring GRUB
Read GRUB Encrypted /boot.
In short, edit /etc/default/grub and uncomment the line
GRUB_ENABLE_CRYPTODISK=y. Then:
grub-install --target=x86_64-efi --efi-directory=/efi --bootloader-id=GRUB
grub-mkconfig -o /boot/grub/grub.cfg
This installs GRUB into efi which can unlock encrypted disks.
GRUB will automatically go through all encrypted disks and will try to unlock them,
regardless of the contents of grub.cfg or crypttab.initramfs.
After it finds disk which holds grub.cfg, it reads the file, shows the menu and
allows to read initrd and boot from it.
Possible vulnerabilities
An evil maid can overwrite GRUB with one that asks for password and uploads it somewhere. This is mitigated by using signed GRUB and having Secure Boot enabled - BIOS then refuses to boot unsigned GRUBs.
An evil maid can boot from USB, spoof GRUB signed with custom CA/MOK, then register the MOK to Secure Boot - you must password-protect your bios and disable passwordless boot device selector in BIOS.