連載
» 2014年03月27日 17時34分 UPDATE

Windows 8.1クロスロード:第9回 UEFIサポートとセキュアブート (1/2)

Windows 8.1をUEFIモードでインストールすることにより、高速な起動やブートコードなどを保護するセキュアブート機能が利用できる。

[打越浩幸,デジタルアドバンテージ]
Windows 8.1クロスロード
Windows Server Insider

 

「Windows 8.1クロスロード」のインデックス

連載目次

「Windows 8.1クロスロード」は、2013年10月から出荷されているWindows 8.1の注目機能について解説するコーナーです。


 今回は、高速な起動を可能にするWindows 8.1のUEFIサポートと、ブートコードなどを保護するセキュアブートについて解説する。

 Windows 8/8.1では「高速スタートアップ」という機能が導入され、従来のWindows 7と比較するとシステムの起動が非常に高速になっている。高速スタートアップの具体的な内容については以下の記事を参照していただきたい。

 高速スタートアップの内容を簡単にまとめておくと、次のようになる。

  • システムを終了させる場合、ユーザーセッションが終了した状態(OSカーネルとデバイスドライバーだけが残っている状態)を休止状態としてディスクに保存する。
  • システムを起動する場合は、前回の休止状態をメモリにロードして起動し、その後ユーザーセッションを開始する。

 Windows 7やそれ以前のWindows OSでは、システムの起動時にOSカーネルのロードとデバイスの検出、デバイスドライバーのロードなどの作業を行っていたが、これらは非常に時間がかかっていた。Windows 8の高速スタートアップではその部分を省略することにより、大幅に起動/終了の高速化を果たしている。

 ところで前掲のWindows 8の高速スタートアップの記事では、UEFIについては触れていなかった。UEFIを使わなくても十分高速になっているが、UEFIの機能を利用すると、さらに高速な起動や終了が実現できる。今回はWindows 8/8.1のUEFIサポートと、それによって利用できるようになるセキュアブートについて解説する。

高機能な新ファームウェアアーキテクチャ「UEFI」とは

 「UEFI(Unified Extensible Firmware Interface)」とは(単に「EFI」と呼ぶこともある)は、従来のBIOSシステム(以下「レガシーBIOSシステム」と呼ぶ)に代わる、PCシステムのための新しいシステムインターフェイス(ファームウェアアーキテクチャ)である。

 従来のPCには「BIOS」と呼ばれるブートプログラムが載っており、電源投入後のシステムチェックや接続されているデバイスのチェック、ディスクの検出、OSのブートコードのロードと起動などを行っていた。BIOSはx86アーキテクチャのCPUと16bitのリアルモード(アドレス空間はたった1Mbytesしかない)のコードに大きく依存していたため、BIOSプログラムのサイズや実現できる機能には大きな制約があった。最も大きな制約は、2Tbytes以上のディスクからブートできない、という制限だろう。

 UEFIはBIOSに代わる新しいシステムであり、CPUの32bit/64bitネイティブコードを使った高機能な処理や、新しいディスク管理形式(従来のMBR形式ではなく、より拡張されたGPT形式)の採用による、2Tbytes以上のディスクサポートなどを実現している。最近ではBIOSに加えて、このUEFIをサポートしたPCシステムも増えてきている。Windows 8.1のシステム要件では、「セキュアブート」機能を利用するためにはこのUEFIのサポートが必要だし、Windows 8.1のロゴプログラムの認定を受けるためにはUEFIのサポートが必須となっている。

 システムがUEFIをサポートしていると次のようなメリットがある。

項目 内容
セキュアブート ブートコードなどが改ざんされていないことが保証される機能が利用できる。ブートコードを変更する操作(ウイルスなど)は禁止されるため、システムの安全性が増す
2.2Tbytes以上のディスクからのブート 2.2Tbytes以上のディスクをWindows OSのシステムディスクとして利用可能。レガシーBIOSシステムでは、2.2Tbytes以上のディスクはデータ用ディスクとしてのみ利用可能であり、Windows OSのインストール先としては利用できなかった(2.2Tbytes以上の領域にはアクセスできなかった)
高速なシステム起動/シャットダウン レガシーデバイスサポート(レガシーデバイスのスキャン)などを省略し、高速なシステムの起動が可能(Windows 8/8.1の「高速スタートアップ」とは別)
高機能な設定操作画面 GUI画面などを駆使した、高機能で分かりやすいBIOS設定画面を備える。またUEFIのコードでは、システムの起動前に全メモリにアクセス可能なので、高度な機能が実現できる
UEFIを使用したシステムの利点

 UEFIがサポートされているかどうかは、システム次第である。現在Windows 8.1対応として出荷されているPCはもとより、ここ2〜3年以内のPCシステムやマザーボードならまずサポートされているだろう。ただし、その中でも古めのシステムでは単にUEFIブートにのみに対応していて、ユーザーインターフェイスなどはCUIのまま、セキュアブートにも未対応というものもある。

