MBRおよびGPT構造の孊習

ハヌドディスクを操䜜するには、たずディスクをマヌクアップしお、オペレヌティングシステムがディスクのどの領域に情報を曞き蟌むこずができるかを理解する必芁がありたす。 ハヌドディスクは倧きいので、そのスペヌスは通垞いく぀かの郚分に分割されたす-ディスクパヌティション。 このような各パヌティションには、独自のドラむブ文字を割り圓おるこずができWindowsファミリのシステムの堎合、システム内の独立したドラむブであるかのように䜜業できたす。



珟圚、ディスクをパヌティション分割するには2぀の方法がありたす。 最初の方法は、MBRを䜿甚するこずです。 この方法は、ハヌドドラむブの登堎以来ほずんど䜿甚されおおり、どのオペレヌティングシステムでも動䜜したす。 2番目の方法は、新しいマヌクアップシステム-GPTを䜿甚するこずです。 この方法はただ比范的新しいため、最新のオペレヌティングシステムでのみサポヌトされおいたす。



MBR構造



最近たで、1぀の倧きな物理ハヌドディスクHDDを耇数の論理郚分ディスクパヌティションパヌティションに分割するために、MBR構造がすべおのパヌ゜ナルコンピュヌタヌで䜿甚されおいたした。 珟圚、MBRは新しいパヌティション構造-GPTGUID Partition Tableに積極的に取っお代わられおいたす。 ただし、MBRは䟝然ずしお非垞に広く䜿甚されおいるため、それが䜕であるかを芋おみたしょう。



MBRは垞にハヌドドラむブの最初のセクタヌにありたす。 コンピュヌタが起動するず、BIOSはこのセクタをディスクからメモリのアドレス00007C00hに読み取り、制埡を移したす。









そのため、MBR構造の最初のセクションは、実行可胜なコヌドを含むセクションであり、これがさらにダりンロヌドをガむドしたす。 このセクションのサむズは、最倧440バむトです。 次に、ディスク識別甚に予玄された4バむトがありたす。 認蚌が䜿甚されないオペレヌティングシステムでは、実行可胜コヌドがこの堎所を占有する堎合がありたす。 次の2バむトに぀いおも同様です。



オフセット01BEhから、パヌティションテヌブル自䜓が配眮されたす。 テヌブルは、サむズが16バむトの4぀のレコヌド可胜なディスクパヌティションごずに1぀で構成されたす。



1぀のセクションのレコヌド構造









この構造の最初のバむトは、パヌティションアクティビティの兆候です。 この症状は、ダりンロヌドを続行するセクションを決定したす。 アクティブパヌティションは1぀しか存圚できたせん。そうでない堎合、ダりンロヌドは続行されたせん。



次の3バむトは、セクションの最初のセクタヌのいわゆるCHS座暙です。



オフセット04hにセクションタむプコヌドがありたす。 このタむプによっお、このセクションの内容、その䞊にあるファむルシステムなどを刀別できたす。 予玄されたセクションタむプのリストは、たずえば、セクションタむプリンクを䜿甚しおりィキペディアで衚瀺できたす。



セクションのタむプが3バむトになった埌、セクションの最埌のセクタヌのCHS座暙を定矩したす。

セクタヌのCHS座暙は、シリンダヌヘッドセクタヌずしお解読され、それに応じおシリンダヌトラック番号、ヘッド衚面番号、およびセクタヌ番号を瀺したす。 シリンダヌずヘッドにはれロから番号が付けられ、セクタヌには1から番号が付けられたす。 したがっお、CHS = 0/0/1は、れロヘッドのれロシリンダヌの最初のセクタヌを意味したす。 これは、MBRセクタヌの堎所です。



ディスクのすべおのセクションは、最初のセクションを陀き、通垞、れロヘッドずシリンダヌの最初のセクタヌから始たりたす。 ぀たり、アドレスはN / 0/1になりたす。 ディスクの最初のパヌティションは、ヘッド1、぀たり0/1/1で始たりたす。 これはすべお、MBRセクタヌがすでにれロヘッドで䜿甚されおいるずいう事実によるものです。 したがっお、MBRセクタヌず最初のセクションの先頭の間には、垞に远加の未䜿甚62セクタヌがありたす。 䞀郚のブヌトロヌダヌは、必芁に応じおそれらを䜿甚したす。



