luks 暗号化ボリューム上の root を使用して chroot 環境で grub を更新する

luks 暗号化ボリューム上の root を使用して chroot 環境で grub を更新する

システム (使用しているシステムはすべて Ubuntu 16.04 ベース) を暗号化されていないパーティションから luks で暗号化されたパーティション (同じディスク上) に移動したいと考えています。

この目的のために、ルート パーティションとスワップ パーティションを含む LUKS 暗号化論理ボリュームを作成しました。次に、 を使用して、既存のパーティションの内容を新しいルート パーティションにコピーしましたdd。この新しいルートに適切なディレクトリ構造が含まれていることを確認し、パーティションのディスク スキャンを実行しました。

計画は、新しいシステムに chroot し、そこから grub を更新することでした。

具体的には、次のことを試しています(これはUbuntuのヘルプページと/ パーティションが暗号化されていて、別の /boot パーティションがある場合、ライブ USB から grub を再インストールするにはどうすればよいですか?):

# 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:_Restore_Grub2

関連情報