Обновление grub в среде chroot с root-доступом на зашифрованном томе luks

Обновление grub в среде chroot с root-доступом на зашифрованном томе luks

Я хочу переместить систему (все используемые мной системы основаны на Ubuntu 16.04) из незашифрованного раздела в зашифрованный с помощью Luks раздел (на том же диске).

Для этого я создал зашифрованный логический том LUKS, содержащий корень и раздел подкачки. Затем я скопировал содержимое существующего раздела в новый корневой раздел с помощью dd. Я проверил, что этот новый корень содержит правильную структуру каталогов, и выполнил сканирование диска раздела.

План состоял в том, чтобы перейти на новую систему и обновить grub оттуда.

Если говорить более подробно, я пробую следующее (что является комбинацией страниц справки Ubuntu иКак переустановить grub с liveUSB, если раздел / зашифрован и есть отдельный раздел /boot?):

# 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

К сожалению, это не срабатывает, так как update-grubсистема, установленная на зашифрованном разделе, не обнаруживается. Находится только существующая установка на другом разделе /dev/sda3.

Что я упускаю?

решение1

Похоже, вы забыли создать правильный файл /etc/mtap

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

Видетьhttps://wiki.sabayon.org/index.php?title=HOWTO:_Восстановить_Grub2

Связанный контент