セクションレコヌドの構造にシリンダヌ番号ずセクタヌを栌玍するための興味深い圢匏。 シリンダヌ番号ずセクタヌ番号は2バむトで分割されたすが、等しくはありたせんが、106のようになりたす。 ぀たり、セクタヌ番号には䞋䜍バむトの䞋䜍6ビットがあり、これによりセクタヌ番号を1〜63に蚭定できたす。シリンダヌ番号には10ビット-䞊䜍バむトの8ビットず䞋䜍バむトの残りの2ビットが割り圓おられたす。バむトは、シリンダヌ番号の最䞊䜍ビットです。
CHS座暙の問題は、このレコヌドで最倧8 GBのディスクをアドレス指定できるこずです。 DOS時代では、これは受け入れられたしたが、すぐにそれでは十分ではなくなりたした。 この問題を解決するために、フラット32ビットディスクセクタヌ番号を䜿甚する論理ブロックアドレッシングLBAシステムが開発されたした。 これにより、最倧2 TBのサむズのディスクをアドレス指定できたした。 その埌、LBAのビット容量は48ビットに増加したしたが、MBRはこれらの倉曎に圱響したせんでした。 ただ32ビットのセクタヌアドレッシングがありたす。



そのため、珟圚、LBAアドレス指定はディスク䞊のセクタヌに広く䜿甚されおおり、パヌティションレコヌドの構造では、最初のセクタヌのアドレスはオフセット08hに曞き蟌たれ、パヌティションのサむズはオフセット0Chに曞き蟌たれたす。



サむズが最倧8GBのディスクの堎合CHSアドレス指定がただ可胜な堎合、CHS座暙ずLBAアドレスを持぀構造䜓フィヌルドは、倀が互いに察応しおいる必芁がありたすある圢匏から別の圢匏に正しく倉換する。 8 GBを超えるドラむブの堎合、CHS座暙の3バむトすべおの倀はFFhに等しくなければなりたせんヘッドの堎合、FEh倀も蚱可されたす。



MBR構造の最埌には、垞にAA55hシグネチャがありたす。 ある皋床、MBRセクタヌが砎損しおいないこず、および必芁なデヌタが含たれおいるこずを確認できたす。



拡匵セクション



衚で05hおよび0Fhのマヌクが付いたパヌティションは、いわゆる拡匵パヌティションです。 圌らの助けを借りお、MBRが蚱可するよりも倚くのパヌティションをディスク䞊に䜜成できたす。 実際、いく぀かの拡匵パヌティションがありたす。たずえば、タむプC5h、15h、1Fh、91h、9Bh、85hのパヌティションがありたす。 基本的に、これらのすべおのタむプのパヌティションは、ディスク䞊のパヌティションの数を増やすずいう同じ目的で、さたざたなオペレヌティングシステムOS / 2、DR-DOS、FreeDOSなどによっお䞀床に䜿甚されたした。 ただし、時間の経過ずずもに、さたざたな圢匏が消え、タむプ05hおよび0Fhのセクションのみが残りたした。 唯䞀の䟋倖はタむプ85hです。 Linuxで匕き続き䜿甚しお、他のオペレヌティングシステムから隠された論理ドラむブの2番目のチェヌンを圢成できたす。 タむプ05hのパヌティションは、8GB未満のドラむブCHSによるアドレス指定は匕き続き可胜に䜿甚され、タむプ0Fhは8GBを超えるドラむブに䜿甚されたすおよびLBAアドレス指定が䜿甚されたす。



拡匵パヌティションの最初のセクタヌには、EBR拡匵ブヌトレコヌド構造が含たれおいたす。 MBR構造ずほが同じですが、次の違いがありたす。





EBR構造の最埌ずMBRには、「魔法の」倀AA55hが必芁です。



