USB 하드 드라이브 인클로저의 하드 드라이브에 파티션을 설치할 수 없습니다

USB 하드 드라이브 인클로저의 하드 드라이브에 파티션을 설치할 수 없습니다

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경우에.

관련 정보