Windows 7をUEFIモードでインストールするにはDVDメディアでシステムを起動すればよいが、USBメモリにコピーしたものではファイルが不足していて、UEFIモードで起動できない。これを解決する方法を紹介。
対象OS:64bit版Windows 7 / Windows Server 2008 R2
Windows XPからの移行先として、現在ではまだまだWindows 7を選択する場合も少なくない。もし2TB以上のディスクにインストールしたり(次の関連記事参照)、高速ブートなどの機能を利用したいなら、64bit版OSをレガシーBIOSモードではなく、UEFIモードでインストールしておきたい。
UEFIモードにを利用するには、PCにWindows OSのインストールメディア(DVDもしくはそれをコピーしたUSBメモリなど)を挿入し、UEFIモードでインストーラーを起動するだけでよく、特に難しいことはない。だがWindows 7のUEFIインストール用のUSBメモリを作るには少し注意が必要である。Windows 8やWindows Server 2012以降のOSの場合と同じようにUSBメモリを作成してもUEFIブートできないからだ。システムにもよるが、Windows 7のインストール用DVDを使ってシステムを起動するとUEFIブートできるのに、そのDVDメディアを使って作成したUSBメモリではUEFIブートできない、ということが起こる。
これは、DVDメディアには含まれているブート用コードが、USBメモリにコピーしたものでは不足していることに起因する(DVDとそれ以外では、ブートの仕組みが少し異なる)。本TIPSでは、この不足しているファイルを補う方法を紹介する。
最初に以下のいずれかの方法を用いて、ブータブルUSBメモリを作成する。どちらの方法でもよいが、NTFS形式のファイルシステムではUEFIブートできないシステムも存在するので、その場合はFAT32形式を選択するのがよいだろう。
レガシーBIOS形式は一切使わず、UEFI形式でしかブートするつもりがないなら、もっと簡単に、FAT32形式でフォーマットしたUSBメモリに、インストールDVDメディア内のファイルを全部コピーするだけでもよい。UEFIブートでは、USBメモリの先頭セクターにブートコードを書き込んでおく必要もないし、パーティションをアクティブにしておく必要もないからだ。ファイルシステムとしてアクセスできればUEFIブートできる。
次はUEFIブート用のファイル「bootmgfw.efi」を用意して、USBメモリ内に「\efi\boot\bootx64.efi」という名前に変更して保存する(このファイルが不足しているので、Windows 7のDVDメディアの内容を単にコピーしただけのUSBメモリではUEFIブートできない)。
さてこの「bootmgfw.efi」というファイルをどこから持ってくるか(コピーしてくるか)であるが、次のように幾つか方法があるので、環境などに応じて選んでいただきたい。
■方法1.稼働中の64bit版Windows 7からコピーする
既にインストール済みで実行中の64bit版Windows 7(もしくはそれ以降のOSでも可)環境があれば、そこからコピーしてくるのが一番簡単である。そのWindows OSがUEFIブートしているかレガシーBIOSブートしているかは関係ない。64bit版Windows OSであればどれでもよい。
64bit版Windows OS上で「%windir%\Boot\EFI」フォルダの内容を確認すると「bootmgfw.efi」というファイルがあるはずなので、これを「\boot\efi」フォルダに「bootx64.efi」という名前にしてコピーする。
C:\>dir %windir%\Boot\EFI ……コピー元の確認。64bit版Windows 7上で実行すること。32bit版Windows 7にはBoot\EFIフォルダは存在しない
ドライブ C のボリューム ラベルは WIN7X64 です
ボリューム シリアル番号は 2C9F-4796 です
C:\Windows\Boot\EFI のディレクトリ
2011/03/17 11:57 <DIR> .
2011/03/17 11:57 <DIR> ..
2010/11/20 05:32 672,640 bootmgfw.efi ……このファイルをコピーする
2010/11/20 05:32 669,568 bootmgr.efi ……こちらではない
2009/07/14 12:20 <DIR> cs-CZ
……(以下省略)……
C:\>mkdir e:\efi\boot ……コピー先フォルダを作成する(E:がUSBメモリとする)
C:\>copy %windir%\Boot\EFI\bootmgfw.efi e:\efi\boot\bootx64.efi ……名前を変えてコピーする
1 個のファイルをコピーしました。
C:\>dir e:\efi\boot ……確認する
ドライブ E のボリューム ラベルがありません。
ボリューム シリアル番号は 0CC8-1AAE です
e:\efi\boot のディレクトリ
2014/04/11 18:01 <DIR> .
2014/04/11 18:01 <DIR> ..
2010/11/20 05:32 672,640 bootx64.efi ……コピーしたファイル
1 個のファイル 672,640 バイト
2 個のディレクトリ 3,903,909,888 バイトの空き領域
C:\>
■方法2.64bit版Windows 8などのインストールメディアからコピーする
「\efi\boot\bootx64.efi」というファイルは、Windows 8以降のインストールDVDメディア(およびそこから作成したUSBメモリ)には存在しているので、ここからコピーしてもよい。64bit版のWindows 8/8.1やWindows Server 2012/R2のインストール用メディアを用意し(評価版でも可)、そこからコピーする。
C:\>mkdir e:\efi\boot ……コピー先フォルダを作成する(E:がUSBメモリとする)
C:\>copy d:\efi\boot\bootx64.efi e:\efi\boot ……コピーする(D:がコピー元ドライブとする)
1 個のファイルをコピーしました。
C:\>dir e:\efi\boot ……確認する
ドライブ E のボリューム ラベルがありません。
ボリューム シリアル番号は 0CC8-1AAE です
e:\efi\boot のディレクトリ
2014/04/11 18:18 <DIR> .
2014/04/11 18:18 <DIR> ..
2013/08/23 04:51 1,615,712 bootx64.efi ……コピーしたファイル
1 個のファイル 1,615,712 バイト
2 個のディレクトリ 3,903,909,888 バイトの空き領域
C:\>
■方法3.一時的にインストーラを起動してコピーする
いったんインストーラを起動して、インストール中のイメージからbootx64.efiファイルをコピーするという方法もある。まずWindows 7のインストールDVDメディアか手順1で作成したUSBメモリを使ってシステムを起動する(UEFIモードでもレガシーBIOSモードでもよい)。インストーラの画面が表示されたら[Shift]+[F10]キーを押して、コマンドプロンプト画面を開く。そしてX:ドライブ(Windows OSのインストールイメージが展開されている一時的なドライブ)の「X:\Windows\boot\efi\bootmgfw.efi」というファイルをUSBメモリに「\efi\boot\bootx64.efi」としてコピーする。
X:\Sources> ……インストールの途中で[Shift]+[F10]キーを押してコマンドプロンプト画面を開くと、X:\Sourcesフォルダが開かれる。これはインストール用のファイルイメージを展開している一時的なフォルダ
X:\Sources>diskpart ……USBメモリのドライブ名を確認しておく
Microsoft DiskPart バージョン 6.1.7601
Copyright (C) 1999-2008 Microsoft Corporation.
コンピューター: MINWINPC
DISKPART> list vol ……ボリューム一覧の表示
Volume ### Ltr Label Fs Type Size Status Info
---------- --- ----- ---- --------- ------ -------- ----
Volume 0 C FAT32 リムーバブル 7363 MB 正常 ……この例では、USBメモリはC:ドライブになっている
DISKPART> exit ……diskpartコマンドを終了する
DiskPart を終了しています...
X:\Sources>cd \Windows\Boot\EFI ……コピー元フォルダへ移動する
X:\Windows\Boot\EFI>dir *.efi ……コピー元の確認
ドライブ X のボリューム ラベルは Boot です
ボリューム シリアル番号は D60A-0DC2 です
X:\Windows\Boot\EFI のディレクトリ
2010/11/20 22:32 672,640 bootmgfw.efi ……このファイルをコピーする
2010/11/20 22:32 669,568 bootmgr.efi
2010/11/20 22:33 611,200 memtest.efi
3 個のファイル 1,953,408 バイト
0 個のディレクトリ 29,958,144 バイトの空き領域
X:\Windows\Boot\EFI>mkdir c:\efi\boot ……コピー先フォルダを作成する
X:\Windows\Boot\EFI>copy bootmgfw.efi c:\efi\boot\bootx64.efi ……UEFI用ブートファイルをコピーする
1 個のファイルをコピーしました。
X:\Windows\Boot\EFI> ……コピー終了後は、インストーラの実行をキャンセルして終了すること
「\efi\boot\bootx64.efi」ファイルのコピーさえできれば準備は完了である。システムにUSBメモリを挿入して起動メニューを表示させ、UEFIモードを選択して起動しよう。このあたりの操作はシステムに大きく依存するが、一般的にはブートデバイスとして「UEFI: 〜〜」のようなデバイス名が表示されるので、それを選んで起動させる。
Windows OSのインストーラがUEFIモードとレガシーBIOSモードのどちらで起動しているかは、インストール中に作成されるログファイルを調べれば確認できる。Windows 7のインストーラが起動すると、最初に言語やキーボードなどを選ぶ画面が表示されるので、適切なものを選んで次の画面へ進み、[今すぐインストール]をクリックする。
インストールの最初の画面(ほとんどの場合はライセンス条項の画面)が表示されたら、[Shift]+[F10]キーを押して、コマンドプロンプト画面を表示させる。そして「\Windows\panther」フォルダへ移動し、「setupact.log」ファイルから「Detected」という単語を検索して表示させる。「Detected boot environment:」が現在実行中のファームウェアのタイプを表しており、UEFI環境なら「EFI」、レガシーBIOS環境なら「BIOS」と表示される。もしUEFIになっていなかったら、手順2のファイルコピーを失敗している可能性があるので、もう一度チェックする。
■この記事と関連性の高い別の記事
Copyright© Digital Advantage Corp. All Rights Reserved.