USB3에서 SATA로 마이그레이션할 때 (GPT) 파티션 테이블 위치가 변경됩니까?

USB3에서 SATA로 마이그레이션할 때 (GPT) 파티션 테이블 위치가 변경됩니까?

방금 외부 USB 3.0 하드 드라이브 인클로저를 열고 SATA를 통해 PC 내부에 디스크를 장착했습니다. 이제 Linux 시스템은 실제로 존재하는 GPT를 더 이상 찾지 않습니다. 디스크에는 이미 2TB의 데이터가 있으므로 이미 존재하는 파티션 테이블을 찾는 것이 가장 좋습니다.

다른 인터페이스(USB, SATA)를 사용하면 GPT 위치가 바뀌나요? 어떻게 해결하나요?

다음은 PC(SATA)에 설치된 gdisk의 출력입니다.

# gdisk /dev/disk/by-id/ata-TOSHIBA_DT01ABA300_123456890
GPT fdisk (gdisk) version 1.0.1

Partition table scan:
  MBR: protective
  BSD: not present
  APM: not present
  GPT: not present

Creating new GPT entries.

Command (? for help): q

디스크는 Toshiba Canvio USB3 인클로저에 들어 있는 TOSHIBA DT01ABA300(위 그림 참조)입니다.

관련 부분은 다음과 같습니다 dmesg.

[    1.618441] scsi host9: ahci
[    1.618485] ata9: SATA max UDMA/133 abar m512@0xfd1ff000 port 0xfd1ff100 irq 42
[    2.106001] ata9: SATA link up 6.0 Gbps (SStatus 133 SControl 300)
[    2.107329] ata9.00: ATA-8: TOSHIBA DT01ACA300, MX6OABB0, max UDMA/133
[    2.107332] ata9.00: 5860533168 sectors, multi 0: LBA48 NCQ (depth 31/32), AA
[    2.108712] ata9.00: configured for UDMA/133
[    2.609553] scsi 9:0:0:0: Direct-Access     ATA      TOSHIBA DT01ABA3 ABB0 PQ: 0 ANSI: 5
[    2.609699] sd 9:0:0:0: [sdg] 5860533168 512-byte logical blocks: (3.00 TB/2.72 TiB)
[    2.609703] sd 9:0:0:0: [sdg] 4096-byte physical blocks
[    2.609785] sd 9:0:0:0: [sdg] Write Protect is off
[    2.609788] sd 9:0:0:0: [sdg] Mode Sense: 00 3a 00 00
[    2.609825] sd 9:0:0:0: [sdg] Write cache: enabled, read cache: enabled, doesn't support DPO or FUA
[    2.637653] sd 9:0:0:0: [sdg] Attached SCSI disk

원본 디스크에서 EFI(GPT?!) 서명을 찾은 곳은 다음과 같습니다.

dd if=/dev/sdg bs=2M count=32 | hexdump -C | grep -w EFI
32+0 records in
32+0 records out
67108864 bytes (67 MB) copied, 0.447864 s, 150 MB/s
00001000  45 46 49 20 50 41 52 54  00 00 01 00 5c 00 00 00  |EFI PART....\...|

gdisk특정 오프셋에서 GPT를 읽는 매개변수를 찾지 못했습니다 . 어떻게 읽을 수 있나요?

# parted /dev/sdg
GNU Parted 3.2
Using /dev/sdg
Welcome to GNU Parted! Type 'help' to view a list of commands.
(parted) unit b                                                           
(parted) print                                                            
Error: /dev/sdg: unrecognised disk label
Model: ATA TOSHIBA DT01ABA3 (scsi)                                        
Disk /dev/sdg: 3000592982016B
Sector size (logical/physical): 512B/4096B
Partition Table: unknown
Disk Flags: 
(parted) q

그리고:

# losetup --find --show /dev/sdg
/dev/loop0
# parted /dev/loop0
GNU Parted 3.2
Using /dev/loop0
Welcome to GNU Parted! Type 'help' to view a list of commands.
(parted) unit b                                                           
(parted) print                                                            
Error: /dev/loop0: unrecognised disk label
Model: Loopback device (loopback)                                         
Disk /dev/loop0: 3000592982016B
Sector size (logical/physical): 512B/512B
Partition Table: unknown
Disk Flags: 
(parted)

답변1

다른 인터페이스(USB, SATA)를 사용하면 GPT 위치가 바뀌나요?

예, GPT는 어리 석고 섹터 크기에 따라 다르며 일부 USB 쉘은 512b실제로 4096b섹터라고 주장 하고 그 반대도 마찬가지입니다.

예, Linux는 멍청하고 다양한 블록 크기의 GPT를 지원하지 않기 때문입니다. 하지만 자동으로 이를 감지해야 합니다.

GPT-512에서 GPT-4096으로 변환하려면 파티션 테이블을 다시 생성해야 할 수 있으며, 먼저 이러한 변환이 가능하도록 파티션이 MiB 정렬되기를 바랍니다.

관련 정보