我在 Debian 8 Jessie 的安装过程中尝试使用全盘加密 + LVM 加密所有硬盘,我做到了,但是,出现了一个小“问题”。
在系统询问我解锁磁盘的密码之前,它会显示一条消息:
Loading, please wait...
[5.004102] sd 2:0:0:0: [sda] Assuming drive cache: write through
Volume group "lvm_group" not found
Skipping volume group lvm_group
Unable to find LVM volume lvm_group/root
Volume group "lvm_group" not found
Skipping volume group lvm_group
Unable to find LVM volume lvm_group/swap
Please unlock disk sda5_crypt:
但是当我输入密码并按 Enter 时,系统成功启动,没有任何问题。我不明白为什么。
我在其他论坛和文章/手册中发现了一些人有类似的问题,但我发现的人只是在出现“无法找到 LVM 卷”消息后无法启动,但输入密码后可以启动系统。
我的文件系统表:
# /etc/fstab: static file system information.
#
# Use 'blkid' to print the universally unique identifier for a
# device; this may be used with UUID= as a more robust way to name devices
# that works even if disks are added and removed. See fstab(5).
#
# <file system> <mount point> <type> <options> <dump> <pass>
/dev/mapper/lvm_group-root / ext4 errors=remount-ro 0 1
# /boot was on /dev/sda1 during installation
UUID=4f7e12ab-84d3-4715-bab4-62cf5033ca8a /boot ext4 defaults 0 2
/dev/mapper/lvm_group-home /home ext4 defaults 0 2
/dev/mapper/lvm_group-swap none swap sw 0 0
/dev/sr0 /media/cdrom0 udf,iso9660 user,noauto 0 0
我的密码表:
sda5_crypt UUID=21feadfc-72e7-4a2c-b5f2-0c9ca3137b03 none luks
我的/proc/cmdline:
BOOT_IMAGE=/vmlinuz-3.16.0-4-amd64 root=/dev/mapper/lvm_group-root ro quiet
那么我该如何修复它并避免这些消息呢?我感觉我已经尝试了一切。
答案1
这不是一个错误,所以您不应该尝试让它消失。
initramfs 中的脚本会趁机检查是否可以激活包含根设备的 LVM VG,然后再要求密码短语来解密任何加密设备。如果您的根设备未加密,这将起作用,并且系统将立即继续启动。否则,您将有机会输入密码来解密任何可能的加密设备,然后它会再次尝试访问 VG。看:
/usr/share/initramfs-tools/scripts/local-top/lvm2
/usr/share/initramfs-tools/scripts/local-top/cryptroot
activate_vg()
特别是每个脚本中的函数。
答案2
为了那些通过 DuckDuckGo 来到此页面的人。
这是 Debian 的一个长期存在的 bug(尽管只是一个装饰性的 bug)。查看此错误报告:https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=544651
如果它困扰你,请像这样修补它:
--- /usr/share/initramfs-tools/scripts/local-top/lvm2 2017-03-17 19:03:07.000000000 +0300
+++ /etc/initramfs-tools/scripts/local-top/lvm2 2019-08-17 17:40:29.371725145 +0300
@@ -20,7 +20,15 @@
fi
.
lvchange_activate() {
- lvm lvchange -aay -y --sysinit --ignoreskippedcluster "$@"
+ # Workaround for making LVM less noisy.
+ # See: https://groups.google.com/forum/#!topic/linux.debian.bugs.dist/iAAVTXslawQ ("Bug#799295: lvm2: Errors about lvmetad on boot")
+ if grep -sqw "quiet" /proc/cmdline; then
+ mkdir -p /run/log
+ echo "Running script '$0' on $(date)" >> /run/log/initrd-lvm.log 2>&1
+ lvm lvchange -aay -y --sysinit --ignoreskippedcluster "$@" >> /run/log/initrd-lvm.log 2>&1
+ else
+ lvm lvchange -aay -y --sysinit --ignoreskippedcluster "$@"
+ fi
}
.
activate() {
基本上,将 /usr/share/initramfs-tools/scripts/local-top/lvm2 复制到 /etc/initramfs-tools/scripts/local-top/lvm2,对其进行修补(例如使用上面的修补程序或类似的东西),然后添加quiet
内核命令行的参数。
重建您的 initramfs。
重启。
享受 :)