나는 오래 전에 Lacie 2Big Triple RAID 드라이브를 가지고 있었는데 케이스가 깨지기 전에는 가족 사진을 몇 장 복사하지 않았습니다. 기존 하드 드라이브를 카드 리더기에 넣으려고 했지만 디스크를 마운트할 수 없습니다.
첫 번째 디스크의 경우:
# fdisk -l
Disk /dev/sda: 465.76 GiB, 500107862016 bytes, 976773168 sectors
Disk model: Disk
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0x00000000
Device Boot Start End Sectors Size Id Type
/dev/sda1 1 976773167 976773167 465.8G ee GPT
fdisk 출력에서 내부 디스크만 편집했습니다.
# file -sk /dev/sda
/dev/sda: DOS/MBR boot sector; partition 1 : ID=0xee, start-CHS (0x3ff,254,63), end-CHS (0x3ff,254,63), startsector 1, 1953366015 sectors, extended partition table (last)\012- DOS/MBR boot sector\012- GPT partition table, version 1.0, GUID: 8868abf6-211c-4f2d-9f22-44778cbe6b2b, disk size: 1953366016 sectors\012- of 512 bytes\012- data
디스크 1의 경우 gdisk:
# gdisk -l /dev/sda
GPT fdisk (gdisk) version 1.0.8
Warning! Disk size is smaller than the main header indicates! Loading
secondary header from the last sector of the disk! You should use 'v' to
verify disk integrity, and perhaps options on the experts' menu to repair
the disk.
Caution: invalid backup GPT header, but valid main header; regenerating
backup header from main header.
Warning! One or more CRCs don't match. You should repair the disk!
Main header: OK
Backup header: ERROR
Main partition table: OK
Backup partition table: ERROR
Partition table scan:
MBR: protective
BSD: not present
APM: not present
GPT: damaged
****************************************************************************
Caution: Found protective or hybrid MBR and corrupt GPT. Using GPT, but disk
verification and recovery are STRONGLY recommended.
****************************************************************************
Disk /dev/sda: 976773168 sectors, 465.8 GiB
Model: Disk
Sector size (logical/physical): 512/512 bytes
Disk identifier (GUID): 8868ABF6-211C-4F2D-9F22-44778CBE6B2B
Partition table holds up to 128 entries
Main partition table begins at sector 2 and ends at sector 33
First usable sector is 34, last usable sector is 1953365982
Partitions will be aligned on 8-sector boundaries
Total free space is 262157 sectors (128.0 MiB)
Number Start (sector) End (sector) Size Code Name
1 40 409639 200.0 MiB EF00 EFI System Partition
2 409640 1953103831 931.1 GiB AF00 Mike
두 번째 세트:
# fisk -l
Disk /dev/sda: 465.76 GiB, 500107862016 bytes, 976773168 sectors
Disk model: Disk
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
그리고 파일:
# file -sk /dev/sda
/dev/sda: data
디스크 2의 경우 gdisk:
# gdisk -l /dev/sda
GPT fdisk (gdisk) version 1.0.8
Partition table scan:
MBR: not present
BSD: not present
APM: not present
GPT: not present
Creating new GPT entries in memory.
Disk /dev/sda: 976773168 sectors, 465.8 GiB
Model: Disk
Sector size (logical/physical): 512/512 bytes
Disk identifier (GUID): 963D4F54-1270-451A-A1A0-0BEA70978DF7
Partition table holds up to 128 entries
Main partition table begins at sector 2 and ends at sector 33
First usable sector is 34, last usable sector is 976773134
Partitions will be aligned on 2048-sector boundaries
Total free space is 976773101 sectors (465.8 GiB)
Number Start (sector) End (sector) Size Code Name
제가 아는 한 RAID1(미러)이 사용되는 것으로 알고 있습니다. 이 디스크에 대한 ID를 찾지 못했습니다.
DiskWarrior를 사용해 보고 Mac에 설치했지만 Linux가 최선의 선택이 될 것이라고 생각했습니다. 그러나 나는 아이디어가 약간 부족합니다. 위와 유사한 디스크가 보이면 해당 디스크를 다시 마운트하고 파일에 액세스하는 방법에 대한 팁이 있습니까?
다른 도구를 구입하거나 설치할 의향이 있지만 조언이 필요합니다.
답변1
파티션 크기는 드라이브 크기의 약 두 배이므로 raid0일 가능성이 높으며 블록 크기는 결정되어야 합니다. 비록 장치가 연결도 지원하지만...파티션 정렬이 이상합니다. 40 섹터 오프셋입니다...아 뭐, 오래됐네요 .
시행착오를 통해 블록 크기를 결정하는 형편없는 방법입니다(System Rescue 또는 이와 유사한 Linux 라이브 환경 사용). 더 나은 접근 방식을 위해서는 원시 데이터를 살펴봐야 합니다(JPEG 헤더 오프셋을 찾아서 함께 엮습니다. 오프셋이 20K라면 파티션 정렬 때문입니다).
읽기 전용 루프 장치를 생성합니다:
# losetup --find --show --read-only /dev/sda
/dev/loop0
# losetup --find --show --read-only /dev/sdb
/dev/loop1
읽기 전용 mdadm raid0 빌드(메타데이터 없음):
# mdadm --build /dev/md42 \
--level=0 --chunk=64K \
--raid-devices=2 /dev/loop0 /dev/loop1
참고: 어떤 이유로 옵션이 mdadm --build
허용되지 않으므로 이 단계의 읽기 전용 특성은 루프 장치의 읽기 전용 특성에 따라 달라집니다. mdadm --readonly
복사 또는 기록 중 복사 오버레이에서 이런 종류의 작업을 시도하는 것이 더 좋습니다...
아무것도 없는지 확인하십시오.
# file -s /dev/md42*
/dev/md42: DOS/MBR boot sector …
/dev/md42p1: DOS/MBR boot sector, code offset 0x3c+2, OEM-ID "mkfs.fat" …
/dev/md42p2: SGI XFS filesystem data …
파티션은 항상 표시되어야 하지만(그렇지 않으면 드라이브 순서를 전환하세요) 그렇다고 해서 마운트할 수 있다는 의미는 아닙니다.
읽기 전용으로 마운트합니다(일부 파일 시스템은 여전히 ro 모드에서 쓰기를 시도하므로 읽기 전용 루프 장치의 다른 계층을 사용합니다):
# mount -o loop,ro /dev/md42p1 /mnt
# ls /mnt
…any files?
# umount /mnt
# mount -o loop,ro /dev/md42p2 /mnt
# ls /mnt
…any files?
# umount /mnt
마운트되고 파일 목록이 표시되는 경우에도 파일의 큰 덩어리 몇 개를 찾아서 해당 내용을 확인해야 합니다. 마운트된 것이 여전히 손상되었을 가능성이 있으므로 완전한 대용량 파일이 필요합니다.
단계가 실패하면 다시 시작하고 다른 블록 크기를 시도하십시오.
# mdadm --stop /dev/md42
# mdadm --build … --chunk=128K
헹구고 64K 128K 32K 256K 16K 512K 4K를 반복하세요. 다음 중 하나에서 작동할 수 있기를 바랍니다.
--level=linear
이들 중 아무것도 작동하지 않으면 (블록 크기 없음)을 사용해 볼 수도 있습니다 .