USBフラッシュドライブを持っています。 fdisk
(Linux)によって生成された初期情報は次のとおりです。
# fdisk -l /dev/sdc
Disk /dev/sdc: 8053 MB, 8053063680 bytes
16 heads, 60 sectors/track, 16384 cylinders, total 15728640 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 identifier: 0xd297c0f1
Device Boot Start End Blocks Id System
/dev/sdc1 2048 15728639 7863296 b W95 FAT32
次に、さまざまなツール(badblocks
、parted
、fdisk
、gparted
、disks
など)で遊んでみました。ドライブの初期状態を復元します(同じパーティションテーブル、同じパーティション番号/タイプ/サイズ/場所、同じファイルシステムおよび...ジオメトリ。しかし、fdiskを再度実行すると、異なるジオメトリが出力されました。
# fdisk -l /dev/sdc
Disk /dev/sdc: 8053 MB, 8053063680 bytes
232 heads, 46 sectors/track, 1473 cylinders, total 15728640 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 identifier: 0x7a249df5
Device Boot Start End Blocks Id System
/dev/sdc1 2048 15728639 7863296 c W95 FAT32 (LBA)
実際、私がしたことは次のとおりです。
badblocks -w -s -o /tmp/output /dev/sdc
fdisk
とparted
で新しいパーティションテーブルを作成しましたfdisk
とparted
でプライマリパーティションを作成しましたmkfs.vfat -F32 /dev/sdc1
、mkfs.exfat /dev/sdc1
)確かに、フラッシュドライブにはヘッダーやシリンダーなどがなく、セクターの総数が同じであることが重要であることを知っています。しかしとにかく、フラッシュドライブに特定のジオメトリを設定したいのですが、どうすればよいですか?使用するツールやコマンドオプションに依存しますか?
ジオメトリ(シリンダー、ヘッド、セクター)は非推奨であり、フラッシュドライブはもちろん、最新のハードディスクでも関係ありません。最近のオペレーティングシステムではほとんど使用されていません。事実上、すべてが線形アドレス(論理ブロックアドレス指定[LBA]、またはその他のインターフェイス固有の方法)を使用します。パフォーマンスには影響しません。
これらのCHS値は、MBRパーティションテーブルにCHSアドレスが含まれているために作成されます。現在のバージョンのfdisk(util-linux 2.27.1)は、デフォルトではこの紛らわしい情報さえ表示しません。
たとえば、を使用してジオメトリをオーバーライドできます。 fdisk -H 32 -S 32 /dev/sda
。これにより、すべてのシリンダーの長さが512kになります。 msdosパーティションスキームのパーティションはシリンダー境界で始まるため、これはほとんどのSSDですべてのパーティションが適切に配置されるようにするためのやや気の利いた方法です(ブートローダー用のスペースを確保するために1つのトラックでオフセットされる最初のパーティションを除く)。
ただし、GPTを使用して、偽のジオメトリを忘れた方がよいでしょう。