부팅시 논리 볼륨이 비활성화됩니다 볼륨 그룹을 찾을 수 없습니다. 오류가

논리 볼륨과 파일 시스템의 크기를 조정했으며 모두 원활하게 진행되었습니다. 새 커널을 설치했으며 재부팅 후 현재 또는 이전 버전으로 부팅 할 수 없습니다. grub (2) 옵션을 선택한 후 볼륨 그룹을 찾을 수 없습니다. 오류가 발생합니다. 통화 중 상자에서 검사하면 볼륨이 장치 매퍼에 등록되지 않았으며 비활성화 된 것으로 나타납니다. 활성화 후 마운트 할 수 없었습니다. 파일을 찾을 수 없습니다 오류가 발생했습니다 (mount / dev / mapper / all-root / mnt).

부팅시 진행하거나 활성화하는 방법에 대한 아이디어가 있습니까? 또는 부팅시 볼륨이 갑자기 비활성화되는 이유는 무엇입니까?

문안 인사,

마렉

편집 : 추가 조사에 따르면 이것은 논리 볼륨의 크기 조정과 관련이 없음이 밝혀졌습니다. 부팅이 실패한 후 ash 셸에서 논리 볼륨을 수동으로 활성화해야한다는 사실과이 문제에 대한 가능한 해결책은 아래의 답변에서 다룹니다.



답변

그래서 결국이 문제를 해결했습니다. 일종의 경쟁 조건 인 논리 볼륨을 감지하는 데 문제 (버그)가 있습니다 (이 경우 KVM 내부에서 발생한다는 사실과 관련이 있습니다). 이에 대해서는 다음 설명 에서 다룹니다 . 내 특별한 경우 (Debian Squeeze) 해결책은 다음과 같습니다.

  • 스크립트 백업 / usr / share / initramfs-tools / scripts / local-top / lvm2
  • 언급 된 버그 보고서에서 패치 적용
  • update-initramfs -u를 실행하십시오.

이것은 나를 도왔습니다. 다른 사람들을 도울 것입니다 (이상하게도 아직 주류의 일부는 아닙니다).

패치 링크 : _http : //bugs.debian.org/cgi-bin/bugreport.cgi? msg = 10; filename = lvm2_wait-lvm.patch; att = 1; bug = 568838

아래는 후손을위한 사본입니다.

--- /usr/share/initramfs-tools/scripts/local-top/lvm2 2009-08-17 19:28:09.000000000 +0200
+++ /usr/share/initramfs-tools/scripts/local-top/lvm2 2010-02-19 23:22:14.000000000 +0100
@@ -45,12 +45,30 @@

  eval $(dmsetup splitname --nameprefixes --noheadings --rows "$dev")

- if [ "$DM_VG_NAME" ] && [ "$DM_LV_NAME" ]; then
-   lvm lvchange -aly --ignorelockingfailure "$DM_VG_NAME/$DM_LV_NAME"
-   rc=$?
-   if [ $rc = 5 ]; then
-     echo "Unable to find LVM volume $DM_VG_NAME/$DM_LV_NAME"
-   fi
+ # Make sure that we have non-empty volume group and logical volume
+ if [ -z "$DM_VG_NAME" ] || [ -z "$DM_LV_NAME" ]; then
+   return 1
+ fi
+
+ # If the logical volume hasn't shown up yet, give it a little while
+ # to deal with LVM on removable devices (inspired from scripts/local)
+ fulldev="/dev/$DM_VG_NAME/$DM_LV_NAME"
+ if [ -z "`lvm lvscan -a --ignorelockingfailure |grep $fulldev`" ]; then
+   # Use default root delay
+   slumber=$(( ${ROOTDELAY:-180} * 10 ))
+
+   while [ -z "`lvm lvscan -a --ignorelockingfailure |grep $fulldev`" ]; do
+     /bin/sleep 0.1
+     slumber=$(( ${slumber} - 1 ))
+     [ ${slumber} -gt 0 ] || break
+   done
+ fi
+
+ # Activate logical volume
+ lvm lvchange -aly --ignorelockingfailure "$DM_VG_NAME/$DM_LV_NAME"
+ rc=$?
+ if [ $rc = 5 ]; then
+   echo "Unable to find LVM volume $DM_VG_NAME/$DM_LV_NAME"
  fi
 }

답변

/etc/init.d/lvm다음 을 포함하여 시작 스크립트를 작성하십시오 .

#!/bin/sh

case "$1" in
 start)
    /sbin/vgscan
    /sbin/vgchange -ay
    ;;
  stop)
    /sbin/vgchange -an
    ;;
  restart|force-reload)
    ;;
