GPT 디스크는 외부 도킹 베이와 내부 스왑 베이에서 다르게 보입니다.

GPT 디스크는 외부 도킹 베이와 내부 스왑 베이에서 다르게 보입니다.

USB 2.0 도킹 스테이션을 통해 백업하는 데 사용하는 하드 드라이브가 있습니다. 디스크에는 GPT와 ext4 파티션이 있습니다. 도킹 스테이션을 통해 모든 것이 문제가 없지만 디스크를 내부 SATA 포트에 연결하거나 PC의 스왑 베이에 넣으면 GPT가 더 이상 존재하지 않습니다.

디스크가 도크에 있고 모든 것이 잘 작동할 때 나타나는 결과는 다음과 같습니다.

$ sudo fdisk -l /dev/sdg
Disk /dev/sdg: 1.8 TiB, 2000398934016 bytes, 488378646 sectors
Disk model: 001-1CH164
Units: sectors of 1 * 4096 = 4096 bytes
Sector size (logical/physical): 4096 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
Disklabel type: gpt
Disk identifier: 2C0A0696-2318-4BBD-9329-0115AB5AC313
Device     Start       End   Sectors  Size Type
/dev/sdg1    512 488378367 488377856  1.8T Linux filesystem

$ sudo parted /dev/sdg print
Model: ST2000DM 001-1CH164 (scsi)
Disk /dev/sdg: 2000GB
Sector size (logical/physical): 4096B/4096B
Partition Table: gpt
Disk Flags:
Number  Start   End     Size    File system  Name      Flags
1      2097kB  2000GB  2000GB  ext4         MUSICBUP

다음은 디스크가 내부 스위치 베이나 다른 내부 SATA 포트에 있을 때 동일한 명령의 출력입니다.

$ sudo fdisk -l /dev/sdg
GPT PMBR size mismatch (488378645 != 3907029167) will be corrected by write.
Disk /dev/sdg: 1.8 TiB, 2000398934016 bytes, 3907029168 sectors
Disk model: ST2000DM001-1CH1
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
Disklabel type: dos
Disk identifier: 0x00000000
Device     Boot Start        End    Sectors  Size Id Type
/dev/sdg1           1 3907029167 3907029167  1.8T ee GPT
Partition 1 does not start on physical sector boundary.

$ sudo parted /dev/sdg print
Error: /dev/sdg: unrecognised disk label
Model: ATA ST2000DM001-1CH1 (scsi)
Disk /dev/sdg: 2000GB
Sector size (logical/physical): 512B/4096B
Partition Table: unknown
Disk Flags:

버전: fdisk from util-linux 2.33.1parted (GNU parted) 3.2

운영 체제: 데비안 10 버스터4.19.0-14-amd64 #1 SMP Debian 4.19.171-2 (2021-01-30) x86_64 GNU/Linux

smartctl정보(두 경우 모두 동일):

=== START OF INFORMATION SECTION ===
Model Family:     Seagate Barracuda 7200.14 (AF)
Device Model:     ST2000DM001-1CH164
Serial Number:    Z1E6Q80D
LU WWN Device Id: 5 000c50 065bb1ceb
Firmware Version: CC27
User Capacity:    2,000,398,934,016 bytes [2.00 TB]
Sector Sizes:     512 bytes logical, 4096 bytes physical
Rotation Rate:    7200 rpm
Form Factor:      3.5 inches
Device is:        In smartctl database [for details use: -P show]
ATA Version is:   ACS-2, ACS-3 T13/2161-D revision 3b
SATA Version is:  SATA 3.1, 6.0 Gb/s (current: 6.0 Gb/s)
Local Time is:    Sun Mar 28 13:00:17 2021 CEST
SMART support is: Available - device has SMART capability.
SMART support is: Enabled

내가 시도한 것: 파티션을 오른쪽으로 이동하여 gpartedMiB와 정렬되도록 하려면 사용하세요. 이는 도움이 되지 않으며 실제로 parted파티션이 최적으로 정렬되어 있음을 알려줍니다(도킹 시).

제가 알아차린 한 가지 사실은 외부에 도킹할 때(4096)와 내부에 도킹할 때(512) 논리 섹터 크기가 다르다는 것입니다.

물론 데이터를 다른 곳에 복사해서 PC에 연결하면서 다시 포맷할 수도 있지만, 이것에서 뭔가를 배우고 현재의 GPT를 수정할 수 있는 방법이 있는지 알아보고 싶었습니다. 어떤 아이디어가 있나요?

답변1

불행히도 GPT는 여전히 논리 섹터 크기에 따라 달라지며 귀하의 경우에는 다릅니다.

Sector size (logical/physical): 4096 bytes / 4096 bytes
Sector size (logical/physical): 4096B/4096B

그리고

Sector size (logical/physical): 512 bytes / 4096 bytes
Sector size (logical/physical): 512B/4096B

이러한 불일치는 일반적으로 일부 컨트롤러/USB 브리지가 잘못된 섹터 크기를 에뮬레이트하기 때문에 발생합니다.

losetupwith 매개변수를 사용하여 이 문제를 해결할 수 있습니다 --sector-size.

losetup --find --show --partscan --sector-size 4096 /dev/sdg

/dev/loopXpY그런 다음 장치를 확인하십시오 .

4K 논리 섹터 크기를 적용하지 않는 다른 USB 인클로저를 구입하는 경우 512바이트 섹터에 대한 파티션 테이블을 다시 생성해야 합니다. 두 섹터 크기 모두에 작동하는 파티션 테이블을 생성하는 것은 불가능합니다. LVM을 사용하여 이를 수행할 수 있지만 LVM은 파티션 테이블 형식이 아닙니다.

관련 정보