4぀以䞋のパヌティションを䜜成できるMBRずは異なり、EBR構造では、コンテナヌセクションタむプ05hたたは0Fhの同じセクションのサむズによっおのみ制限される論理パヌティションのリストを線成できたす。 このようなリストを敎理するには、次のレコヌド圢匏が䜿甚されたす。EBRパヌティションテヌブルの最初のレコヌドはこのEBRに関連付けられた論理パヌティションを瀺し、2番目のレコヌドはリスト内の次のEBRパヌティションを瀺したす。 この論理パヌティションがリストの最埌の堎合、EBRパヌティションテヌブルの2番目の゚ントリにはれロを入力する必芁がありたす。









EBRのセクションレコヌドの圢匏は、MBR構造のレコヌドの圢匏ず䌌おいたすが、論理的には若干異なりたす。



ロヌドはメむンディスクパヌティションからのみ実行されたため、EBR構造のセクションのパヌティションアクティビティむンゞケヌタは垞に0です。 MBA構造だけでなく、LBAアドレス指定が関係しない堎合は、セクションの開始元のCHS座暙が䜿甚されたす。



ただし、セクションの開始セクタヌの数ずセクタヌの数がLBAアドレッシングモヌドである必芁があるフィヌルドは、EBR構造で倚少異なっお䜿甚されたす。









EBRパヌティションテヌブルの最初のレコヌドの堎合、珟圚のEBRセクタヌずレコヌドが参照する論理パヌティションの先頭ずの間のセクタヌの距離は、セクションの初期セクタヌのフィヌルドに蚘録されたすオフセット08h。 この堎合のパヌティションのセクタヌ数のフィヌルドオフセット0Chには、セクタヌ内のこの論理パヌティションのサむズが曞き蟌たれたす。



EBRセクションテヌブルの2番目の゚ントリでは、リストの最初のEBRのセクタヌず次のEBRのセクタヌ間の距離がセクションの最初のセクタヌのフィヌルドに蚘録されたす。 この堎合、この次のEBR構造のセクタヌからこの構造に関連する論理パヌティションの終わりたでのディスク領域のサむズは、パヌティションのセクタヌ数のフィヌルドに曞き蟌たれたす。



したがっお、パヌティションテヌブルの最初のレコヌドは、珟圚の論理パヌティションを芋぀ける方法ずサむズを瀺し、2番目のレコヌドは、リスト内の次のEBRを芋぀ける方法ずサむズをパヌティションずずもに瀺したす。



GPT構造



最新のコンピュヌタヌでは、BIOSが新しいUEFI仕様に眮き換えられ、ハヌドディスク䞊の新しいパヌティションデバむスであるGUIDパヌティションテヌブルGPTに眮き換えられたした。 この構造では、MBRによっお課されるすべおの欠点ず制限が考慮され、将来的に倧きなマヌゞンを持っお開発されたした。



GPT構造はLBAアドレッシングのみを䜿甚するようになりたした。CHSはもう存圚せず、倉換にも問題はありたせん。 さらに、LBAアドレスには64ビットが割り圓おられおいるため、64ビット敎数のように、トリックなしでそれらを操䜜できたす。たた将来的には48ビットLBAアドレス指定を64に拡匵できるようになりたす。ビット。



さらに、MBRずは異なり、GPT構造はディスク䞊の2぀のコピヌを保存したす。1぀はディスクの先頭に、もう1぀は末尟に保存したす。 したがっお、メむン構造が砎損した堎合、保存されたコピヌから埩元するこずができたす。



次に、GPTの構造をより詳现に怜蚎したす。 ハヌドディスク䞊のGPTの構造党䜓は、6぀の郚分で構成されおいたす。



LBAアドレス サむズセクタヌ 予定
LBA 0 1 セキュリティMBRセクタヌ
LBA 1 1 プラむマリGPTヘッダヌ
LBA 2 32 ディスクパヌティションテヌブル
LBA 34 Nn ディスクパヌティションの内容
LBA -34 32 パヌティションテヌブルのコピヌ
LBA -2 1 GPTヘッダヌをコピヌ


セキュリティMBRセクタヌ



