LVM 볼륨 그룹을 찾을 수 없습니다

LVM 볼륨 그룹을 찾을 수 없습니다

서버를 다시 시작한 후 다음과 같은 오류 메시지가 나타납니다.

Begin: Running /scripts/init-premount … done.
Begin: Mounting root file system … 
Begin: Running /scripts/local-top …
Volume group “ubuntu-vg” not found
Cannot process volume group ubuntu-vg
Begin: Running /scripts/local-premount …
...
Begin: Waiting for root file system …
Begin: Running /scripts/local-block …
mdadm: No arrays found in config file or automatically
Volume group “ubuntu-vg” not found
Cannot process volume group ubuntu vg
mdadm: No arrays found in config file or automatically # <-- approximately 30 times
mdadm: error opening /dev/md?*: No such file or directory
done.
Gave up waiting for root file system device. 
Common problems:
-   Boot args (cat /proc/cmdline)
-   Check rootdelay= (did the system wait long enough?)
-   Missing modules (cat /proc/modules: ls /dev)
ALERT! /dev/mapper/ubuntu--vg-ubuntu--lv does not exist. Dropping to a shell!

시스템은 lvm vgscan볼륨 그룹이 발견되지 않고 ls /dev/mapper하나의 항목만 표시되는 initramfs 쉘(busybox)로 이동합니다 control.

라이브 SystemRescueCD를 부팅하면 볼륨 그룹을 찾을 수 있고 LV를 평소대로 사용할 수 있으며 /dev/mapper/ubuntu--vg-ubuntu--lv이를 마운트할 수 있고 VG가 활성으로 설정됩니다. 그래서 VG와 LV는 괜찮아 보이는데, 시작하는 동안 뭔가 망가진 것 같습니다.

Ubuntu 20.04 서버, SSD 4개가 있는 하드웨어 raid1+0에 LVM 설정. 하드웨어 RAID 컨트롤러는 펌웨어 버전 3.00이 포함된 HPE Smart Array P408i-p SR Gen10 컨트롤러입니다. RAID 1+0 구성의 HPE SSD 모델 MK001920GWXFK 4개. 서버 모델은 HPE Proliant DL380 Gen10입니다.

소프트웨어 공격도 없고 암호화도 없습니다.

오류를 찾고 문제를 해결하는 방법에 대한 팁이 있습니까?

저를 편집하세요:

/proc/partitions좋아 보인다 여기에 이미지 설명을 입력하세요.

blkid 여기에 이미지 설명을 입력하세요.

어디

  • /dev/sdc1은 /boot/efi입니다.
  • /dev/sdc2는 /boot입니다.
  • /dev/sdc3은 PV입니다.

이전 커널 버전에서 부팅하면 실행될 때까지 잘 작동했습니다 apt update && apt upgrade. 이전 커널은 업그레이드 후에도 동일한 문제가 발생했습니다.

편집 2:

모듈 내에서 /proc/modules다음 항목을 찾을 수 있습니다. smartpqi 81920 0 - Live 0xffffffffc0626000

lvm pvsinitramfs 쉘에는 출력이 없습니다.

출력은 다음과 같습니다lvm pvchange -ay -v

No volume groups found.

출력은 다음과 같습니다lvm pvchange -ay --partial vg-ubuntu -v

PARTIAL MODE. Incomplete logical volumes will be processed.
VG name on command line not found in list of VGs: vg-ubuntu
Volume group "vg-ubuntu" not found
Cannot process volume group vg-ubuntu

동일한 모델 P408i-p SR Gen10에 HDD가 연결된 두 번째 RAID 컨트롤러가 있습니다. "cinder-volumes"라는 볼륨 그룹이 이 RAID 위에 구성됩니다. 하지만 이 VG는 initramfs에서 찾을 수 없습니다.

3개를 편집하세요.

여기 하나 있어요협회루트 FS에서 요청된 파일까지:

  • /mnt/var/log/apt/term.log
  • /mnt/etc/initramfs-tools/initramfs.conf
  • /mnt/etc/initramfs-tools/update-initramfs.conf

편집 4:

