Guía para la configuración de Gentoo con cifrado de disco completo usando LUKS+LVM

Guía para la configuración de Gentoo con cifrado de disco completo usando LUKS+LVM

Estoy buscando una manera de realizar la siguiente configuración en Gentoo:

/dev/sda1 -> /boot (ext2)
/dev/sda2 -> Luks encrypted
|
+-lvm-vg1
  |
  +- /dev/mapper/root-fs -> / (ext4)
  +- /dev/mapper/swap    ->   (swap)

Es básicamente la misma configuración que haría Ubuntu al realizar una instalación gráfica.

Sé cómo configurar LUKS manualmente e incluso la configuración de LVM, pero me quedo atascado al configurarlo en el arranque. ¿Cómo le digo al kernel y al grub que desbloqueen la partición LUKS y monten las particiones LVM correctas?

Respuesta1

Entonces lo descubrí:

Particioné el disco parcialmente siguiendo el 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

El único cambio que hice fue no hacer una partición de intercambio y raíz, sino hacer una partición única y la llamé lvm (el nombre no importa). A continuación configuré 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

Después de eso, configure los volúmenes reales:

# 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 el resto, básicamente seguimos el manual, excepto cuando normalmente harías cosas para /dev/sda3(swap) o /dev/sda4(root), ahora usarías /dev/mapper/vg0-lvol0(swap) y /dev/mapper/vg0-lvol1.

Lo importante es que, al generar el kernel (que usé genkernelpara esto), primero instale cryptsetup usando emerge -av cryptsetup. y luego ejecutar genkernelcon los siguientes parámetros:

genkernel --luks --lvm --busybox --menuconfig all

Asegúrese de configurar el kernel para que admita LVM y los algoritmos de cifrado y hash elegidos (en mi caso aesy sha256). Luego continúe siguiendo el manual hasta que inicie el grubarchivo -config.

Antes de ejecutarlo, grub2-mkconfigdebes editar el archivo /etc/defaults/grub. (Debo decir, para que conste, que no estoy seguro de si esta es la mejor solución, pero funciona para mí).

En ese archivo puse lo siguiente (busque y descomente el parámetro):

GRUB_CMDLINE_LINUX="crypt_root=UUID=<uuid of sda3> dolvm"

Puede encontrar el UUID correcto utilizando ls -l /dev/disk/by-uuid. Después de eso, grub2-mkconfigdebería haber problemas con el kernel y el initramfs en /boot. Nuevamente, siga el manual y, después de reiniciar, debería recibir una solicitud de contraseña.

Espero que esto ayude a alguien más.

información relacionada