다시 시작한 후 LVM이 시작되지 않고 uuid가 있는 장치를 찾을 수 없습니다.

다시 시작한 후 LVM이 시작되지 않고 uuid가 있는 장치를 찾을 수 없습니다.

최근까지 잘 작동했지만 일부 구성을 변경한 후 재부팅이 필요한 가상 머신이 있습니다. 그러나 재부팅 후 가상 머신이 복구되지 않고 루트 장치(/dev/mapper 아래의 LVM 볼륨)를 찾을 수 없다고 말했습니다.

복구 모드로 부팅하면 /dev/mapper 및 /dev/dm-* 아래의 파일 시스템이 존재하지 않는 것을 확인합니다.

파일 시스템은 다음과 같이 배치되어야 합니다.

  • /dev/sda1부팅 파티션으로
  • /dev/sda2확장 파티션에는 다음이 포함됩니다.
  • /dev/sda5/dev/sda6LVM 파티션
  • /dev/sda{5,6}두 PV가 하나의 VG에 있습니다.
  • 루트 FS 및 스왑을 위한 2개의 LV가 있습니다.

하나를 만들면 lvm pvshow다음과 같은 이점이 있습니다.

  Couldn't find device with uuid '8x38hf-mzd7-xTes-y6IV-xRMr-qrNP-0dNnLi'.
  Couldn't find device with uuid '8x38hf-mzd7-xTes-y6IV-xRMr-qrNP-0dNnLi'.
  Couldn't find device with uuid '8x38hf-mzd7-xTes-y6IV-xRMr-qrNP-0dNnLi'.
  --- Physical volume ---
  PV Name               unknown device
  VG Name               of1-server-lucid
  PV Size               19.76 GiB / not usable 2.00 MiB
  Allocatable           yes (but full)
  PE Size               4.00 MiB
  Total PE              5058
  Free PE               0
  Allocated PE          5058
  PV UUID               8x38hf-mzd7-xTes-y6IV-xRMr-qrNP-0dNnLi

  --- Physical volume ---
  PV Name               /dev/sda6
  VG Name               of1-server-lucid
  PV Size               100.00 GiB / not usable 2.66 MiB
  Allocatable           yes (but full)
  PE Size               4.00 MiB
  Total PE              25599
  Free PE               0
  Allocated PE          25599
  PV UUID               cuhP6R-QbiO-U7ye-WvXN-ZNq5-cqUs-VVZpux

/dev/sda5따라서 PV로 나열되지 않고 오류가 발생하는 것 같습니다 .

fdisk -l:

Disk /dev/sda: 128.8 GB, 128849018880 bytes
255 heads, 63 sectors/track, 15665 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00044a6c

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *           1          32      248832   83  Linux
Partition 1 does not end on cylinder boundary.
/dev/sda2              32       15665   125579256+   5  Extended
/dev/sda5              32        2611    20722970   8e  Linux LVM
/dev/sda6            2612       15665   104856223+  8e  Linux LVM

/dev/sda5따라서 장치가 존재하는 것을 볼 수 있지만 blkid아무 것도 보고되지 않습니다.

~ # blkid
/dev/sda1: UUID="d997d281-2909-41d3-a835-dba400e7ceec" TYPE="ext2" 
/dev/sda6: UUID="cuhP6R-QbiO-U7ye-WvXN-ZNq5-cqUs-VVZpux" TYPE="LVM2_member" 

디스크 스냅샷을 찍은 후 보관된 구성에서 PV를 복원하려고 합니다.

~ # pvremove -ff /dev/sda5
Labels on physical volume "/dev/sda5" successfully wiped
~ # pvcreate --uuid=8x38hf-mzd7-xTes-y6IV-xRMr-qrNP-0dNnLi /dev/sda5 --restorefile=/etc/lvm/archive/of1-dev-server_00000.vg
Couldn't find device with uuid '8x38hf-mzd7-xTes-y6IV-xRMr-qrNP-0dNnLi'.
  Physical volume "/dev/sda5" successfully created
