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
オペレーティングシステム:Debian 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
パーティションが最適に整列していることを知らせます(ドッキング時)。
私が気づいた1つの事実は、外部にドッキングするとき(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はパーティションテーブル形式ではありません。