![LUKS/Cryptosetup 和 LVM:启动后无法输入密码](https://linux22.com/image/1143998/LUKS%2FCryptosetup%20%E5%92%8C%20LVM%EF%BC%9A%E5%90%AF%E5%8A%A8%E5%90%8E%E6%97%A0%E6%B3%95%E8%BE%93%E5%85%A5%E5%AF%86%E7%A0%81.png)
所以我多次成功地遵循了这个特别的教程 http://thesimplecomputer.info/full-disk-encryption-with-ubuntu
有 2 个略有不同的地方:使用 lubuntu 代替 ubuntu,并将其安装在 USB 密钥上而不是普通驱动器上。
然而,当我最近尝试在新的 usb 密钥上使用它时,发生了一些事情。在使用的最初几天里一切都很好,直到我用 apt-get 进行了 dist-upgrade。我完成了它,没有问题或中断。
但是现在当我启动时,基本上我会看到通常的 Lubuntu 启动画面,但没有我通常输入密码的输入字段。
我尝试按向上或向下箭头键,看看是否可以在终端模式下输入,但没有成功。看到的只是消息“cryptsetup:lvm 不可用”,重复无数次,然后基本上 busybox 模式就启动了。
注意:使用其他 USB 密钥时,也会随机出现该消息“cryptsetup:lvm 不可用”(USB 密钥中相同的 cryptsetup + lubuntu),但我仍然有输入字段,并且可以继续解锁加密卷而不会出现问题。
所以我现在不明白问题出在哪里。我认为问题不在于 grub 或 boot,否则根本无法启动。
最后的 dist-upgrade 肯定导致了这个问题,我刚刚看到它确实更新了 linux 标头等等,但我无法理解这个问题。
如果这有关系的话,我正在使用安装在具有 MBR 分区表的磁盘上的 lubuntu yakkety。
我可以尝试如何修复此问题?有没有办法通过 busybox 修复此问题?我并不是使用此类终端的专家
更新
根据以下答案的建议,我尝试从 neon live cd 中进行以下操作:
- 使用 KDE 分区管理器并解锁加密的 LUKS 卷。现在您需要激活 LVM。在 KDE 分区管理器中按 F5(刷新)或在终端中输入 sudo vgchange -ay。您的根文件系统现在应该作为块设备出现在 /dev/mapper/ 中。同样,在 KDE 分区管理器中,可能更容易直观地看到根文件系统的名称。假设它是 /dev/mapper/rootfs,但您必须在下面的命令中替换正确的路径。
然后执行以下命令将 chroot 到您的根文件系统:
sudo mount /dev/mapper/rootfs /mnt1 sudo mount --bind /dev /mnt/dev sudo mount --bind /sys /mnt/sys sudo chroot /mnt
最后使用“sudo update-initramfs -u -k all”我得到了以下输出:
update-initramfs: Generating /boot/initrd.img-4.8.0-32-generic
cat: /proc/cmdline: No such file or directory
/proc/devices: fopen failed: No such file or directory
Failed to set up list of device-mapper major numbers
Incompatible libdevmapper 1.02.130 (2016-07-06) and kernel driver (unknown version).
Command failed
cryptsetup: WARNING: failed to determine cipher modules to load for root
/proc/devices: fopen failed: No such file or directory
Failed to set up list of device-mapper major numbers
Incompatible libdevmapper 1.02.130 (2016-07-06) and kernel driver (unknown version).
Command failed
cryptsetup: WARNING: failed to determine cipher modules to load for swap
Warning: couldn't identify filesystem type for fsck hook, ignoring.
update-initramfs: Generating /boot/initrd.img-4.8.0-30-generic
cat: /proc/cmdline: No such file or directory
/proc/devices: fopen failed: No such file or directory
Failed to set up list of device-mapper major numbers
Incompatible libdevmapper 1.02.130 (2016-07-06) and kernel driver (unknown version).
Command failed
cryptsetup: WARNING: failed to determine cipher modules to load for root
/proc/devices: fopen failed: No such file or directory
Failed to set up list of device-mapper major numbers
Incompatible libdevmapper 1.02.130 (2016-07-06) and kernel driver (unknown version).
Command failed
cryptsetup: WARNING: failed to determine cipher modules to load for swap
Warning: couldn't identify filesystem type for fsck hook, ignoring.
更新2:
这是我删除所有内容并重复整个过程后得到的新错误输出。我包括了 grub 启动菜单后我可以看到的两个屏幕。
执行命令“update-initramfs -u -k all”后,我看到此错误日志:
root@lubuntu:/# update-initramfs -u -k all
update-initramfs: Generating /boot/initrd.img-4.8.0-22-generic
device-mapper: table ioctl on root failed: No such device or address
Command failed
cryptsetup: WARNING: failed to determine cipher modules to load for root
device-mapper: table ioctl on swap failed: No such device or address
Command failed
cryptsetup: WARNING: failed to determine cipher modules to load for swap
W: Possible missing firmware /lib/firmware/i915/kbl_guc_ver9_14.bin for module i915
W: Possible missing firmware /lib/firmware/i915/bxt_guc_ver8_7.bin for module i915
Warning: couldn't identify filesystem type for fsck hook, ignoring.
在这里你可以看到启动后 lubuntu 的显示情况,密码输入没有显示
答案1
我建议下载已经打包了 KDE Partition Manager 3.0 的 Neon Live CD(但 Ubuntu 17.04 也会有)。然后打开终端窗口并运行
sudo apt update; sudo apt install cryptsetup lvm2 partitionmanager
- 启动 KDE 分区管理器并解锁加密的 LUKS 卷。或者,您也可以从终端执行此操作:
sudo cryptsetup open /path/to/USB_device decrypted
。此步骤后将/dev/mapper/decrypted
包含 LVM PV 卷。 - 现在您需要激活 LVM。在 KDE 分区管理器中按 F5(刷新)或
sudo vgchange -ay
在终端中输入。您的根文件系统现在应该在中显示为块设备/dev/mapper/
。同样,在 KDE 分区管理器中,从视觉上看您的根文件系统的名称可能更容易。假设它是,/dev/mapper/rootfs
但您必须在下面的命令中替换正确的路径。
然后执行以下命令将 chroot 到您的根文件系统:
sudo mount /dev/mapper/rootfs /mnt
sudo mount --bind /dev /mnt/dev
sudo mount --bind /sys /mnt/sys
sudo mount --bind /proc /mnt/proc
sudo chroot /mnt
sudo mount /boot
现在您需要重新生成 initramfs。尝试运行:
sudo update-initramfs -u -k all
看看它是否显示任何有关 lvm 的错误,您需要修复这些错误。稍后我会尝试找到更多链接...请在此处发布您看到的任何错误。