La partición de una imagen de disco virtual de un invitado Lubuntu KVM que instalé recientemente se ve así:
# lsblk -f
NAME FSTYPE LABEL UUID FSAVAIL FSUSE% MOUNTPOINT
loop0 squashfs
0 100% /rofs
... SNIP ...
sr0 iso9660 Ubuntu 19.10 amd64 2019-10-17-12-53-34-00 0 100% /cdrom
vda
└─vda1 crypto_LUKS xxxx-yyyy-zzzz
En otras palabras, tiene una única partición de sistema cifrada ( vda1
) y ninguna partición de arranque. (NB. Arranqué en una imagen en vivo para examinar/cambiar el tamaño de la partición cifrada y me sorprendió la falta de partición de arranque).
Pregunta:¿Cómo puede el sistema arrancar (¡porque arranca!) a pesar de no tener una partición de arranque?
Preguntas de seguimiento para mi mejor comprensión:
- ¿El arranque funciona porque KVM gestiona el descifrado por sí mismo?
- ¿O esto también funcionaría en un sistema host?
- Si también funcionaría en una configuración independiente, ¿por qué alguna vez creamos la partición de arranque (no cifrada), y no solo la partición cifrada independiente, como esta?
- Si es KVM el que gestiona el descifrado, ¿qué garantiza que KVM tenga
cryptsetup
instalada la versión correcta/compatible que se utilizó para crear el dispositivo cifrado? ¿Qué pasa si la versión no coincide? - Si es KVM el que gestiona el descifrado, entonces supongo que al momento de instalar Lubuntu con cifrado de disco completo, el instalador notó que se estaba ejecutando en una VM y decidió que crear una única partición cifrada sería suficiente. ¿Es este el caso? Y si es así, ¿por qué no me preguntó si quiero la configuración "normal", con la partición de arranque?
Observación: de hecho, la interfaz gráfica de usuario para abrir el disco cifrado en el arranque es bastante espartana. Es una interfaz gráfica de usuario basada en texto, donde tengouno soloIntente ingresar la frase de contraseña para abrir la partición cifrada, sin ningún tipo de respuesta (los asteriscos no parecen mostrar al menos cuántos caracteres ingresé). Antes asumía que la razón era que Lubuntu es más simple que Ubuntu, pero ahora sospecho (como se escribió anteriormente) que KVM administra el descifrado por sí mismo.
Respuesta1
Hay varias posibilidades:
no se requiere ninguna partición de inicio cuando se utiliza la partición MBR/DOS, GRUB con soporte de criptodisco y LUKS 1 (o LUKS 2 con frase de contraseña PBKDF2). Las versiones futuras de GRUB podrían ser totalmente compatibles con LUKS 2, pero afaik aún no ha llegado a ese punto (no hay soporte para argon2i hasta el momento).
kernel/initramfs puede almacenarse externamente y cargarse directamente mediante qemu/KVM pasando
-kernel -initrd
las opciones apropiadas a qemu. En este caso, el propio qemu actúa como cargador de arranque, por lo que tampoco hay necesidad de una partición de arranque dentro de la VM.La imagen del kernel puede existir en un dispositivo específico desplazado antes de la primera partición; no una partición/sistema de archivos/archivo, sino escrita directamente como datos sin procesar en el dispositivo, y el gestor de arranque sabe dónde buscarla. Este enfoque suele verse únicamente en dispositivos integrados.
¿Por qué alguna vez creamos la partición de arranque (no cifrada) y no solo la partición cifrada independiente, como esta?
El problema es que, después de todo, el gestor de arranque tiene que ir a alguna parte, por lo que con la partición MBR/DOS, gran parte de eso ocurrió en un espacio no particionado. Seguro que puede funcionar... hasta que dos cosas diferentes intenten colocar sus datos en el mismo desplazamiento y se sobrescriban entre sí, de todos modos.
Se decidió que sería mejor tener particiones adecuadas para estos. Entonces, con GPT obtienes una partición EFI y/o GRUB obtiene una partición bios_grub para su imagen principal, y así sucesivamente.
Lo ideal sería que luego pudieras mirar la tabla de particiones y saber cómo está configurada, y no rascarte la cabeza y preguntar aquí cómo funcionan las cosas porque todo está escondido y escondido fuera de la partición en alguna parte.