我在 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
下次重新啟動就成功了。