サポートされるWindows OSについて

 Windows OSをUEFIモードで利用するには、Windows Vista SP1以降およびWindows Server 2008 R2以降の64bit版Windows OSが必要である。Windows 8やWindows 8.1からは、32bit版でもUEFI環境で利用できるようになっているが(タブレットPCなどは、UEFIモードで動作する32bit版Windows OSがインストールされている)、一般に入手できるパッケージ版やDSP版のWindows 8/8.1のインストールメディアの場合、32bit版はUEFIモードではインストールできない(レガシーBIOSモードでのみインストール可能)。そのためUEFIモードを利用したければ、64bit版のWindows 8/8.1を利用する。

UEFIモードでインストールする

 Windows 8.1をUEFIモードでインストールするには、Windows OSのインストール用メディアを使ってシステムをUEFIモードでブートさせ、インストーラーを実行させる。UEFIモードで起動させる方法はシステムに依存するが、たいていの場合はまず(BIOSセットアップやUEFIファームウェア設定と呼ばれる)システム設定画面でUEFIブート機能を有効にしておき、Windows OSのインストールメディアを使ってシステムを起動する。最初にレガシーモードでインストールしてしまうと、後でUEFIモードに変更することはできない。

 UEFIモードにするための設定はシステムごとに異なるが、たいていの場合はブートの設定項目の中にUEFIモードが用意されているだろう。UEFIでない従来のモードは「CSM(Compatibility Supported Module)」などと表記されていることが多い。以下に設定しておきたい主な項目を挙げておく。

設定項目 設定内容
UEFI/レガシーBIOSモード ・レガシーBIOS(CSM)モードではなく、UEFIブートを優先するモードを選択
SATAモード ・SATAインターフェイスの動作モードは、IDEではなく、AHCIかRAIDにする
・SSDを利用するなら、SATA 3(6Gbps)ポートに接続しないと速度が3Gbpsで頭打ちになり、その高速性を生かせない
仮想化機能 ・Hyper-Vを利用するなら、Intel VT(Virtualization Technology)かAMD-Vをオンにする
UEFIセキュアブート ・Windows 8/8.1しかインストールするつもりがなければオンにする
・それ以前のWindows OSや、UEFIに対応していないOSをマルチブートで使う予定があるならオフにする
セキュリティデバイス(TPM) ・セキュリティデバイス(TPM:Trusted Platform Module)を持つシステムの場合、可能なら有効にしておく。BitLockerやセキュアブートなどで利用される(これらはTPMがなくても利用できるが、いくらか機能が制限されることがある)
UEFIモードでインストールする場合にチェックしておきたい主なBIOS項目

 以下に、UEFIをサポートしているシステムの画面例を示す。このシステムの場合は、「起動」グループの中にUEFIを使うかどうかを設定する項目が用意されている。

UEFIブートの設定画面例 UEFIブートの設定画面例
これはASUSの「Q87T」というマザーボードでの設定画面例。「起動」グループの中にUEFIブートさせるかどうかを選択する項目がある。
  (1)「起動」グループの「CSM」を選択する。
  (2)ここでUEFIブートを有効にするかどうかを決める。
  (3)これをクリックして選択肢を表示させる。
  (4)この中から起動方法を選ぶ。

 システムの準備ができたら、Windows 8.1のインストールメディア(DVD-ROM)を使ってシステムを起動する。DVDドライブを持っていないシステムの場合は、インストールメディアの内容をUSBメモリにコピーしたものを使ってシステムを起動する。インストール用のUSBメモリを作る方法は、以下の記事などを参照していただきたい。

 ところでUEFIでしか利用しないなら(レガシーBIOSモードでインストールする予定がないなら)、これらのTIPS記事のような手順ではなく、容量4Gbytes以上のUSBメモリを用意してFAT32形式でフォーマットし、DVD-ROMの内容をエクスプローラーなどで全部コピーするだけでよい。レガシーBIOSモードでは、USBメモリの先頭セクターにブートコードを書き込んでおく必要があったが、UEFIモードではファイルシステムから見えない場所に格納されているブートコードなどは参照されず、単にファイルとしてアクセスできればよいからだ(UEFIのブートプログラムは\efiフォルダの下にファイルとして格納されている)。ただしUEFIのシステムによってはNTFSファイルシステムを読むことができないものも少なくないので(主にノートPCなど)、FAT32でフォーマットしておくとまず間違いなくどのシステムでも利用できる。

 システムにインストールメディアやUSBメモリをセットしたら、UEFIモードでブートするようにデバイスを選択する。ブートデバイスの選択方法もシステムによるが、上記のシステムの場合は、「起動」グループの中にシステム接続されているデバイスやメディアなどの一覧が表示されているので、先頭が「UEFI 〜〜」となっているデバイスを選んで起動させる。

