Что-то где-то заглючило, и мне пришлось бежать обновление-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 <-- Я догадался, что это она.
Затем я расшифровал раздел и смонтировал его так:
судо -я
cryptsetup открыть /dev/nvme2n1p3 $имя
vgchange -ай
mkdir/мнт/корень
смонтировать /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/диск/по-uuid
:
$ ls -l /dev/диск/по-uuid/
lrwxrwxrwx 1 root root 15 31 января 12:29 5C17-FB32 -> ../../nvme2n1p1
lrwxrwxrwx 1 root root 15 31 января 12:29 743ab129-75bb-429b-8366-9c066f00c4fe -> ../../nvme2n1p3
lrwxrwxrwx 1 root root 15 31 января 12:29 773ceeb2-5c0f-4838-baad-a1182d7fdd80 -> ../../nvme2n1p2
Теперь у меня были все детали, необходимые для выполнения инструкций. Вот фактические команды, которые я выполнил:
судо -я
cryptsetup открыть /dev/nvme2n1p3 nvme0n1p3_crypt
смонтировать /dev/mapper/nvme0n1p3_crypt /mnt/root
монтировать /dev/nvme2n1p2 /mnt/root/boot
смонтировать /dev/nvme2n1p1 /mnt/root/boot/efi
mount --bind /dev /mnt/root/dev
mount --bind /run /mnt/root/run
chroot/мнт/корень
mount -t proc proc /proc
mount -t sysfs sys /sys
обновление-initramfs -c -k все
Затем я смог перезагрузить машину и загрузить одно из установленных ядер.