Một cái gì đó đã bị hỏng ở đâu đó và tôi phải chạy cập nhật-initramfs
. Tôi đã tìm thấy các hướng dẫn rất giống nhau ở ba nơi riêng biệt:
- 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/
Đây là cách tôi đến đó.
Tôi đã tải Ubuntu từ USB trực tiếp và chạy fdisk -l
để xem các phân vùng của tôi và đoán phân vùng nào đã được mã hóa. Tôi đã thấy những thứ này (trong số những thứ khác):
/dev/nvme2n1p1
: Hệ thống EFI 512M
/dev/nvme2n1p2
: Hệ thống tập tin Linux 732M
/dev/nvme2n1p3
: Hệ thống tập tin Linux 1.8T <- Tôi đoán nó là cái này.
Sau đó, tôi đã giải mã phân vùng và gắn kết nó như thế này:
sudo -i
cryptsetup mở /dev/nvme2n1p3 $name
vgchange -ay
mkdir /mnt/root
gắn kết /dev/mapper/$name /mnt/root
Cái đó để mình kiểm tra /etc/crypttab
để xem tên thiết bị nào sẽ sử dụng khi giải mã phân vùng (nvme0n1p3_crypt
trong trường hợp này):
nvme0n1p3_crypt UUID=743ab129-75bb-429b-8366-9c066f00c4fe none luks, discard
Sau đó tôi nhìn vào /etc/fstab
để xem phân vùng nào là phân vùng khởi động và phân vùng EFI:
# /boot đã bật /dev/nvme0n1p2 trong khi cài đặt
UUID=773ceeb2-5c0f-4838-baad-a1182d7fdd80 /boot ext4 mặc định 0 2
# /boot/efi bật /dev/nvme0n1p1 trong khi cài đặt
UUID=5C17-FB32 /boot/efi vfat umask=0077 0 1
Khi cài đặt, các phân vùng này được đặt tên như nvme0n1p*
, nhưng không còn nữa. Tôi có thể tìm thấy tên hiện tại của họ bằng cách liệt kê /dev/đĩa/by-uuid
:
$ ls -l /dev/đĩa/by-uuid/
lrwxrwxrwx 1 root root 15 Jan 31 12:29 5C17-FB32 -> ../../nvme2n1p1
lrwxrwxrwx 1 root root 15 Jan 31 12:29 743ab129-75bb-429b-8366-9c066f00c4fe -> ../../nvme2n1p3
lrwxrwxrwx 1 root root 15 Jan 31 12:29 773ceeb2-5c0f-4838-baad-a1182d7fdd80 -> ../../nvme2n1p2
Bây giờ tôi đã có tất cả những phần tôi cần để làm theo hướng dẫn. Đây là các lệnh thực tế tôi đã thực hiện:
sudo -i
cryptsetup mở /dev/nvme2n1p3 nvme0n1p3_crypt
gắn kết /dev/mapper/nvme0n1p3_crypt /mnt/root
gắn kết/dev/nvme2n1p2/mnt/root/boot
gắn kết/dev/nvme2n1p1/mnt/root/boot/efi
gắn kết --bind/dev/mnt/root/dev
gắn kết --bind /run /mnt/root/run
chroot /mnt/root
mount -t proc proc /proc
gắn kết -t sysfs sys /sys
cập nhật-initramfs -c -k tất cả
Sau đó, tôi có thể khởi động lại máy và khởi động vào một trong các nhân đã cài đặt.