~ # vgchange -a y
2 logical volume(s) in volume group "of1-dev-server" now active"

따라서 적어도 이제 장치에는 다음이 하나 있습니다 blkid.

/dev/sda1: UUID="d997d281-2909-41d3-a835-dba400e7ceec" TYPE="ext2" 
/dev/sda6: UUID="cuhP6R-QbiO-U7ye-WvXN-ZNq5-cqUs-VVZpux" TYPE="LVM2_member" 
/dev/sda5: UUID="8x38hf-mzd7-xTes-y6IV-xRMr-qrNP-0dNnLi" TYPE="LVM2_member" 

지금 실행하면 pvdisplay올바른 장치도 표시됩니다.

  --- Physical volume ---
  PV Name               /dev/sda5
  VG Name               of1-dev-danr-lucid
  PV Size               19.76 GiB / not usable 2.00 MiB
  Allocatable           yes (but full)
  PE Size               4.00 MiB
  Total PE              5058
  Free PE               0
  Allocated PE          5058
  PV UUID               8x38hf-mzd7-xTes-y6IV-xRMr-qrNP-0dNnLi

  --- Physical volume ---
  PV Name               /dev/sda6
  VG Name               of1-dev-danr-lucid
  PV Size               100.00 GiB / not usable 2.66 MiB
  Allocatable           yes (but full)
  PE Size               4.00 MiB
  Total PE              25599
  Free PE               0
  Allocated PE          25599
  PV UUID               cuhP6R-QbiO-U7ye-WvXN-ZNq5-cqUs-VVZpux

매퍼 장치가 존재합니다.

crw-rw----    1 root     root      10,  59 Jul 10 10:47 control
brw-rw----    1 root     root     252,   0 Jul 10 11:21 of1--dev--server-root
brw-rw----    1 root     root     252,   1 Jul 10 11:21 of1--dev--server-swap_1

LVM도 올바르게 나열되는 것 같습니다.

~ # lvdisplay
  --- Logical volume ---
  LV Name                /dev/of1-dev-danr-lucid/root
  VG Name                of1-dev-danr-lucid
  LV UUID                pioKjE-iJEp-Uf9S-0MxQ-UR0H-cG9m-5mLJm7
  LV Write Access        read/write
  LV Status              available
  # open                 0
  LV Size                118.89 GiB
  Current LE             30435
  Segments               2
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     256
  Block device           252:0

  --- Logical volume ---
  LV Name                /dev/of1-dev-danr-lucid/swap_1
  VG Name                of1-dev-danr-lucid
  LV UUID                mIq22L-RHi4-tudV-G6nP-T1e6-UQcS-B9hYUF
  LV Write Access        read/write
  LV Status              available
  # open                 0
  LV Size                888.00 MiB
  Current LE             222
  Segments               1
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     256
  Block device           252:1

하지만 루트 장치를 마운트하려고 하면 오류가 발생합니다.

~ # mount /dev/mapper/of1--dev--server-root /mnt2
mount: mounting /dev/mapper/of1--dev--server-root on /mnt2 failed: Invalid argument

그래서 디스크 일관성 검사를 시도했습니다.

~ # fsck.ext4 -f /dev/mapper/of1--dev--server-root
e2fsck: Superblock invalid, trying backup blocks...
e2fsck: Bad magic number in super-block while trying to open /dev/mapper/of1--dev--server-root
[...]

그래서 나는 또 다른 슈퍼블록을 시도했습니다.

~ # mke2fs -n /dev/mapper/of1--dev--server-root
Filesystem label=
OS type: Linux
Block size=4096 (log=2)
Fragment size=4096 (log=2)
Stride=0 blocks, Stripe width=0 blocks
7798784 inodes, 31165440 blocks
1558272 blocks (5.00%) reserved for the super user
First data block=0
Maximum filesystem blocks=4294967296
952 block groups
32768 blocks per group, 32768 fragments per group
8192 inodes per group
Superblock backups stored on blocks: 
        32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208, 
        4096000, 7962624, 11239424, 20480000, 23887872
