Atualize o grub em um ambiente chroot com root em um volume criptografado luks

Atualize o grub em um ambiente chroot com root em um volume criptografado luks

Quero mover um sistema (todos os sistemas que estou usando são baseados no Ubuntu 16.04) de uma partição não criptografada para uma partição criptografada luks (no mesmo disco).

Para isso, criei um volume lógico criptografado LUKS que contém uma raiz e uma partição swap. Então copiei o conteúdo da partição existente para a nova partição raiz usando dd. Verifiquei se esta nova raiz contém a estrutura de diretórios adequada e executei uma verificação de disco da partição.

O plano era fazer chroot no novo sistema e atualizar o grub a partir daí.

Em detalhes, estou tentando o seguinte (que é uma combinação das páginas de ajuda do Ubuntu eComo reinstalar o grub de um liveUSB se a partição / estiver criptografada e houver uma partição /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

Infelizmente, não funciona assim, pois update-grubparece não encontrar o sistema instalado na partição criptografada. Ele apenas encontra a instalação existente em uma partição diferente /dev/sda3.

o que estou perdendo?

Responder1

Parece que você esqueceu de criar um arquivo /etc/mtap adequado

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

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

informação relacionada