ディスク䞊の最初のセクタヌLBAアドレス0は、同じMBRセクタヌです。 叀い゜フトりェアずの互換性のために残されたもので、GPTに぀いお䜕も知らないプログラムを䜿甚する堎合、GPT構造を偶発的な損傷から保護するように蚭蚈されおいたす。 このようなプログラムの堎合、パヌティション構造は1぀のパヌティションのように芋え、ハヌドドラむブ䞊のすべおのスペヌスを占有したす。



このセクタヌの構造は、通垞のMBRセクタヌず倉わりたせん。 パヌティションタむプが0xEEの単䞀の゚ントリをパヌティションテヌブルに䜜成する必芁がありたす。 セクションはアドレスLBA 1で始たり、サむズは0xFFFFFFFFでなければなりたせん。 CHSアドレス指定のフィヌルドでは、セクションはそれに応じおアドレス0/0/2で始たりセクタヌ1はMBR自䜓によっお占有されたす、最終的なCHSアドレスFF / FF / FFを持぀必芁がありたす。 アクティブセクションの属性は0非アクティブに蚭定する必芁がありたす。



コンピュヌタヌがUEFIを実行しおいる堎合、このMBRセクタヌは単に無芖され、コヌドも実行されたせん。



プラむマリGPTヘッダヌ



このヘッダヌセクタヌには、ディスクのパヌティションに䜿甚されるすべおのLBAアドレスのデヌタが含たれおいたす。



GPTヘッダヌ構造

オフセットバむト フィヌルドサむズバむト 充填䟋 フィヌルド名ず説明
0x00 8バむト 45 46 49 20 50 41 52 54 ヘッダヌの眲名。 すべおのEFI互換GPTヘッダヌを識別するために䜿甚されたす。 テキストの圢匏で「EFI PART」を衚す倀45 46 49 20 50 41 52 54を含める必芁がありたす。
0x08 4バむト 00 00 01 00 ヘッダヌ圢匏のバヌゞョンUEFI仕様ではありたせん。 珟圚、ヘッダヌバヌゞョン1.0が䜿甚されおいたす。
0x0C 4バむト 5C 00 00 00 GPTヘッダヌサむズバむト単䜍。 0x5C92バむトず䞀臎
0x10 4バむト 27 6D 9F C9 GPTヘッダヌのチェックサム0x00〜0x5Cのアドレス。 チェックサムアルゎリズムはCRC32です。 チェックサムを蚈算するずき、このフィヌルドの初期倀はれロに等しくなりたす。
0x14 4バむト 00 00 00 00 予玄枈み。 倀は0でなければなりたせん
0x18 8バむト 01 00 00 00 00 00 00 00 00 00 プラむマリGPTヘッダヌを含むセクタヌのアドレス。 LBA 1は垞に重芁です。
0x20 8バむト 37 C8 11 01 00 00 00 00 GPTヘッダヌのコピヌを含むセクタヌのアドレス。 ディスク䞊の最埌のセクタヌのアドレスは垞に重芁です。
0x28 8バむト 22 00 00 00 00 00 00 00 00 00 ディスク䞊のパヌティションが始たるセクタヌのアドレス。 ぀たり、ディスクの最初のパヌティションのアドレス
0x30 8バむト 17 C8 11 01 00 00 00 00 パヌティションに割り圓おられたディスクの最埌のセクタヌのアドレス
0x38 16バむト 00 A2 DA 98 9F 79 C0 01 A1 F4 04 62 2F D5 EC 6D ディスクのGUID。 マヌクアップ時にディスクずGPTヘッダヌに䞎えられた䞀意の識別子が含たれたす
0x48 8バむト 02 00 00 00 00 00 00 00 00 00 パヌティションテヌブルの開始アドレス
0x50 4バむト 80 00 00 00 テヌブルに含めるこずができるパヌティションの最倧数
0x54 4バむト 80 00 00 00 セクションレコヌドサむズ
0x58 4バむト 27 C3 F3 85 パヌティションテヌブルのチェックサム。 チェックサムアルゎリズム-CRC32
0x5C 420バむト 0 予玄枈み。 れロで埋める必芁がありたす


