luks 암호화 볼륨의 루트를 사용하여 chroot 환경에서 grub 업데이트

luks 암호화 볼륨의 루트를 사용하여 chroot 환경에서 grub 업데이트

암호화되지 않은 파티션에서 Luks 암호화된 파티션(동일한 디스크에 있음)으로 시스템(사용 중인 모든 시스템은 Ubuntu 16.04 기반)을 이동하고 싶습니다.

이를 위해 루트와 스왑 파티션이 포함된 LUKS 암호화 논리 볼륨을 만들었습니다. 그런 다음 .dll을 사용하여 기존 파티션의 내용을 새 루트 파티션에 복사했습니다 dd. 나는 이 새로운 루트에 적절한 디렉토리 구조가 포함되어 있는지 확인하고 파티션의 디스크 스캔을 수행했습니다.

계획은 새로운 시스템으로 chroot하고 거기에서 grub을 업데이트하는 것이었습니다.

자세히 말하자면 다음을 시도하고 있습니다(Ubuntu 도움말 페이지와/ 파티션이 암호화되고 별도의 /boot 파티션이 있는 경우 liveUSB에서 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

관련 정보