มีบางอย่างติดขัดที่ไหนสักแห่งและฉันต้องวิ่งหนี อัปเดต-initramfs
. ฉันพบคำแนะนำที่คล้ายกันมากในสามแห่ง:
- https://ubuntuforums.org/showthread.php?t=2409754&s=e1f324bf5e566b3bb93374cd07bdcc17&p=13828993
- https://askubuntu.com/a/868726/538768
- https://feeding.cloud.geek.nz/posts/recovering-from-unbootable-ubuntu-encrypted-lvm-root-partition/
นี่คือวิธีที่ฉันไปที่นั่น
ฉันโหลด Ubuntu จาก USB สดแล้ววิ่ง fdisk -l
เพื่อดูพาร์ติชันของฉันและเดาว่าพาร์ติชันใดถูกเข้ารหัส ฉันเห็นสิ่งเหล่านี้ (ในหมู่คนอื่น ๆ ):
/dev/nvme2n1p1
: ระบบ EFI 512M
/dev/nvme2n1p2
: ระบบไฟล์ Linux 732M
/dev/nvme2n1p3
: ระบบไฟล์ Linux 1.8T <-- ฉันเดาว่าเป็นอันนี้
จากนั้นฉันถอดรหัสพาร์ติชันและติดตั้งดังนี้:
sudo -i
cryptsetup เปิด /dev/nvme2n1p3 $name
vgchange -อาย
mkdir /mnt/รูท
เมานต์ /dev/mapper/$name /mnt/root
ที่ให้ฉันตรวจสอบ /etc/crypttab
เพื่อดูว่าจะใช้ชื่ออุปกรณ์ใดเมื่อถอดรหัสพาร์ติชัน (nvme0n1p3_crypt
ในกรณีนี้):
nvme0n1p3_crypt UUID=743ab129-75bb-429b-8366-9c066f00c4fe ไม่มีลูก ทิ้ง
จากนั้นฉันก็มองไปที่ /etc/fstab
หากต้องการดูว่าพาร์ติชันใดเป็นพาร์ติชันสำหรับเริ่มระบบและพาร์ติชัน EFI:
# /boot เปิด /dev/nvme0n1p2 ระหว่างการติดตั้ง
UUID=773ceeb2-5c0f-4838-baad-a1182d7fdd80 /boot ext4 ค่าเริ่มต้น 0 2
# /boot/efi เปิด /dev/nvme0n1p1 ระหว่างการติดตั้ง
UUID=5C17-FB32 /boot/efi vfat umask=0077 0 1
ในการติดตั้งพาร์ติชันเหล่านี้มีชื่อดังนี้ nvme0n1p*
แต่ไม่มีอีกต่อไป ฉันสามารถหาชื่อปัจจุบันของพวกเขาได้จากรายการ /dev/disk/by-uuid
:
$ ls -l /dev/disk/by-uuid/
lrwxrwxrwx 1 รูท 15 ม.ค. 31 12:29 5C17-FB32 -> ../../nvme2n1p1
lrwxrwxrwx 1 ราก 15 มกราคม 31 12:29 743ab129-75bb-429b-8366-9c066f00c4fe -> ../../nvme2n1p3
lrwxrwxrwx 1 รูท 15 ม.ค. 31 12:29 773ceeb2-5c0f-4838-baad-a1182d7fdd80 -> ../../nvme2n1p2
ตอนนี้ฉันมีชิ้นส่วนทั้งหมดที่จำเป็นสำหรับทำตามคำแนะนำ นี่คือคำสั่งจริงที่ฉันดำเนินการ:
sudo -i
cryptsetup เปิด /dev/nvme2n1p3 nvme0n1p3_crypt
เมานต์ /dev/mapper/nvme0n1p3_crypt /mnt/root
เมานต์ /dev/nvme2n1p2 /mnt/root/boot
เมานต์ /dev/nvme2n1p1 /mnt/root/boot/efi
เมานต์ --bind /dev /mnt/root/dev
เมานต์ --bind /run /mnt/root/run
chroot /mnt/รูท
เมานต์ -t proc proc /proc
เมานต์ -t sysfs sys /sys
อัปเดต initramfs -c -k ทั้งหมด
จากนั้นฉันก็สามารถรีสตาร์ทเครื่องและบูตเข้าเคอร์เนลที่ติดตั้งไว้ตัวใดตัวหนึ่ง