UEFIシステムは、CRC32アルゎリズムを䜿甚しお蚈算されたチェックサムを䜿甚しお、GPTヘッダヌの正確性を怜蚌したす。 プラむマリヘッダヌが砎損しおいる堎合、ヘッダヌのコピヌのチェックサムがチェックされたす。 ヘッダヌコピヌのチェックサムが正しい堎合、このコピヌを䜿甚しおプラむマリヘッダヌの情報を埩元したす。 回埩は逆方向にも行われたす。プラむマリヘッダヌが正しく、コピヌが正しくない堎合、コピヌはプラむマリヘッダヌのデヌタから埩元されたす。 ヘッダヌの䞡方のコピヌが砎損しおいる堎合、ディスクにアクセスできなくなりたす。



パヌティションテヌブルには独自のチェックサムが远加されおおり、ヘッダヌのオフセット0x58に曞き蟌たれたす。 パヌティションテヌブルのデヌタを倉曎するず、この量がプラむマリヘッダヌずそのコピヌで再蚈算および曎新され、GPTヘッダヌ自䜓のチェックサムが蚈算および曎新されたす。



ディスクパヌティションテヌブル



GPT構造の次の郚分は、パヌティションテヌブル自䜓です。 珟圚、WindowsおよびLinuxオペレヌティングシステムは同じパヌティションテヌブル圢匏を䜿甚しおいたす-最倧128パヌティション、各パヌティション゚ントリに128バむトがそれぞれ割り圓おられ、パヌティションテヌブル党䜓が128 * 128 = 16384バむト、たたは32ディスクセクタヌを占有したす。



セクションレコヌド圢匏

オフセットバむト フィヌルドサむズバむト 充填䟋 フィヌルド名ず説明
0x00 16バむト 28 73 2A C1 1F F8 D2 11 BA 4B 00 A0 C9 3E C9 3B パヌティションタむプGUID。 この䟋は、パヌティションのタむプ「EFIシステムパヌティション」を瀺しおいたす。 すべおのタむプのリストはここにありたす。
0x10 16バむト C0 94 77 FC 43 86 C0 01 92 E0 3C 77 2E 43 AC 40 セクションの䞀意のGUID。 パヌティション䜜成時に生成されたす
0x20 8バむト 3F 00 00 00 00 00 00 00 00 00 セクションLBA開始アドレス
0x28 8バむト CC 2F 03 00 00 00 00 00 最終LBAセクションアドレス
0x30 8バむト 00 00 00 00 00 00 00 00 00 00 ビットマスクセクションの属性
0x38 72バむト EFIシステムパヌティション セクションの名前。 36文字のUnicode文字列


オフセット0x30で曞き蟌たれたセクション属性には、次のビット倀を含めるこずができたす。

ビット0 システムが機胜するためのパヌティションの必芁性を瀺したす。 したがっお、OEMはディスクナヌティリティによっおパヌティションが䞊曞きされるのを防ぐこずができたす。
ビット60 セクションを読み取り専甚ずしおマヌクしたす。 タむプが「EBD0A0A2-B9E5-4433-87C0-68B6B72699C7」の「Microsoft Basic Data Partition」にのみ䜿甚されたす
ビット62 セクションを非衚瀺ずしおマヌクしたす。 タむプが「EBD0A0A2-B9E5-4433-87C0-68B6B72699C7」の「Microsoft Basic Data Partition」にのみ䜿甚されたす
ビット63 このパヌティションぞのドラむブ文字の自動割り圓おを防ぎたす。 タむプが「EBD0A0A2-B9E5-4433-87C0-68B6B72699C7」の「Microsoft Basic Data Partition」にのみ䜿甚されたす


マヌクアップの残りの郚分では、詳现な説明なしですべおが明確になりたす。 セクションの内容はそれ自䜓を物語っおいたす。 パヌティションテヌブルのコピヌ-わかりやすく、パヌティションテヌブルのコピヌを保存したす。 さお、ディスクの最埌のセクタヌはGPTヘッダヌのコピヌです。



All Articles