SystemRescueCD에서 LV /(루트) 를 설치 /boot하고 /boot/efiLV/로 루트를 지정했습니다. 마운트된 모든 볼륨에는 충분한 디스크 공간이 남아 있습니다(사용된 디스크 공간 < 32%).

출력은 update-initramfs -u -k 5.4.0.88-generic다음과 같습니다

update-initramfs: Generating /boot/initrd.img-5.4.0.88-generic
W: mkconf: MD subsystem is not loaded, thus I cannot scan for arrays.
W: mdadm: failed to auto-generate temporary mdadm.conf file

이 이미지에는 /boot/initrd.img-5.4.0-88-generic마지막 수정 날짜가 업데이트되었습니다.

다시 시작한 후에도 문제가 계속 발생합니다. initrdGrub 메뉴 구성의 부팅 매개변수는 XX가 각 메뉴 항목마다 다른 위치(예: 88, 86 및 77)를 /boot/grub/grub.cfg가리킵니다 ./initrd.img-5.4.0-XX-generic

/boot디렉토리 에서 다양한 이미지(?)를 찾을 수 있습니다.

vmlinuz-5.4.0-88-generic
vmlinuz-5.4.0-86-generic
vmlinuz-5.4.0-77-generic

이 링크는 /boot/initrd.img최신 버전을 가리킵니다 /boot/initrd.img-5.4.0-88-generic.

5개 편집:

어떤 조치도 원하는 효과를 얻지 못했고 시스템을 복구하려는 노력이 너무 컸기 때문에 서버를 완전히 재구축해야 했습니다.

답변1

나는 매우 비슷한 문제가 있습니다. 새 커널 설치에 실패한 후(주로 /boot파티션 공간 부족으로 인해) initramfs를 수동으로 업데이트했고 재부팅 시 initramfs는 암호화된 파티션의 암호 해독 프로세스를 묻는 메시지를 표시하지 않았습니다. Volume group “vg0” not found터미널과 유사하지만 기능이 제한된 initramfs에 대해서도 비슷한 오류와 프롬프트가 표시됩니다 .

내 문제가 해결되었습니다.

  1. 부팅 파티션의 공간을 확보하십시오.
  2. 설치하다 cryptsetup-initramfs.

1단계에서는 이 게시물의 레시피를 사용하여 이전 커널을 제거했습니다.https://askubuntu.com/a/1391904/1541500. 1단계에 대한 참고 사항: 이전 커널로 부팅할 수 없는 경우(저의 경우처럼) 밤에 명령을 실행한 후 2단계(Live CD 세션)의 일부로 이 단계를 수행해야 합니다 chroot.

2단계에서는 Live CD로 부팅하고 터미널을 열었습니다. 그런 다음 시스템을 설치하고 누락된 패키지를 설치했으며 마지막 커널을 다시 설치하라는 메시지가 표시되었습니다(initramfs 및 grub cfg가 자동으로 업데이트됨).

아래에는 시스템을 복구하기 위해 2단계에서 Live CD 세션 터미널에 사용된 명령이 나열되어 있습니다.

제 경우에는 다음과 같은 파티션이 있습니다.

  • /dev/sda1/boot/efi~와 함께fat32
  • /dev/sda2/boot~와 함께ext4
  • /dev/sda3- > 이것은 내 암호화된 파티션이고 내 쿠분투 설치입니다 vg0.lvm2

내 암호화된 파티션 CryptDisk/etc/crypttab. 해독된 파티션을 사용하려면 이 이름이 필요합니다 cryptsetup luksOpen. 복호화 후에는 , 및 vg03개의 파티션이 있습니다 .roothomeswap

이제 LIVE CD 터미널에서 실행되는 명령으로 돌아갑니다.

sudo cryptsetup luksOpen /dev/sda3 CryptDisk # open encrypted partition
sudo vgchange -ay
sudo mount /dev/mapper/vg0-root /mnt # mount root partition
sudo mount /dev/sda2 /mnt/boot # mount boot partition
sudo mount -t proc proc /mnt/proc
sudo mount -t sysfs sys /sys
sudo mount -o bind /run /mnt/run # to get resolv.conf for internet access
sudo mount -o bind /dev /mnt/dev
sudo chroot /mnt
apt-get update
apt-get dist-upgrade
apt-get install lvm2 cryptsetup-initramfs cryptsetup
apt-get install --reinstall linux-image-5.4.0-99-generic linux-headers-5.4.0-9 9-generic linux-modules-5.4.0-99-generic linux-tools-5.4.0-99-generic

