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.1
및parted (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
내가 시도한 것: 파티션을 오른쪽으로 이동하여 gparted
MiB와 정렬되도록 하려면 사용하세요. 이는 도움이 되지 않으며 실제로 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 브리지가 잘못된 섹터 크기를 에뮬레이트하기 때문에 발생합니다.
losetup
with 매개변수를 사용하여 이 문제를 해결할 수 있습니다 --sector-size
.
losetup --find --show --partscan --sector-size 4096 /dev/sdg
/dev/loopXpY
그런 다음 장치를 확인하십시오 .
4K 논리 섹터 크기를 적용하지 않는 다른 USB 인클로저를 구입하는 경우 512바이트 섹터에 대한 파티션 테이블을 다시 생성해야 합니다. 두 섹터 크기 모두에 작동하는 파티션 테이블을 생성하는 것은 불가능합니다. LVM을 사용하여 이를 수행할 수 있지만 LVM은 파티션 테이블 형식이 아닙니다.