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를 통해 이 페이지를 찾아주신 여러분을 위해.

이것은 데비안의 오랜 버그입니다(외관적인 버그이기는 하지만). 이 버그 보고서를 확인하세요.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를 다시 빌드하세요.

재시작.

즐기다:)

관련 정보