Linux Centos 게스트와 ESXI 5에서 실행되는 Windows 게스트의 대용량 데이터를 USB 인클로저에 장착된 1TB 하드 드라이브에 백업했습니다. USB 셸은 ESXI 5 하이퍼바이저를 통해 게스트에 직접 연결됩니다.
데이터 복사를 완료한 후 USB 디스크를 올바르게 연결 해제하고 서버를 다시 포맷한 후 Centos 배포판에서 실행되는 KVM 하이퍼바이저로 업그레이드했습니다.
그런 다음 Linux Centos 게스트를 생성하고 KVM 하이퍼바이저를 통해 USB 디스크를 직접 연결했습니다. Linux 파티션의 데이터를 게스트로 다시 복사하는 데는 문제가 없습니다. 복사 후 디스크 연결을 올바르게 끊었습니다.
이제 얼마 후 LSI RAID 컨트롤러가 있는 IBM x3200 M3 서버에 동일한 디스크를 그대로 넣어 원래 Linux 백업에서 일부 데이터를 검색했습니다. 디스크는 RAID 없이 단일 장치로 구성됩니다.
IBM에서 실행되는 Centos Linux는 디스크를 올바르게 볼 수 있습니다.
fdisk는 2개의 파티션을 올바르게 표시합니다.
fdisk -l /dev/sda
Disk /dev/sda: 1000.2 GB, 1000204886016 bytes, 1953525168 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk label type: dos
Disk identifier: 0x7ca397d5
Device Boot Start End Blocks Id System
/dev/sda1 63 128005919 64002928+ 7 HPFS/NTFS/exFAT
/dev/sda2 128006144 244190645 58092251 83 Linux
gdisk도 마찬가지입니다.
gdisk -l /dev/sda
GPT fdisk (gdisk) version 0.8.10
Partition table scan:
MBR: MBR only
BSD: not present
APM: not present
GPT: not present
***************************************************************
Found invalid GPT and valid MBR; converting MBR to GPT format
in memory.
***************************************************************
Disk /dev/sda: 1953525168 sectors, 931.5 GiB
Logical sector size: 512 bytes
Disk identifier (GUID): 8AE1EC87-71EF-4340-8D94-E0EFC30FB4E4
Partition table holds up to 128 entries
First usable sector is 34, last usable sector is 1953525134
Partitions will be aligned on 8-sector boundaries
Total free space is 1709334742 sectors (815.1 GiB)
Number Start (sector) End (sector) Size Code Name
1 63 128005919 61.0 GiB 0700 Microsoft basic data
2 128006144 244190645 55.4 GiB 8300 Linux filesystem
그래도 두 번째 파티션을 마운트할 수 없었습니다(여기에는 Windows가 없어서 첫 번째 파티션에서는 시도하지 않았습니다).
오류 메시지는 다음과 같습니다.
mount /dev/sda2 /mnt/usb/
mount: /dev/sda2 is write-protected, mounting read-only
mount: wrong fs type, bad option, bad superblock on /dev/sda2,
missing codepage or helper program, or other error
In some cases useful info is found in syslog - try
dmesg | tail or so.
-o ro 옵션을 사용하여 읽기 전용 마운트를 시도하면 결과가 변경되지 않습니다.
fsck를 시도하면 다음과 같은 결과가 나타납니다.
[root@localhost ~]# fsck -N /dev/sda2
fsck from util-linux 2.23.2
[/sbin/fsck.ext2 (1) -- /dev/sda2] fsck.ext2 /dev/sda2
[root@localhost ~]# fsck.ext4 -n /dev/sda2
e2fsck 1.42.9 (28-Dec-2013)
ext2fs_open2: Bad magic number in super-block
fsck.ext4: Superblock invalid, trying backup blocks...
fsck.ext4: Bad magic number in super-block while trying to open /dev/sda2
The superblock could not be read or does not describe a correct ext2
filesystem. If the device is valid and it really contains an ext2
filesystem (and not swap or ufs or something else), then the superblock
is corrupt, and you might try running e2fsck with an alternate superblock:
e2fsck -b 8193 <device>
답변1
이건 아마 거의 중복이겠지이것은 또 다른 질문입니다. 무슨 일이 일어나고 있는지 이해하려면 내 답변을 읽어보십시오. 거의 물리적 섹터 크기가 512라고 보고하는 디스크에서 비슷한 문제가 발생할 것으로 의심되지 않기 때문입니다.
따라서 RAID 컨트롤러가 현재 값을 왜곡하고 있을 수도 있고, ESXI가 일부 변환을 수행하는 것처럼 USB 인클로저가 간섭할 수도 있습니다. 나는 모른다.
어쨌든, 나는 그것이 512 대 4096 정도라고 생각합니다. 이 경우 4096바이트 섹터에서 계산할 때 오프셋(시작 섹터)이 유효한지 확인해야 합니다.
실제 명령 실행을 시작하기 전에 마지막 파티션의 끝 섹터가 큰 단서라는 점에 유의하세요. 이제 디스크는 512바이트의 논리 섹터 1953525168개를 보고하지만 섹터가 4096바이트인 경우 0에서 244190645까지 번호가 매겨진 244190646개(즉, 8배 적은) 섹터가 있습니다. 244190645는 정확히 마지막 파티션 파티션의 끝 섹터이므로 이 파티션 테이블의 항목은 4096바이트 섹터에 유효할 가능성이 높습니다.
이 시도:
mount -o ro,offset=$((128006144*4096)) /dev/sda /some/mountpoint
ro
경우에.