~ # fsck.ext4 -y -b 23887872 /dev/mapper/of1--dev--server-root

엄청나게 많은 오류가 발생하는데, 내가 본 주요 오류는 다음과 같습니다.

  • 슈퍼블록의 로그가 유효하지 않습니다.
  • 하나 이상의 블록 그룹 설명자 체크섬이 잘못되었습니다.
  • 고아 inode() 자르기
  • 고아 inode에서 발견된 지워진 블록 #0()
  • /dev/mapper/of1--dev--server-root에 잘못된 파일 시스템이 포함되어 있습니다. 강제 확인
  • inode 크기를 조정해도 효과가 없습니다. 재건
  • 루트 inode는 디렉토리가 아닙니다.
  • 예약된 inode 3()에 잘못된 모드가 있습니다.
  • HTREE 디렉터리 inode의 루트 노드가 잘못되었습니다.
  • inode, i_blocks는 0이어야 합니다.
  • 연결되지 않은 디렉토리 inode

많은 메시지를 보낸 후 완료되었다고 말했습니다. 위와 같이 디렉토리를 마운트하면 잘 작동하지만 디렉토리는 비어 있고 디렉토리는 lost+found파일로 채워져 있습니다. 대부분은 숫자일 뿐이고 일부는 한때 존재했던 파일과 모호하게 관련된 파일 이름을 가집니다.

그렇다면 가상 머신을 복원하는 방법은 무엇입니까?

디스크 오류를 볼 때마다 상황이 더 악화되지 않도록 스냅샷을 생성하는 것이 가장 먼저 본능이므로 오류를 처음 봤을 때 재부팅한 후 스냅샷을 만들었습니다.

재부팅할 때까지 VM이 문제 없이 작동했기 때문에 데이터가 어딘가에 있다는 것을 알고 있습니다. 사용자는 최근에 파일 시스템에서 아무것도 변경한 것을 기억하지 못하지만, 다시 시작했을 때 거의 1년 동안 실행 중이었으므로 그 이후로 다양한 일이 일어났을 수 있습니다.

안타깝게도 이 노드에서는 Puppet이 비활성화되어 있으므로 백업도 없습니다.

원래 운영 체제는 VMWare에서 실행되는 Ubuntu Lucid였습니다.

답변1

lost+found내가 올바르게 이해했다면 디렉터리에 중요한 파일이 포함될 수도 있고 포함되지 않을 수도 있지만 볼륨을 복구한 것입니다 .

VM이 시작되지 못하게 하는 현재 무슨 일이 일어나고 있나요? 아직도 부팅 장치를 찾을 수 없나요?

귀하의 fdisk -l출력이 나에게 약간 벗어난 것 같습니다. 파티션 테이블만 손상되었을 가능성을 고려해 보셨나요? 이 경우 스냅샷이 도움이 될 수 있으며 가장 좋은 경우에는 (다른) fsck도 필요하지 않습니다. 하지만 파티션 오프셋을 찾으려면 뭔가가 필요합니다.테스트 디스크성공은 두 번 이상 발생합니다.

최악의 경우 볼륨에서 무엇이든 삭제해야 하는 경우 다음과 같은 포렌식 도구를 사용하세요.사진 기록또는부검/탐정 키트유용할 수도 있습니다.

이들 중 아무것도 작동하지 않으면 가능한 경우 lsblk -o NAME,RM,SIZE,RO,TYPE,MAJ:MIN -fat관련 출력과 함께 하나(이 플래그는 가능한 한 많은 정보를 표시하기 위한 것임)도 제공 하십시오.dmesg

관련 정보