我在我的电脑上安装了 Ubuntu 13.10 64 位。我有一个硬盘 (/dev/sda),带有 LVM 加密分区。
因此问题是重启后我无法启动 Ubuntu(它将我带入 initramfs 提示符并显示消息/dev/mapper/kubuntu....-root missing
:)
所以我认为这是因为在启动过程中它无法使用 cryptsetup 打开 /dev/sda5。如果我进行 chrooting,我可以打开分区并挂载加密的根分区。我尝试在 grub 参数中添加:
cryptopts=target=sda5_crypt,source=/dev/sda5,lvm=vg-root
但在启动过程中的控制台中,我看到在 sda5 上未找到 LVM 卷?我还发现消息:
scripts/local_top/cryptroot:line 1 /sbin/cryptsetup: not found
有人知道哪里出了问题吗?
我尝试系统升级,创建了 cryptroot 文件,重新生成了 initram 文件。
答案1
cryptsetup 模块仅当“在 initramfs 阶段需要解锁设备(例如 root 或恢复设备)”时才添加到 initramfs 映像中(参见:conf-hook
)。但目前只有当根设备不在(加密的)LVM 中时,此功能才可靠地起作用。
要强制将 cryptsetup 模块纳入 initramfs 映像,您必须进行CRYPTSETUP=y
设置/etc/cryptsetup-initramfs/conf-hook
。
您还可以在添加选项cryptopts
时删除 grub/kernel 参数:initramfs
/etc/crypttab
sda5_crypt /dev/sda5 none luks,initramfs
我刚刚回答了类似的问题Unix 和 Linux,您可能也想去那里看看。
答案2
我昨天遇到了这个问题。我使用的是 BTRFS,Ubuntu 自动在文件系统上创建了我不知道的根和主子卷。我需要编辑我的文件/etc/fstab
才能正确挂载这些卷。
提示:进入 initramfs shell 后,稍微操作一下,看看是否ls /root
能恢复任何东西。这让我找到了答案。