あのOSはWindows 7でVHDブートできるのか?

海上忍
2009-07-06 16:31:02
  • このエントリーをはてなブックマークに追加

 今回はDISKPARTコマンドの用法を取りあげるはずが、諸般の事情により急きょ変更、数回後に予定していた「VHDイメージを使用して”あのOS”を起動できるか」を繰り上げて掲載する。

 VHDは技術仕様が公開されているため、他のイメージ形式ファイルとの変換ツールが存在する。VMwareの形式(*.vmdk)からVHDに変換する「VMDK(VMWare) to VHD Converter」や、VirtualBox(*.vdi)やParallels(*.hdd)など各種形式に対応した「NHC」がその例に挙げられるだろう。

 これらのツールを使えば、”あのOS”をWindows 7のブートマネージャから起動できるかも……と思いつくのは無理もないこと。

 実際に、VirtualBox用イメージとして配布されている「Tiny Core Linux 2.1」をNHCでVHDへと変換し、ブートマネージャ経由で起動できるかどうかのテストを行った。コマンドプロンプトを管理者特権で起動し、実行したコマンドは以下のとおり。

>bcdedit /copy {current} /d "Linux"
エントリは {ffe42a0a-3e06-11de-9761-d6bcdc4e4dbc} に正常にコピーされました。
>bcdedit /set {ffe42a0a-3e06-11de-9761-d6bcdc4e4dbc} device vhd=[c:]\temp\tinycore.vhd
この操作を正しく終了しました。
>bcdedit /set {ffe42a0a-3e06-11de-9761-d6bcdc4e4dbc} osdevice vhd=[c:]\temp\tinycore.vhd
この操作を正しく終了しました。
>bcdedit /set {ffe42a0a-3e06-11de-9761-d6bcdc4e4dbc} detecthal on
この操作を正しく終了しました。

 結果は……アウト。ブートマネージャはLinuxを起動できず、代わりにデフォルトのOS(Windows 7)を使用してブートプロセスが進行する。bcdeditコマンドで確認するかぎりVHDの情報は登録できているし、ブートマネージャにエントリ名も表示されるので、bcdeditコマンドを利用した作業には問題ないが、起動には失敗する。

 それもそのはず、Windows 7では「VHDからの起動をサポートするOSでなければVHDイメージからブートできない」。NTLDR経由でLILOやGRUBをロードしLinuxを起動、という方法はよく知られている(筆者も経験あり)が、それはHDDに直接書き込まれたデータにアクセスするもので、ソフトウェアに依存するVHDとは異なる。

 念のため確認も行った。マイクロソフト日本法人のエバンジェリスト、田辺茂也氏から頂戴した、VHDブートに対応するOSについての質問への回答は以下のとおりだ。

 VHDブートは、Windows 7およびWindows Server 2008 R2の新機能です。ハードウェアで対応しているものではなく、ソフトウェアで対応していますから、あくまでOSがVHDの取り扱いを知っていて、自身がVHDから起動していることを理解している必要があります。これらに該当するOSは、現状Windows 7とWindows Server 2008 R2のみです。現状、Windows Vista/XPや2003もVHDから起動できません。
※参考:Frequently Asked Questions: Virtual Hard Disks in Windows 7
Windows 7/Server 2008 R2以外のOSもエントリは作成できるが、VHDブートに対応したOSでないかぎり起動はできない(画像をクリックすると拡大します) Windows 7/Server 2008 R2以外のOSもエントリは作成できるが、VHDブートに対応したOSでないかぎり起動はできない(画像をクリックすると拡大します)
このサイトでは、利用状況の把握や広告配信などのために、Cookieなどを使用してアクセスデータを取得・利用しています。 これ以降ページを遷移した場合、Cookieなどの設定や使用に同意したことになります。
Cookieなどの設定や使用の詳細、オプトアウトについては詳細をご覧ください。
[ 閉じる ]