UEFIモードでインストールする UEFIモードでインストールする
このシステムの場合は、「起動」グループの下に起動可能なデバイスの一覧が表示されている。先頭が「UEFI: 〜〜」となっているデバイスを選んで起動させる。
  (1)これらを選ぶとUEFIモードで起動する。
  (2)これらを選ぶとレガシーBIOSモードで起動する。

 UEFIモードで起動できたら、後はレガシーBIOSモードでもUEFIモードでも、Windows 8.1のインストール方法はほとんど同じである。2Tbytes以上のディスクであっても、その全容量が正しく認識され、Windows OSのシステムディスクとして利用できる。もちろん2Tbyte以下のディスクであってもUEFIモードでインストールされる。

大容量ディスクへのインストール例 大容量ディスクへのインストール例
UEFI対応のシステムならば、2Tbytesを超えるようなディスクでも(RAIDなどで複数組み合わせたシステムでも可)Windows 8.1の起動ディスクとして利用できる。
  (1)2Tbytesを大きく超える、24Tbytesのディスクを用意してみた(実際には、これは仮想マシン上に構築した環境)。
  (2)これだけ大きなディスクでも問題なく全体を1つのボリュームとして利用できている。非UEFIシステムでは、Windows OSのブートディスクとして利用する場合は、先頭の2Tbytesまでしか利用できなかった。

 システムがUEFIモードでインストールされているかどうかは、インストール完了後に「msinfo32」コマンドを実行すれば分かる。

UEFIモードでインストールされたWindows 8.1 UEFIモードでインストールされたWindows 8.1
「ファイル名を指定して実行」で「msinfo32」コマンドを実行したところ。
  (1)インストールされたモード。「UEFI」か「レガシ」のどちらかが表示される。
  (2)後述する「セキュアブート」が有効かどうかの表示。

UEFIモードでスタートアップをさらに高速化する

 UEFIモードでインストールするだけで、すでに起動やシャットダウンはレガシーBIOSモードよりも高速になっているはずだが、さらに高速にできないかどうか確認しておこう。

 UEFIモードでは、従来のレガシーBIOSモードと違って、システム起動時の自己診断(POST:Power On Self-Test)やデバイスの検出、初期化処理などが大幅に省略されており、そのおかげで起動が高速になっているが、互換性のためにいくらか時間のかかる処理が残っている。例えばファームウェア設定画面に入るための[F2]や[Del]キーの入力待ち、ディスクのスピンアップ待ち、ファームウェア設定画面を操作するためのキーボードやマウスの初期化などだ。システムにトラブルがなく、ファームウェア設定画面に入る必要がなければ、これらの機能も無効化すればさらなる高速化が期待できる。

 実際にどのような項目が高速化のために利用できるかはシステムに依存するが、「高速ブート(Fast Boot)」などという設定項目として用意されていることが多い。例えば次のような項目があるだろう。各自のシステムに合わせて設定していただきたい。

設定項目 設定内容
ロゴ表示の無効化 起動時にシステムの構成情報やマザーボード、システムのロゴなどを表示する機能を無効にする
ファームウェア設定画面の呼び出し機能の無効化 システムによっては、起動時に[F2]や[Del]キーを押すとファームウェア設定画面に入るようになっているものがあるが、この機能を無効にする
ディスクのスピンアップ待ち時間の省略 ハードディスクは起動に時間がかかるし起動時は消費電力も大きいため、ディスク1台ごとに例えば3秒とか5秒程度待つように設定されていることがある。電力的に問題がなければ0秒に設定する。SSDならディスク待ちは不要である
キーボードやマウス以外のUSBデバイスの不検出 USBに接続されたデバイス(および拡張カードなど)は起動時のスキャンに時間がかかるため、これを抑止する。ただし全てのUSBデバイスを不検出にするとファームウェア設定画面でキーボードやマウスも使えなくなるので、必要ならキーボードやマウスだけは有効にしておいてもよい。なおシステムによっては「電源断後(強制的な電源切断後)は通常ブート」という選択肢があるので、それを選択しておくとよいだろう
レガシーBIOSの完全無効化 互換性のために(非UEFI対応OSのインストールなど)、レガシーBIOSも一部有効にしていることがあるが、他のOSをインストールするつもりがなければ、レガシーBIOSを完全に無効化し、UEFIのみを有効にする
非ブートデバイスの不検出 システムに登録されているブートデバイス以外のディスクのスキャンを止めると、無駄なスキャンを抑止できる
ネットワークブート機能の無効化 ネットワークからブートコードをダウンロードして実行するPXEブートなどの機能を無効にすることにより、ネットワークスタックの処理を省略する
起動時間短縮のために利用できるファームウェアの設定項目
システムにもよるが、これらの設定を行うことにより、起動時間をさらに短縮できる可能性がある。

