2011年6月10日金曜日

MBRに代わる、GPT形式のパーティション管理

 MBR形式に代わるパーティション管理方式として、新しく「GPT(GUID Partition Table)」という管理方式が開発され、利用されることになった。GPTでは、パーティションの開始位置やサイズを指定するために64bit幅のデータ領域を用意している。これならば48bit LBAによるディスクのブロック・アドレスをそのまま格納できる。またMBRにあったさまざまな制限などもなくし、拡張性/柔軟性に富み、信頼性の高いパーティション管理システムとなっている。GPT方式のメリットとしては、次のようなものがある。

論理ブロック・アドレスやパーティション・サイズを64bit幅のデータとして管理する
ディスク1台あたり、最大で128パーティションまで管理できる。MBRのような、プライマリ・パーティション(最大4つまで)や拡張パーティション、論理パーティションという区別はない。すべて対等なパーティションになる
冗長性/信頼性確保のため、ディスクの先頭と末尾に同じGPTデータが置かれ、プライマリが障害などで利用できないときはバックアップが利用される
パーティション・データの正当性を保証するため、CRC32によるチェック・データが付けられている
パーティションの内容を識別するためにGUIDが利用されている
パーティションごとに、最大で36文字までの識別用文字列を割り当てることができる
LBA 0(ディスクの先頭のブロックのこと)には互換性のためのMBRデータが置かれている
■古いソフトウェアによる誤操作を防ぐ「互換MBRデータ」の仕組み
 上のメリットのうち、最後の1つ(互換性のためのMBRデータ)について補足しておく。GPTは新しいパーティション管理方式であるため、従来のMBRとはまったく互換性がない。いったんディスクをGPT形式でフォーマットしてしまえば、そのディスクはもうMBR方式ではアクセスしてはいけない。すでにGPT形式で確保されたパーティションのデータなどが壊れてしまうからだ。

 とはいえ、MBRを操作する(古い)ソフトウェアはGPTを知らないだろうから、アクセスを完全に防ぐことはできないだろう。そこで考え出されたのが、元々のMBRの場所であるLBA 0にダミーの(レガシー)MBRデータを置く方法である。

 MBRで取り扱える最大ディスク・サイズは2Tbytesなので、すでに2Tbytes(もしくはディスクのサイズ)いっぱいに特別なパーティションが確保されている、というMBRデータを作成してLBA 0に書き込んでおく。するとMBRを操作するソフトウェアは、MBRやパーティションの内容を変更することはないはずである。このような目的で使われるMBRを「保護MBR」とか「GPT保護パーティション」などという。


MBRとGPT
2Tbytesの限界を超えるため、パーティションのデータはGPTで管理する。ただしGPT形式のディスクでは、互換性のために(勝手に操作されないように)MBRのデータも保持している。UEFIの仕様書より引用。MBRから見ると、ディスクのサイズは2Tbytesで、その全部がすでに使用(割り当て)済み状態となっている。本当のパーティション・データはGPT側で管理する。ディスクのサイズが2Tbytes以上あるときは、GPT保護パーティションのサイズは2Tbytesいっぱいとなるが、2Tbytesよりも小さいディスクの場合はディスクの末尾までとなる。
 これ以外に、例えばディスクの前半1TbytesはMBRで管理し、残りはGPTで管理するといった方法も考えられるが(これならば、従来のMBRを利用するソフトウェアも1つのシステム上に同居できる)、間違えてお互いのパーティション・データを破壊したりする可能性があるので、あまり使わない方がよいだろう。少なくともWindows OSはこのような使い方はせず、GPT保護パーティションのみを利用している。

GPT形式のディスクを追加ストレージとして利用するには

 さてこのMBRに代わるGPT(GPT形式のディスク)であるが、いったいどのOSで利用できるのであろうか。以前の137Gbytes超ディスクのときのように、システム(PCやBIOS、インターフェイス・カード)やOSが対応するまで数年待たねばならないのであろうか? もしそうなら、残念である。大容量ディスクはすでに一般的なのに。

 やや悲観的なことを述べたが、実はGPT形式のディスクは、追加ストレージ(追加のボリューム)として利用するだけなら、Windows XP x64 EditionやWindows Server 2003 SP1以降、すなわち以下のWindows OSですでに利用可能である。

Windows XP x64 Edition
Windows Server 2003 SP1以降
Windows Vista
Windows Server 2008
Windows 7
Windows Server 2008 R2
 一方、Windows XP(32bit版)やWindows 2000およびそれ以前のWindows OSでは、GPTは利用できない。これらのOSでは、2Tbytes以下のディスクなら保護パーティションのみが見える。つまり利用できないボリュームとして見えるということである。2Tbytes以上のディスクの場合は、ベンダ提供のドライバなどをインストールしないと、ディスクそのものがアクセスできないことがある。

 GPT形式は「UEFI(Unified Extensible Firmware Interface)」規格の一部として作成されたが、UEFI規格そのものはもう10年近く前に決められたものである。そのため、当時からWindows OSではGPT形式のディスクを追加ストレージとして利用する機能はサポートされていた。UEFIはIA-64システムなどで利用することを主眼に開発されたものであったが、現在ではサーバ・システムやビジネス向けPCなどを中心に、サポートが進んでいる。

0 件のコメント:

コメントを投稿