재부팅에 성공한 후 update-initramfs -c -k all.

답변2

이전 커널 버전으로 부팅한 후 문제가 사라졌지만 업그레이드 후에 다시 나타났기 때문에 실수로 커널 버전을 전환한 것일 수도 있습니다.https://wiki.ubuntu.com/Kernel/LTSEnablementStack자세한 내용은.

기본적으로 Ubuntu 20.04는 Linux 커널의 세 가지 버전 중 하나를 사용할 수 있습니다.

  • Ubuntu 20.04 버전의 공식 릴리스(GA): 메타패키지linux-generic
  • OEM 특별 버전: 메타패키지linux-oem-20.04
  • 장기 지원 활성화/하드웨어 활성화(HWE) 커널 버전: 메타패키지linux-generic-hwe-20.04

귀하의 하드웨어가 너무 새것이어서 OEM 또는 HWE 코어가 필요할 수 있습니다. 그러나 시스템에 처음에 "잘못된" 커널이 설치되어 있었고 해당 메타패키지를 설치하지 않고 올바른 커널을 수동으로 설치한 경우 업데이트 메커니즘은 이제 기본적으로 smartpqi하드웨어에 특정한 드라이버 가 있는 GA 시리즈의 최신 커널을 설치하게 될 수 있습니다. 너무 늙었을 수도 있습니다.

paladin이 의견에서 제안한 것처럼 SystemRescueCD에서 부팅하고 /var/log/apt/term.log시스템을 조사하여 업데이트에서 대체된 정확한 커널 패키지 버전을 찾아야 할 수도 있습니다.

올바른 커널 버전을 알고 나면 부팅 메뉴를 다시 시도하거나(아직 작동하는 이전 커널 버전이 포함되어 있는 경우) SystemRescueCD에서 부팅하고 루트 LV 및 chroot를 여기에 마운트한 후 기타 필요한 파일 시스템을 마운트할 수 있습니다. 을 클릭한 다음 최신 커널 패키지를 설치합니다.딱 맞는 맛을 누른 다음 다시 시작하세요.

시스템이 만족스럽게 실행되면 "잘못된" 커널 스타일과 관련된 메타패키지를 제거해야 합니다(설치된 경우). apt이러한 메타패키지는 새 커널 업데이트가 가능할 때마다 커널 스타일을 직접 선택합니다.


커널 스타일이 올바른 것으로 판명되면 디스크 공간이 부족하여 update-initramfs새 커널에 대한 새 initramfs 파일을 생성하는 등 상황이 더 간단해질 수 있습니다.

쉬운 수정 방법이 있습니다. 먼저 일부 디스크 공간을 확보한 다음( apt캐시를 지우는 것이 apt clean도움이 될 수 있음) 실행하여 update-initramfs -u -k version-of-newest-kernel-packageinitramfs 파일을 다시 생성합니다. initramfs가 현재 실패하는 모든 커널 버전에 대해 이 명령을 반복하여 나중에 더 많은 문제가 발생할 경우를 대비해 더 많은 실행 가능한 부팅 옵션을 제공할 수 있습니다.

답변3

얼마 전에 비슷한 문제가 발생했습니다. 설정에 다른 LVM 볼륨을 추가하고 실수로 ubuntu-vg의 이름을 새 볼륨으로 변경했습니다(명령 실행 중 혼란).

해결책은 USB 부팅 가능 디스크에서 부팅하고 결함이 있는 vg의 이름을 다시 바꾸는 것입니다. 내가 따라온 단계는 다음과 같습니다.

Live Linux USB Open 터미널을 사용하여 실행하고 다음을 입력합니다. 2.1 sudo vgdisplay --> 설정에서 모든 vgs 목록 표시

2.2 메인 FS를 방해하거나 포함하는 vg 식별

2.3 sudo vgrename <오류 이름> ubuntu-vg

위의 작업을 완료한 후 정상적으로 종료한 후 다시 시작하세요. grub은 볼륨을 확인하고 정상적으로 마운트합니다.

관련 정보