起動時間の測定例

 これらの設定を行うことにより、実際にどのくらい起動時間が短縮されるかを次に示しておく。SSDシステムであることを差し引いても、かなり起動が高速化できることが分かる。

Windows 8.1起動時間の測定例 Windows 8.1起動時間の測定例
さまざまな条件でWindows 8 Enterprise x64版をインストール/セットアップした環境での起動時間の測定例。システムはASUSのQ87Tマザーボードをベースとしたシステムである。CPUはIntel Core i7-4770S、メモリ8Gbytes、ディスクは500GbytesのmSATA SSD(Samsung 840 Evo)を使用。電源ボタンを押してから、サインイン前の背景画面が表示されるまでの時間を測定した結果。
テスト1:ファームウェアの設定を標準設定値にリセットした状態。UEFIファームウェア設定画面における「高速ブート」設定は無効。
テスト2:テスト1のまま、高速ブート設定を有効にした状態。
テスト3:テスト2に加えて、レガシーBIOS互換モード(CSM機能)をオフにした状態。
テスト4:テスト3に加えて、ロゴ表示オフなど、可能な限り高速化する設定を行った状態。

ファームウェア設定画面の呼び出し

 システムを完全にUEFI専用にして起動時に何のメッセージも出さないようにすると、一番高速な起動が期待できるが、トラブル時にファームウェア設定画面に入ることができなくなる恐れがある。システムによっては、特定のキー操作で常に設定画面に入れるようになっていたりするし(例えばマイクロソフトのタブレットPC「Surface」では、ボリュームアップボタンを押しながら、電源ボタンを押すとUEFIの設定画面になる)、システム付属のユーティリティ(例:ASUSのマザーボードに付属の「DirectBIOS」ツールなど)を使えば、自動的に再起動してBIOS画面になるものもある。だがこれらの機能は全てのシステムで使えるわけではない。

 UEFIモードでインストールしたWindows 8.1では、シャットダウンメニューなどからUEFIの設定画面を呼び出す機能が用意されている。以下のいずれかの方法で呼び出せばよい。これらは、第7回「PCのリフレッシュとPCのリセット、およびカスタムイメージの作成」で解説した、トラブルシュート画面の呼び出し方法と同じである。

  • [Windows]+[C]キーで設定チャームを表示させ、[PC設定の変更]を選択する。そして「PC設定」画面で「保守と管理」グループにある「回復」を選択して、[PCの起動をカスタマイズする]をクリックする
  • 管理者権限のあるコマンドプロンプトを開き、「shutdown /r /o」コマンドを使ってシステムを再起動させる
  • 設定チャームを起動後、[電源]ボタンをクリックすると表示されるポップアップメニューで、[Shift]キーを押しながら[再起動]を選択する。これはサインイン画面に表示されている電源ボタンマークでも同様に使える。

 以上の操作を行うとシステムが再起動し、[オプションの選択]画面が表示される。そこで[トラブルシューティング]→[詳細オプション]→[UEFI ファームウェアの設定]と順にクリックしていくと、システムが再起動して、ファームウェア設定画面に切り替わる。

BIOS設定画面の呼び出し方法 ファームウェア設定画面の呼び出し方法
UEFIの設定などを変更するには、システムを再起動させてファームウェア設定画面を呼び出す必要がある。高速化のために何も表示しないようにしているシステムでも、Windows 8/8.1では標準的な操作でUEFIファームウェア設定画面を呼び出せるようになっている。まずこのオプション画面を表示させ、そこから[トラブルシューティング]→[詳細オプション]→[UEFI ファームウェアの設定]と画面を辿っていく。
  (1)これをクリックする。
  (2)USBメモリやDVD、ネットワークなどのデバイスからシステムを再起動させるにはこれを選択する。Windows 8/8.1ではこのような再起動デバイスの選択も標準化されている(UEFIモードとレガシーBIOSモードの選択もできる)。

       1|2 次のページへ

Copyright© 1999-2016 Digital Advantage Corp. All Rights Reserved.

@IT Special

- PR -

TechTargetジャパン

この記事に関連するホワイトペーパー

編集部からのお知らせ

@IT編集部では、編集記者を募集しています。ご興味のある方は奮ってご応募ください。

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。