이유:/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보다 쉽다고 생각하시면 알려주세요. 그러면 여기에 붙여넣을 수 있는 더 긴 문제 해결 코드가 있습니다.)
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-LVname
LV를 설치할 수 있습니다.