きよくらの備忘録

「三日坊主と呼ばせない!日記」改め。主にソフトウェア開発関連の話題。

VHDブートの要件

本日、職場でVHDブートについて、勉強会……というか、調べた情報を職場でシェアするためのデモとか紹介とかを実施しました。

ちょっと気合い入れて資料とかも作ったので、それにもうちょっと手を加えてまたどこかで喋れたらいいな……とか思っていますが*1それはともかく、今日喋ってみた感じ、一番基本的な…要件的な部分がちょっと伝えにくかったと思いました*2


世間的にはざっくりと、『VHDブートはWindows 7以降で使える新機能』みたいな触れ込みで紹介されていると思うのですが、ここがちょっとアバウトで、誤解をまねているのかもしれません。


そこで、ちょっと整理してみました。

VHDブートで起動"される"ことが出来るOSは7と2008 R2

VHDブートで起動"される"ことが出来るのは、以下のOSです*3

  • Windows 7 (Ultimate および Enterprise)
  • Windows Server 2008 R2 (全エディション)

つまり、上記のいずれかがインストールされたVHDファイルのみが、VHDからネイティブでブートで起動出来ることになります。
蛇足になりますが、言い換えれば『XPやVistaがインストールされたVHDファイルをネイティブブートすることは出来ない』ということです。

VHDからネイティブでブート"させる"のは、ブートマネージャの機能

結論から書くと、VHDからネイティブでブート"させる"のは、ブートマネージャの機能です。(誤解を招く表現かもしれませんが)Windows 7の機能ではありません*4

ですので、PCにあらかじめ7がインストールされている必要はありません。"あらかじめ"というか、実パーティションに7がインストールされている必要は金輪際、ありません*5
そしてまた、XPやVistaがインストールされているPCでも問題ありません。ブートマネージャがその能力を持ったバージョンの物であればそれで良いのです。VistaやXPのマシンであっても、VHDブートで7をインストールする課程で自動的にブートマネージャの更新が行われ*6、結果として該当の能力を持ったブートマネージャに置き換わります。


前項は「ブートされる」という観点で書きましたが、逆に「ブートさせる」側の観点で考えるとVHDからネイティブでブートするということは、OSが起動するより以前に以下の作業が必要になる』という風に考えられます。

  • マウントされたVHDファイルを実HDDと同じように認識する*7
  • VHDの中のOS(のカーネル等)を呼び出して起動させる

当然、何らかのOSが起動する前に必要な作業になりますので、パソコンに既存でインストールされているOSとは関係無い世界の話という事になります。


ですので、この観点で見れば『偉いのはあくまでブートマネージャ』であって『OSとしてのWindows 7は何も偉くない』と見て良いと思います*8


もう一度まとめると、

  • VHDブートを実行するのはWindows 7に付属しているバージョンのブートマネージャ
  • PCの実パーティションにWindows 7がインストールされていなくても良い
  • VistaやXPのみがインストールされている場合は、新しいブートマネージャがインストールされる

ということでいいのかな〜と思います。

*1:OITECもですが、ヒーロー島さんとかw

*2:質問や念押しの確認が多かった

*3:32bitおよび64bit共に可能。もちろん、64bit版はマシンのアーキテクチャが64bit対応である必要があります

*4:まあ、「ブートマネージャも含めてWindows 7」でもあるとは思うのですが、ここは敢えて。

*5:もっと言えば、VHDネイティブブートに対応したブートマネージャさえインストールされ正しくロードされる状態であれば、OSすらインストールされている必要は無いと思います。

*6:この動きは、(VHDではなく)今まで通りのデュアルブートで7をインストールしようとした場合と同じ動きにになります。

*7:マウントすること自体がブートマネージャの機能かどうかという点については、解りません。DISKPART等の機能なのでしょうか?それともやっぱりブートマネージャ?

*8:偉いかどうかは別として