Então eu descobri:
Eu particionei o disco parcialmente seguindo o manual:
# parted -a optimal /dev/sda
GNU Parted 2.3
Using /dev/sda
Welcome to GNU Parted! Type 'help' to view a list of commands.
(parted)mklabel gpt
(parted)unit mib
(parted)mkpart primary 1 3
(parted)name 1 grub
(parted)set 1 bios_grub on
(parted)mkpart primary 3 131
(parted)name 2 boot
(parted)mkpart primary 131 -1
(parted)name 3 lvm
(parted)set 2 boot on
(parted)q
A única mudança que fiz foi não fazer uma partição de swap e raiz, mas criar uma única partição e chamá-la de lvm (o nome não importa). Em seguida eu configurei LUKS:
# Load the dm-crypt module (probably not nessesary)
modprobe dm-crypt
# Crypt the partition we named lvm (in my case that would be /dev/sda3)
cryptsetup -c aes-cbc-essiv:sha256 -v luksFormat -s 256 /dev/sda3
# Open the luks volume
cryptsetup luksOpen /dev/sda3 sda3-luks
# Setup a LVM physical volume
lvm pvcreate /dev/mapper/sda3-luks
# Setup a volume group
lvm vgcreate vg0 /dev/mapper/sda3-luks
Depois disso, configure os volumes reais:
# Fist setup the swap volume
lvm lvcreate -L 2048M vg0
# Then check how many 'extends' are free (Free PE) using lvm vgdisplay
# use that number to use up the rest of the space:
lvm lvcreate -l 7809 vg0
Para o resto nós basicamente seguimos o manual exceto onde você normalmente faria coisas para /dev/sda3
(swap) ou /dev/sda4
(root) você usaria agora /dev/mapper/vg0-lvol0
(swap) e /dev/mapper/vg0-lvol1
.
Importante é que, ao gerar o kernel (usei genkernel
para isso), primeiro instale o cryptsetup usando emerge -av cryptsetup
. e, em seguida, execute genkernel
com os seguintes parâmetros:
genkernel --luks --lvm --busybox --menuconfig all
Certifique-se de configurar o kernel para suportar o LVM e os algoritmos de hash e criptografia escolhidos (no meu caso aes
e sha256
). Em seguida, continue seguindo o manual até iniciar o grub
-config.
Antes de executar grub2-mkconfig
, você deve editar o arquivo /etc/defaults/grub
. (Eu devo declarar, para o registro que eu ', não tenho certeza se esta é a melhor solução, mas funciona para mim).
Nesse arquivo eu coloquei o seguinte (encontre e descomente o parâmetro):
GRUB_CMDLINE_LINUX="crypt_root=UUID=<uuid of sda3> dolvm"
Você pode encontrar o UUID correto usando ls -l /dev/disk/by-uuid
. Depois disso, grub2-mkconfig
deve encontrar problemas no kernel e no initramfs em /boot
. Mais uma vez, siga o manual e após a reinicialização, você deverá receber uma solicitação de senha.
Espero que isso ajude alguém.