100MBのサイズのファイルを生成しlosetup
ます/dev/loop0
。
したがって、私はfdisk
空のDOSパーティションテーブルを作成し、ディスク全体にわたって新しいパーティションを作成しようとしました。
私が見るのに奇妙でわかりにくいのは、上記のパーティションがセクタ63で始まるということです。これは、パーティションテーブルが62個のセクタ、つまり31Kbを占めることを意味します。
私の考えでは、パーティションエントリに関するすべてのデータがマスターブートレコード(ドライブの最初のセクタ)に書き込まれるため、ディスクの最初の512バイトのみが範囲外でなければなりません。
ドライブを確認すると、最初のセクタ以降のセクタは空き領域で完全に満たされていないため、明らかにパーティションテーブルに関するいくつかの詳細がありませんでした。
fdisk印刷(表示タイプ=セクタ):
Device Boot Start End Blocks Id System
/dev/loop0p1 * 63 192779 96358+ 83 Linux
答え1
MBRパーティション形式は30年になり、歴史的な理由で奇妙です。
当時、コンピュータはハードドライブの構造を知る必要がありました。ハードドライブのデータはどのように構成されていますか? 3次元で:シリンダー、ヘッド、セクター。
(チャート提供:ライオンキンブロ)
ジオメトリは、当時十分に大きい最大値として保存されます。ヘッド数(1-255)は8ビット、トラックのセクタ数(1-63)は6ビット、番号は10ビットです。ヘッドあたりのトラック数、つまりシリンダ数(1〜1023)、1セクタに512バイトが含まれています。今日、コンピュータはディスクの実際の構造を知る必要はありませんが(数字は意味がありません)、フォーマットはそのまま維持され、MBRでパーティション化されたディスクはCHS形式で表示されるサイズを持っていますが、重要なのは3つの数の積はセクタの総数と同じです。
パーティションが始まる開始アドレスはCHS形式で表され、以前のオペレーティングシステムの多くは異なるトラックにまたがるパーティションをサポートしていません。つまり、パーティションはシリンダーの境界に合わせる必要があります。これは、最初のパーティションに63セクタの倍数があることを意味します。
パーティションのコンテンツに使用されていないスペースは31kBです。ブートローダで使用できます。
現代GPTパーティションフォーマット1 TB以上のディスクを持つ最新のPCの標準である場合は、1 MBの境界にパーティションを配置するのが好きなので、最初のパーティションが始まる前に約1023 kBの空き容量があります。繰り返しますが、これはブートローダで使用できます。さらに、最新のオペレーティングシステムはMBRパーティションを1MBの境界に揃えてCHS互換性を放棄し、パーティションが4kBセクタ(= 512kBのレガシーセクタ8個)を持つドライブのセクタ境界にあることを保証します。セクターの境界(ディスクが使用する実際のセクターサイズ、つまりデフォルトの転送サイズなど)に基づいてパーティションをソートすると、パフォーマンスを向上させるのに役立ちます。