Aktualisieren Sie Grub in einer Chroot-Umgebung mit Root auf einem Luks-verschlüsselten Volume

Aktualisieren Sie Grub in einer Chroot-Umgebung mit Root auf einem Luks-verschlüsselten Volume

Ich möchte ein System (alle von mir verwendeten Systeme basieren auf Ubuntu 16.04) von einer unverschlüsselten Partition auf eine mit Luks verschlüsselte Partition (auf derselben Festplatte) verschieben.

Zu diesem Zweck habe ich ein mit LUKS verschlüsseltes logisches Volume erstellt, das eine Root- und eine Swap-Partition enthält. Anschließend habe ich den Inhalt der vorhandenen Partition mit in die neue Root-Partition kopiert dd. Ich habe überprüft, ob diese neue Root die richtige Verzeichnisstruktur enthält, und einen Festplattenscan der Partition durchgeführt.

Der Plan bestand darin, per Chroot auf das neue System zuzugreifen und Grub von dort aus zu aktualisieren.

Im Detail versuche ich Folgendes (eine Kombination aus Ubuntu-Hilfeseiten undWie installiere ich Grub von einem Live-USB neu, wenn die /-Partition verschlüsselt ist und eine separate /-Boot-Partition vorhanden ist?):

# 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

Leider klappt das nicht, da update-grubdas auf der verschlüsselten Partition installierte System nicht gefunden wird. Es wird nur die vorhandene Installation auf einer anderen Partition gefunden /dev/sda3.

Was vermisse ich?

Antwort1

Es sieht so aus, als hätten Sie vergessen, eine richtige /etc/mtap-Datei zu erstellen

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

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

verwandte Informationen