fdisk -lのようなコマンドを使用してセクタサイズを見つける方法は?

fdisk -lのようなコマンドを使用してセクタサイズを見つける方法は?

ディスクのMBRにこの情報が含まれているので、fdiskなどのコマンドを呼び出すとカーネルレベルのコードが実行され、MBRの特定の部分からその情報が読み取られますか?では、どのような部分ですか?どんなオフセット?

MBRにない場合、このタイプのコマンドはどのように検索しますか?パーティションの開始アドレスを計算する必要があり、そのためにセクタサイズが必要であることを考慮すると、パーティションの先頭から読み取ることはできません。

fdiskこの情報を見つけるために同様のコマンドを実行するにはどうすればよいですか?その人はそれをどこで読みましたか?

ベストアンサー1

デバイスのセクタサイズはMBRに保存されません。

fdiskuse theBLKBSZGETなどのユーザー空間コマンドBLKSSZGET ioctls はディスクからセクタサイズを検索します。これは、ioctlドライバ自体から関連情報を取得するカーネルのドライバによって処理されます。

(これに関する文書はあまりありませんioctl。確認する必要があります。カーネルソースコード.)

ドライブを直接照会する他のツール(たとえば)を使用して、関連情報を表示できますhdparm。小さなSSDについてhdparm -I教えてください。

[...]
Logical  Sector size:                   512 bytes
Physical Sector size:                   512 bytes
Logical Sector-0 offset:                  0 bytes
[...]
cache/buffer size  = unknown
Form Factor: 2.5 inch
Nominal Media Rotation Rate: Solid State Device
[...]

4Kセクターを備えた大型回転ディスクから私が得るものは次のとおりです。

[...]
Logical  Sector size:                   512 bytes
Physical Sector size:                  4096 bytes
Logical Sector-0 offset:                  0 bytes
[...]
cache/buffer size  = unknown
Form Factor: 3.5 inch
Nominal Media Rotation Rate: 5400
[...]

おすすめ記事