esac

exit 0

그런 다음 명령을 실행하십시오.

chmod 0755 /etc/init.d/lvm
update-rc.d lvm start 26 S . stop 82 1 .

데비안 시스템에 대한 트릭을 수행해야합니다.


답변

나도이 문제가 있었다. 결국 이것은 이것을 고치는 것처럼 보였습니다.

diff -u /usr/share/initramfs-tools/scripts/local-top/lvm2-backup /usr/share/initramfs-tools/scripts/local-top/lvm2
--- /usr/share/initramfs-tools/scripts/local-top/lvm2-backup    2014-06-06 19:55:19.249857946 -0400
+++ /usr/share/initramfs-tools/scripts/local-top/lvm2   2014-06-21 01:26:01.015289945 -0400
@@ -60,6 +60,7 @@

 modprobe -q dm-mod

+lvm vgchange -ay
 activate_vg "$ROOT"
 activate_vg "$resume"

내가 시도한 다른 것들 :

  1. 당신의 패치
  2. diffing /etc/lvm/lvm.conf
  3. GRUB_PRELOAD_MODULES="lvm"
  4. GRUB_CMDLINE_LINUX="scsi_mod.scan=sync"
  5. sudo grub-install /dev/sda && sudo grub-install /dev/sdb && sudo update-grub && sudo update-initramfs -u -k all
  6. sudo apt-get install --reinstall lvm2 grub-pc grub-common

나는 다른 변화를 겪지 않았으며, 이것이 가장 우아하지는 않지만 이것이 나에게 중요한 유일한 것입니다.


답변

경우 vgscan“발견”볼륨, 당신은 그들을 활성화 할 수 있어야한다vgchange -ay /dev/volumegroupname

$ sudo vgscan
[sudo] password for username:
  Reading all physical volumes.  This may take a while...
  Found volume group "vg02" using metadata type lvm2
  Found volume group "vg00" using metadata type lvm2

$ sudo vgchange -ay /dev/vg02
  7 logical volume(s) in volume group "vg00" now active

그래도 재부팅 후 비활성화 될 이유가 확실하지 않습니다.


답변

구성 세부 정보 또는 오류 메시지가 없으면 실제 답변을 제공해야합니다. 나는 grub-mkdevicemap해결책으로 어둠 속에서 찌를 것입니다.


답변

시스템에서 initramfs를 사용한다고 가정하면 구성 문제가있을 수 있습니다. 부팅 할 때 grub으로 시작한 initramfs 이미지를 업데이트해야합니다 (Debian에서는 update-initramfs를 사용하여이 작업을 수행합니다. 다른 배포판에 대해서는 알지 못합니다).

initramfs의 압축을 풀고 initramfs 이미지에서 /etc/lvm/lvm.conf (또는 이와 유사한 것)를 변경 한 후 다시 압축하여이 작업을 직접 수행 할 수도 있습니다.


답변

Red Hat 7.4를 KVM 게스트로 실행하는 환경에서 같은 문제가 있습니다. qemu-kvm-1.5.3-141 및 virt-manager 1.4.1을 실행 중입니다. 처음에는 문제없이 게스트로 Red Hat 7.2를 실행했지만 부 릴리스를 7.2에서 7.4로 업그레이드하고 커널을 최신 버전 3.10.0-693.5.2로 업그레이드 한 후 문제가 발생하여 / var LV 파티션을 부팅 할 수 없습니다 더. 시스템은 루트 암호를 요청하는 비상 모드로 전환되었습니다. 루트 암호를 입력하고 명령을 실행 lvm vgchange -ay하고 systemctl default나는 나의 활성화 할 수 있었다 /varLV를하고 시스템을 부팅합니다.

나는이 문제의 원인을 파악하지 않은,하지만 내 해결 방법은 LV 포함하는 것이었다 /var에서 /etc/default/grub아래를 참조로를 :

GRUB_CMDLINE_LINUX="crashkernel=auto rd.lvm.lv=vg_local/root rd.lvm.lv=vg_local/var rd.lvm.lv=vg_local/swap rhgb quiet biosdevname=0 net.ifnames=0 ipv6.disable=1"

그런 다음 vmlinuz 줄에 포함되어 grub2-mkconfig -o /boot/grub2/grub.cfg있는지 확인 하고 실행해야했습니다 . 시스템을 재부팅 한 후 더 이상 LV 활성화 오류가 발생하지 않아 시스템이 부팅 프로세스를 성공적으로 완료합니다.rd.lvm.lv=vg_local/var/boot/grub2/grub.cfg/var