我在 Ubuntu LTS 期间彻底失败了do-release-upgrade
,内核在启动时会崩溃,即使在救援模式下也是如此。所以我加载了一个 LiveUSB,挂载了我的加密分区,chroot 到它并修复/完成了安装。或者我是这么认为的。
它现在走得更远了(没有恐慌)但它无法找到正确的加密分区:它正在寻找 kubuntu-vg 而真正的名称(在 /dev/sda5 上)应该是 mapper/kubuntu--vg-root 然后它将我带到一个 busybox shell。
我应该怎么做才能更改 LUKS 分区的名称?它是 initramfs 设置的 grub 吗?
编辑:从 initramfs shell:
cryptsetup luksOpen /dev/sda5 kubuntu-vg
lvm pvscan
[Ctrl-D]
然后它就可以正常启动了。但是我该如何修复系统呢?一切似乎都很正常,但即使在以下情况下,启动仍然失败update-grub
:
$ blkid
/dev/sda5: UUID="99db...9f" TYPE="crypto_LUKS" PARTUUID="00...05"
...
$ cat /etc/crypttab
sda5_crypt UUID=99db...9f none luks
$ cat /etc/fstab
/dev/mapper/kubuntu--vg-root / ext4 errors=remount-ro 0 1
...
$ sudo update-initramfs -k all -u
update-initramfs: Generating /boot/initrd.img-5.15.0-47-generic
cryptsetup: WARNING: target 'kubuntu-vg' not found in /etc/crypttab
我错过了什么?
编辑2:如果我编辑 fstab:
$ cat /etc/fstab
#/dev/mapper/kubuntu--vg-root / ext4 errors=remount-ro 0 1
/dev/mapper/sda5_crypt / ext4 errors=remount-ro 0 1
$ sudo update-initramfs -k all -u
update-initramfs: Generating /boot/initrd.img-5.15.0-47-generic
cryptsetup: WARNING: target 'kubuntu-vg' not found in /etc/crypttab
W: Couldn't identify type of root file system for fsck hook
所以这比离开更糟糕kubuntu--vg-root
答案1
我根据消息中的提示update-initramfs
进行了更改/etc/crypttab
:
#sda5_crypt UUID=99dbb00a-51e5-4081-aa45-bb9999d9bf9f none luks
kubuntu-vg UUID=99dbb00a-51e5-4081-aa45-bb9999d9bf9f none luks
$ sudo update-initramfs -k all -u
update-initramfs: Generating /boot/initrd.img-5.15.0-47-generic
...
done
下次重启即可。