ディスクのMBRにこの情報が含まれているので、fdiskなどのコマンドを呼び出すとカーネルレベルのコードが実行され、MBRの特定の部分からその情報が読み取られますか?では、どのような部分ですか?どんなオフセット?
MBRにない場合、このタイプのコマンドはどのように検索しますか?パーティションの開始アドレスを計算する必要があり、そのためにセクタサイズが必要であることを考慮すると、パーティションの先頭から読み取ることはできません。
fdisk
この情報を見つけるために同様のコマンドを実行するにはどうすればよいですか?その人はそれをどこで読みましたか?
ベストアンサー1
デバイスのセクタサイズはMBRに保存されません。
fdisk
use theBLKBSZGET
などのユーザー空間コマンドBLKSSZGET
ioctl
s はディスクからセクタサイズを検索します。これは、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
[...]