루트 VG가 누락되었습니다. initramfs 쉘에 넣으세요.

루트 VG가 누락되었습니다. initramfs 쉘에 넣으세요.

내 Linux Mint 17.1(64비트)은 OS 드라이브(SSD)에서 LVM을 사용합니다. 마지막으로 재부팅했을 때 부팅이 실패했기 때문에 시스템을 손상시키는 "뭔가" 작업을 수행한 것이 틀림없습니다. 대신에 메시지를 받았어요"경고! /dev/mapper/mint--vg-root가 존재하지 않습니다. 쉘에 들어갑니다!"그리고 initramfs 쉘. 어떻게 진행해야 할지 모르겠습니다.

나는 보통 일반적인 시스템 업데이트를 수행하지만 사용자 정의 커널이나 이와 유사한 것은 사용하지 않습니다. 저도 재부팅을 안한지 꽤 오래되어서 이게 최근에 발생한 문제인지 아니면 재부팅이 필요해서 그냥 눈에 띄지 않게 지나간 건지 모르겠습니다.

나는 grub이나 initramfs를 알지 못하며 그러한 것에서 복구한 경험도 없습니다. 물론, 내 데이터에 대한 액세스가 절실히 필요합니다!

다른 게시물에서는 이 문제가 lvm2를 지원하지 않는 커널로 업그레이드했기 때문에 발생할 수 있으며 이 문제나 저 라이브 DVD를 사용하면 문제가 해결될 수 있다고 말했습니다. 문제는 여전히 이 화면이 나타나기 때문에 더 이상 USB나 DVD로 부팅할 수 없다는 것입니다.

다음 단계는 SSD를 분리하고 작동하는지 확인하는 것입니다.그 다음에다른 미디어에서 부팅하지만 실제로는 해결책이 아닙니다.

미디어에서 부팅하는 방법을 알아냈다면 어떻게 해야 합니까? 내 상황에 대해 더 말해야 할 것이 있나요?

스크린샷

고쳐 쓰다:

"lvm lvs"그리고"lvm pvs"다음과 같이 말해보세요. 모든 것이 제대로 작동할 때 이 출력이 어떤 모습일지 모르겠습니다. 이것은 그들이 모두 비슷한(나쁜) 상태에 있다는 것을 의미합니까, 아니면 무엇입니까?

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

루트와 스왑을 위한 두 개의 LV가 있는 SSD와 두 개의 개별 드라이브에 있는 두 개의 PV를 기반으로 하는 또 다른 LV가 있습니다. LV와 VG에는 예상대로 번호가 매겨지고 이름이 지정됩니다.

그러나 다른 열을 읽는 방법을 모르겠습니다. 모든 볼륨의 상태가 비슷한 것 같지만(모두 양호하거나 모두 불량) 제가 틀렸을 수도 있습니다.

"fdisk -l"내 initramfs 셸에서는 사용할 수 없지만 미디어에서 부팅하는 것을 발견했습니다. 따라서 LinuxMint 17.1 Live USB(현재 OS와 동일)에서 실행할 때 이 명령의 출력은 다음과 같습니다(볼륨을 마운트한 후).

$ fdisk -l
$ fdisk -l /media/mint/verylonguuidstring
last_lba(): I don't know how to handle files with mode 40755
$ fdisk -v
fdisk (util-linux 2.20.1)
$

글쎄, 별거 없었어. 이는 REDO 백업 및 복원이라는 Live CD를 가끔 사용한 결과입니다. 이는 더 나은 결과를 제공하거나 적어도 실제 출력을 제공합니다.

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

적어도 내 모든 디스크는 마운트 가능하고 손상되지 않은 것처럼 보이므로 부팅만 하면 문제가 됩니다.

고쳐 쓰다!

뭔가 대담한 일을 했는데 효과가 있는 것 같았어요. 다른 미디어로 부팅한 후 부팅 파티션을 마운트하고 /boot/grub/grub.cfg를 수정했습니다. 이 파일에는 "문제가 있는" 식별자 "/dev/mapper/mint--vg-root"가 여러 번 나타납니다. 모두 "/dev/mapper/ssd_vg-root_lv"로 변경하고 저장하고 재부팅했습니다. 바라보다! 작동하며 이제 기본 OS를 평소 데스크톱으로 부팅할 수 있습니다. 에야디야!

단지 GRUB 선택 화면이 여전히 10초 동안 대기하고 있지만 "/etc/default/grub"에서 "TIMEOUT" 설정을 끄는 데 성공했습니다.

@Bratchley, @nkms, 여러분의 지원에 정말 감사드립니다!

답변1

"/boot/grub/grub.cfg"에 올바른 VG 및 LV가 나열되어 있는지 확인하세요. 제 경우에는 VG 이름이 "ssd_vg"이고 LV 이름이 "root_lv"이므로 grub.cfg 파일은 "/dev/mapper/ssd_vg-root_lv"를 참조해야 합니다(사용에 유의하세요).슬래시와 대시! ).

답변2

initramfs 유형에서

 #/sbin/lvm vgchange -a y
 # vgchange -a y
 #exit

문제를 해결할 수 없는 경우 다음을 입력하세요.

  #ls /dev/mapper

루트(예: /dev/vgname/lvname) #reboot를 찾은 다음 화면에서 커널을 선택하고 e 편집을 선택하여 루트 값(예: /dev/vgname/lvname)/xxx를 붙여넣습니다. 그런 다음 ctrl+x가 시작됩니다.

If problem repeats when reboot the server

가다

      #/boot/grub/grub.cfg

/vm/vmlinuz root=에 전체 lv 경로를 작성하세요.

문제가 해결되지 않으면 아래와 같이 initramfs를 복구해 보십시오.

1. 서버 단말기에 접속

  # sudo rmmod floppy

    #echo "blacklist floppy" | sudo tee /etc/modprobe.d/blacklis-floppy.conf
     #dpkg-reconfigure initramfs-tools
     #update-initramfs -u
     #update-grub
     #reboot

2. 이것을 실행하십시오

       #/etc/initramfs-tools/scripts/local-top/forcelvm

다음 콘텐츠가 포함되어 있습니다:

       #!/bin/sh
       PREREQ=""
     prereqs()
        {
       echo "$PREREQ"
     }
     case $1 in
     prereqs)
     prereqs
    exit 0
      ;;
    esac
      . /scripts/functions
       lvm vgchange -ay

그럼 해

      # chmod +x `/etc/initramfs-tools/scripts/local-top/forcelvm`
       # update-initramfs -u -k all
  1. 백업 lvm2

     #apt-get install lvm2
     #cp /usr/share/initramfs-tools/scripts/local-top/lvm2  /tmp
    

    lvm2 편집

        #vi /usr/share/initramfs-tools/scripts/local-top/lvm2
    

    lvm을 초기화하려면 modprobe -q dm-mod와 activate_vg "$ROOT" 사이에 다음 줄을 추가하세요.

      lvm vgchange -ayactivate_vg "$ROOT" if you not find this line
    

종료 0 위의 파일 끝 부분에 다음 두 줄을 작성합니다.

       #lvm vgchange -ayactivate_vg "$ROOT"
       #activate_vg="$ROOT"

그런 다음 파일을 저장하십시오

        #update-initramfs -u
        #update-grub
        #reboot

답변3

update-initramfsDebian 기반 시스템에서 명령을 실행하기 전에 파티션이 LUKS로 암호화된 경우 cryptsetup-initramfs패키지가 설치되어 있는지 확인하세요. 그렇지 않은 경우 먼저 설치하십시오.

apt-get install -y cryptsetup-initramfs

관련 정보