第4回 2Tbytes超ディスクをシステム用ディスクとして利用する:PCハードウェア強化ラボ(1/3 ページ)
2Tbytesを超える大容量ディスクも急速に低価格化。だがWindowsのブートディスクとして利用するにはUEFIサポートと64bit Windowsが必要だ。
前回は、ディスクのパーティション形式と、2Tbytes超のディスクをデータ用ボリュームとして既存のWindowsシステムに追加する方法について解説した。2Tbytesを超えるディスクは従来のMBR形式のパーティションでは(そのすべてを)扱えないので、新しいGPT方式で管理する必要があるが、これを利用するにはWindows Vista以降のWindows OSが必要である、という結論であった。今回はさらに進んで、2Tbytes超のディスクをWindows OSの起動ディスクとして利用する方法を紹介する。
2Tbytes超ディスクからシステムを起動するには?
前回は、2Tbytes超のディスクを正しく扱うためには、GPT形式でパーティションを作成しなければいけないと述べた。従来のMBR形式のパーティションでは最大でも2Tbytesのディスクまでしか扱えないので、例えば3Tbytesのディスクを用意しても、先頭の2Tbytes分しかユーザーが利用できない。そのため、2Tbytes超のディスクを扱う場合は、GPTという新しいパーティション形式にしてディスク全体を管理できるようにする必要がある。
このGPT形式にしなければならないという制限は、データ用ボリュームだけでなく、システムの起動用ディスクとして利用する場合にも当てはまる。つまり、2Tbytes超のディスクにWindows OSをインストールしたければ、ディスクをGPT形式にしなければならない、ということである。なお前回述べたように、1台のディスク内でGPT形式とMBR形式は混在できないため(少なくともWindows OSは、両方を混在させたようなパーティション管理は行わない)、OSインストール用にディスクの先頭はMBRで、後半部分はGPTでパーティション管理する、ということはできない。必ずディスク全体をGPT形式にしてインストールする必要がある。
さてディスクをGPT形式にすれば、それだけでWindows OSが問題なくインストールできるかというと、そうではない。これ以外にさらに、「システムのUEFIサポート」と「64bit Windows OS」という2つの条件も満たしている必要がある(UEFIについては後述)。まとめると次のようになる。
パーティション形式 | GPT形式 | MBR形式 |
---|---|---|
ブート方法 | UEFIブート | BIOSブート |
管理可能なディスクのサイズ | 2Tbytes超:○ 2Tbytes未満:○ |
2Tbytes超:× 2Tbytes未満:○ |
ブート可能なWindows OS | UEFIブートをサポートした、以下のいずれかの64bit版のWindows OS(32bit OSは不可) ・Windows Server 2003((Itanium版) ・Windows Vista SP1以降 ・Windows Server 2008 ・Windows 7 ・Windows Server 2008 R2 |
すべてのWindows OS(32bitでも64bitでも可) |
ディスクの形式とブート可能なWindows OS 2Tbytes超のディスクにシステムをインストールするには、「GPT形式」の列の条件をすべて満たしている必要がある。 |
2Tbytes超のディスクをシステムの起動用ディスクにするためには、「GPT」「UEFI」「64bit Windows OS」という3つの条件をすべて満たしている必要があるが、どれか1つでも条件から外れると、従来のようなMBR形式での管理になる。例えば、GPT形式で初期化できなかったり(これはOSのインストーラの問題)、UEFIがサポートされていなかったり(これはPCシステムの問題)、64bit Windows OSでない場合は、MBR形式を選択せざるを得ず、2Tbytes超のディスク全体を利用することはできない。
MBR形式のディスクの例
次の画面は3TbytesのディスクをMBR形式でフォーマットして64bit版Windows 7をインストールした場合の例である。2Tbytesを超える部分は未割り当て領域になっており、ユーザーは利用できない(新しいボリュームを確保することも不可能。デッドスペースとなっている)。
MBR形式の2Tbytes超ディスクの例
2Tbytes超ディスクをMBR形式でフォーマットし、64bit版のWindows 7をインストールした場合の例。ディスクの先頭2Tbytesしか利用できず、残りの部分をデータ用パーティションとして確保することもできない。この部分は利用できない領域になる。
(1)ディスクの全サイズは約2.8Tbytes。
(2)OSのパーティション・サイズは2Tbytesまで。
(3)この部分は利用できない領域。
GPT形式のディスクの例
次はUEFIブートするシステム上で、GPT形式でフォーマットして64bit版Windows 7をインストールした場合の例である。3Tbytesのディスクのほぼ全部をC:ドライブとして利用できている。RAIDを利用すれば、もっと大きなディスク領域にもインストールできるだろう。
GPT形式の2Tbytes超ディスクの例
2Tbytes超ディスクをGPT形式でフォーマットし、64bit版のWindows 7をインストールした場合の例。ディスク全体が1つのパーティションになっている。
(1)ディスクの全サイズは約2.8Tbytes。
(2)OSのパーティション・サイズも約2.8Tbytes。
2Tbytes以下のディスクとGPTについて
ここでディスクのサイズについて補足しておく。2Tbytes超のディスクにはGPT形式が必要と述べたが、GPT形式を利用するためには、2Tbytes超のディスクが必須というわけではない。先の表にも書いているが、2Tbytes以下のディスクであってもGPT形式にすることができる。MBR形式では2Tbytes超のディスクは管理できないが、GPT形式ならばディスクのサイズに関わらず管理できる。ただWindows OSの場合には、2Tbytes超のディスクからシステムを起動したいとなるとGPTを選択せざるを得ず、その結果、(GPTのブートはUEFI方式なので)UEFIブートが必要→UEFIブートをサポートした64bit版Windows OSが必要、となっているのである。
もっと小さいディスク、例えば1TbytesのディスクとGPT形式、UEFIブート、64bit版Windows OSという組み合わせでも利用できる(ただしあまりメリットはないが)。
UEFIとは
次は重要なキーワードである「UEFI(Unified Extensible Firmware Interface)」について説明しておこう。UEFIを簡単に言うと、従来のBIOSに代わる新しいシステム・インターフェイスである。従来のPCは、システムが起動すると、BIOSと呼ばれるコードがシステムの初期化やOSプログラムのロード、起動などを行っていた。またBIOSには画面に文字を表示したり、キーボードやディスクとの入出力も担当するAPI(機能、ライブラリ)が用意されており、システム上で動作するOSは起動中に、このBIOSの機能を使って画面にブート・メッセージなどを表示している。初期のMS-DOSなどは、画面への最終的な表示やキーボードからの入力などはすべてこのBIOSのAPIを呼び出していた。
Windows OSやLinuxなどの時代になって、BIOSの役割は単に最初にOSコードをメモリにロードするぐらいしかしていないように見えるが(ハードウェアの制御はOS自身に含まれるデバイス・ドライバが担当する)、それでもまったく不要になったわけではない。
UEFIは、このBIOSを新しい時代に合わせて作り直したものだ。もともとは、Intel社がIA-64(Itanium)搭載システムのための「BIOSのような基本システム」として作成したものである(2000年ごろ)。といってもIBM-PCのBIOSインターフェイスをそのままIA-64システム上で実装することは不可能だし(アーキテクチャがまったく異なる。BIOSは主に8086の16bitリアルモード・コードで記述されている)、そもそも意味がない。
そこでUEFIではこれらを整理して、64bit CPU時代にも十分利用できる、高機能なインターフェイスとして新設計されている。BIOSよりも柔軟性や拡張性があり、さまざまなOSからも利用しやすくなっている。画面表示も例えば文字だけでなく、簡単なグラフィックス描画なども標準化している。またUEFIを利用するコード(ブート・ローダやデバイス・ドライバなど)が特定のCPUアーキテクチャに依存しないように、仮想的なバイト・コードを使って(UEFI内にはこれを実行する仮想マシンが実装されている)、UEFIの機能拡張も実装できるようになっている。
当初はIntel社が規格を制定、実装しており、このころは単に「EFI(Extensible Firmware Interface)」と呼ばれていたが(最初期には「Intel Boot Initiative」と呼ばれていた)、後にEFI規格の普及と拡大を図るため、仕様の開発・管理などがUnified EFIフォーラムへと移管されている。UEFIの最新仕様はUEFI 2.3.1であり(仕様書は2000ページ以上ある)、以下のサイトから入手できる。
GPTとは
このUEFIのために作られたディスク管理メカニズムがGPTである(だから、本来はMBRが使われるPCとはまったく異なる別のシステムのものだった)。前回述べたように、BIOS(MBR)方式では扱えるディスクのサイズやパーティション数に制限が多いし、管理方法も原始的で制約が多かった。GPTでは、例えばディスクの位置(接続するインターフェイスの番号)などに依存しないように、GUIDというIDでディスクを識別していたり、多数のOSやパーティションを柔軟に管理できるようになっている。またUEFIでは、従来のBIOS+MBRとは異なる新しいブート方式(UEFIブート)も取り入れられている。この方式では、システム中の特定の場所に用意されたUEFIのブート・コードをロードして実行する機能が標準化されており(MBRでは、パーティションの先頭にx86のリアルモードのコードを置くという原始的な方法だった)、さまざまなCPUアーキテクチャやOSに対応できるようになっている。
最初に、2Tbytes超のディスクをシステムの起動用ディスクにするためには、GPTとUEFIがまず必要と述べたが、もともとこの2つはセットなので、切り離すことが不可能な条件である。
Windows OSとUEFIサポート
3つ目の必要条件である「UEFIブートをサポートした64bit Windows OSが必要」という要件は、Windows OS側の事情である。マイクロソフトは32bit Windows OSではUEFIブートをサポートしないという方針のようなので(もともとはItanium向けWindows OSでのみサポートしていた機能である)、UEFIからのブートには64bit Windowsが必要となる。ちなみに、Linuxなどでは32bit版でもUEFIブートをサポートしている。
OSの起動処理では、ブート・コードの実行さえできればブート方法は何でもよいと思われるかもしれない。だが実際には、UEFIの初期化時にセットアップされたデバイスやメモリ・マップ、不揮発性メモリなどへのアクセス、シャットダウンやスリープ、休止、復帰時の処理などにおいて、UEFIのコードを呼び出す必要がある。そのためブート方法に応じてOS側の対応も必要になるが、32bit版OSの場合は、そもそもUEFIをサポートしているプラットフォームが少ないし、今後は64bit OSが主流になるだろうから、今後32bit Windows OSにおいてUEFIがサポートされることはないと思われる。現状で2Tbytes超のディスクから起動したければ、64bit版Windows OSを利用するしかない。
どのWindows OSでUEFIがサポートされているか、このようなUEFI実装が必要かなどについては、以下のドキュメントなどを参照していただきたい。
Copyright© Digital Advantage Corp. All Rights Reserved.