USB 외장 HDD에서 이전 HOME 디렉터리 데이터를 복구하는 중 오류: 마운트: 알 수 없는 파일 시스템 유형 'LVM2_member', 유효한 파일 시스템 슈퍼블록을 찾을 수 없습니다.

USB 외장 HDD에서 이전 HOME 디렉터리 데이터를 복구하는 중 오류: 마운트: 알 수 없는 파일 시스템 유형 'LVM2_member', 유효한 파일 시스템 슈퍼블록을 찾을 수 없습니다.

이유:/boot 파일 시스템이 손상됨: 두 개의 부팅 가능한 하드 디스크의 연결 케이블이 시작 중에 실수로 마더보드에서 분리되어 하드 디스크 /boot 파일 시스템이 충돌하게 됩니다. 운영체제 7LVM2로 미러링되는 부팅 가능한 2 x 320GB 전체 드라이브(/dev/mapper/cl-root, /dev/mapper-cl-home 및 스왑) 설치 중.

CD-ROM으로 부팅하여 손상된 루트 파티션 슈퍼블록을 복구하려고 했지만 성공하지 못했습니다. 이제 SATA->USB로 연결된 드라이브를 다른 CentOS 7 서버의 USB 포트에 연결했는데 다음과 같이 나타납니다.

[root@localhost ~]# fdisk -l
.....  (**ignore the current server internal drivers info here**)
--- below is the external USB SATA 320GB corrupted /boot drive -----
......
Disk /dev/sdg: 320.1 GB, 320072933376 bytes, 625142448 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 33553920 bytes
Disk label type: dos
Disk identifier: 0xe9e67578
   Device Boot      Start         End      Blocks   Id  System
/dev/sdg1   *        2048     2099199     1048576   83  Linux
/dev/sdg2       606116385   625137344     9510480    7  HPFS/NTFS/exFAT
/dev/sdg3         2099200   606115839   302008320   8e  Linux LVM

나의 주요 목적은 손상된 부팅 디스크에서 홈 디렉토리 데이터를 복구하는 것입니다. 이를 달성하기 위해 다음 중 하나에 대한 도움을 구하고 있습니다.

  1. 손상된 하드 드라이브에서 데이터를 복사합니다.
  2. 이전처럼 슈퍼블록이 부팅되도록 수정합니다. (이 질문을 가능한 한 짧게 유지하려면, 이것이 1보다 쉽다고 생각하시면 알려주세요. 그러면 여기에 붙여넣을 수 있는 더 긴 문제 해결 코드가 있습니다.)

1)에서 수행한 작업에 대한 자세한 내용은 다음과 같습니다.

  1. 손상된 하드 드라이브에서 데이터를 복사합니다.
[root@localhost ~]# lsblk
NAME        MAJ:MIN RM   SIZE RO TYPE MOUNTPOINT
sda           8:0    0   2.7T  0 disk 
......(ignore the internal disk, below is the USB HDD)....

sdg           8:96   0 298.1G  0 disk 
├─sdg1        8:97   0     1G  0 part 
├─sdg2        8:98   0   9.1G  0 part
└─sdg3        8:99   0   288G  0 part 
sr0          11:0    1   4.1G  0 rom  

3개의 슬라이스를 모두 마운트 지점에 마운트했지만 /dev/sdg3이 다음 오류와 함께 실패합니다 <<-- 주요 질문은 다음과 같습니다. 홈 데이터를 보려면 이 슬라이스를 어떻게 마운트합니까? (분명히 데이터는 sdg1 및 sdg2에 없습니다).

[root@localhost ~]# mount /dev/sdg1 /media/1 
[root@localhost ~]# mount /dev/sdg2 /media/2
[root@localhost ~]# mount /dev/sdg3 /media/3
mount: unknown filesystem type 'LVM2_member'

[root@localhost ~]# df -k
Filesystem           1K-blocks      Used  Available Use% Mounted on
......
/dev/sdg2              9510476   8211864    1298612  87% /media/2
/dev/sdg1              1038336    300072     738264  29% /media/1

testdisk를 사용하여 sdg3에서 데이터를 덤프하고 image.dd 파일을 출력해 보았습니다. 그러나 결국 나는 이 image.dd 파일이 여전히 LVM2_member로 래핑되어 있음을 발견했습니다.

[root@localhost home-gwu-old]# ls -l
total 302008328
-rw-r--r--. 1 root root 309256519680 Jan  5 19:34 image.dd

[root@localhost]# mount -o loop image.dd /media/3
mount: unknown filesystem type 'LVM2_member

당신의 어떤 도움이라도 대단히 감사하겠습니다! 고든

답변1

일반적으로 LVM 지원 Linux 시스템은 표시되는 모든 LVM 볼륨 그룹을 자동으로 감지하고 활성화할 수 있지만 데이터 복구 상황에서는 VG/LV를 수동으로 활성화하는 방법을 알아야 합니다.

상태가 불확실한 LVM 볼륨 그룹을 처리할 때 vgscan첫 번째 단계로 매뉴얼을 사용하는 것이 나쁠 것은 없습니다. 오류 메시지가 반환되면 볼륨 그룹이 어떤 이유로 손상되었음을 알 수 있습니다.

먼저 vgscan을 사용해 볼 수 있습니다 vgchange -ay --activationmode degraded. 대부분의 배포판에서는 이것이 기본 자동 활성화 모드가 되지만 배포판에서는 기본적으로 더 제한적인 complete활성화 모드가 될 수도 있습니다.

그래도 문제가 해결되지 않으면 다음을 시도해 보세요 vgchange -ay --activationmode partial. 이 명령은 성공하고 이전 명령은 실패할 경우 활성화된 일부 LV의 일부가 누락될 수 있다는 점에 유의하세요.

VG를 활성화하면 각 LV의 장치 노드도 나타납니다. 그러나 일부 특별한 경우에는 명시적인 장치 노드 생성을 사용해야 할 수도 있습니다 vgscan --mknodes.

VG가 성공적으로(부분적으로라도) 활성화되면 출력에 LV가 표시되어야 합니다 lvs. 그런 다음 평소대로 구성표를 사용 /dev/VGname/LVname하거나 명명 방식을 사용하여 /dev/mapper/VGname-LVnameLV를 설치할 수 있습니다.

관련 정보