Actualice grub en un entorno chroot con root en un volumen cifrado luks

Actualice grub en un entorno chroot con root en un volumen cifrado luks

Quiero mover un sistema (todos los sistemas que estoy usando están basados ​​en Ubuntu 16.04) de una partición no cifrada a una cifrada con luks (en el mismo disco).

Con este fin, creé un volumen lógico cifrado LUKS que contiene una raíz y una partición de intercambio. Luego copié el contenido de la partición existente a la nueva partición raíz usando dd. Verifiqué que esta nueva raíz contiene la estructura de directorio adecuada y realicé un escaneo del disco de la partición.

El plan era hacer chroot al nuevo sistema y actualizar grub desde allí.

En detalle, estoy probando lo siguiente (que es una combinación de las páginas de ayuda de Ubuntu y¿Cómo reinstalar grub desde un liveUSB si la partición / está cifrada y hay una partición /boot separada?):

# Unlock crypto file system
sudo cryptsetup luksOpen /dev/sda2 lukslvm 

sudo vgscan 
sudo vgchange -ay
sudo svscan

# Mount root file system
sudo mount /dev/mapper/vgubuntu-root /mnt
# Mount boot filesystem
sudo mount /dev/sda1 /mnt/boot
# Mount required internal file systems
sudo mount -o rbind /dev /mnt/dev
sudo mount -t proc proc /mnt/proc
sudo mount -t sysfs sys /mnt/sys
## Additional LVM directories (for older systems)
sudo mount -o rbind /run/lvm /mnt/run/lvm
sudo mount -o rbind /run/lock/lvm /mnt/run/lock/lvm
# Enable DNS resolution
sudo cp /etc/resolv.conf /mnt/etc/resolv.conf
# Change to the encrypted system
sudo chroot /mnt /bin/bash

# Install required software
sudo apt-get install cryptsetup lvm2

# Edit /etc/crypttab
sudo printf "lukslvm\tUUID=%s\tnone\tluks\n" "$(cryptsetup luksUUID /dev/sda2)" | tee -a /etc/crypttab

# /etc/modules editieren
sudo echo "dm-crypt" >> /etc/modules

# Update kernel initramfs
sudo update-initramfs -u -k all

echo "Edit /etc/default/grub as GRUB_CMDLINE_LINUX_DEFAULT=\"kopt=root=/dev/mapper/vgubuntu-root\""
sudo vi /etc/default/grub

sudo update-grub

# Leave chroot environment
exit
# Write buffers to disk
sudo sync
# Unmount file systems
sudo umount /mnt/run/lvm
sudo umount /mnt/run/lock/lvm
sudo umount /mnt/sys
sudo umount /mnt/proc
sudo umount /mnt/boot
#
sudo swapoff -a

Desafortunadamente, no funciona de esa manera ya que update-grubno parece encontrar el sistema instalado en la partición cifrada. Sólo encuentra la instalación existente en una partición diferente /dev/sda3.

¿Qué me estoy perdiendo?

Respuesta1

Parece que olvidaste crear un archivo /etc/mtap adecuado

sudo cp /proc/mounts /mnt/etc/mtab

Verhttps://wiki.sabayon.org/index.php?title=HOWTO:_Restore_Grub2

información relacionada