Debian 错误消息:“无法找到 LVM 卷”,但随后启动成功

Debian 错误消息:“无法找到 LVM 卷”,但随后启动成功

我在 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。

重启。

享受 :)

相关内容