2011/07/06

Windows Thin PC (WinTPC) を VHD ブートしてみる

Windows 7 および Windows Server 2008 R2 以降、物理 PC で OS の評価環境を準備するために VHD ブート (VHD ファイルからのネイティブ ブート) を活用している IT プロフェッショナルの方は多いと思います。先日、SA ユーザーおよび MSDN/TechNet サブスクリプション向けに公開された Windows Thin PC (WinTPC) もまた、VHD ブートできます。ただし、いつものやり方だと失敗するでしょう。



VHD ブートの方法には、Hyper-V や Windows Virtual PC の仮想マシンで Sysprep 済みの VHD イメージを作成して、BCDEdit でブート エントリを登録する方法と、OS のインストール時に VHD を作成、アタッチして、インストール先として指定する方法があります。いずれの方法でも、WinTPC の場合は、最初の起動時にストップしてしまいます (上の画面の状態で)。Safe Mode で起動してみると、%Windir%\System32\Drivers\disk.sys のロードでストップしているのがわかります。

この問題の原因は、WinTPC の File-based Write Filter (FBWF) にあるようです。Windows Embeddes Standard 7 でも同様の既知の問題のようです。VHD ブートを成功させるためには、WinTPC の OS イメージの以下のレジストリを変更してください。このレジストリの変更により、File-based Write Filter (FBWF) のドライバーが無効になり、問題が解消されるでしょう。

レジストリ キー: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Fbwf
(オフラインでハイブを読み込んだ場合は、CurrentControlSet ではなく ControlSet001)
値エントリ: Start
データ: 0 (既定) → 3 (無効)


仮想マシンで VHD イメージを作成する場合は、Sysprep を実行する前にレジストリを変更しておけば OK です。

VHD に直接インストールした場合は、Windows 7 の「ディスクの管理」スナップインや DISKPART コマンドで VHD をローカルにマウントし、マウント先ドライブ:\Windows\System32\Config\SYSTEM ハイブをレジストリ エディターに読み込んで ControlSet001\Services\Fbwf を変更し、ハイブをアンロード、VHD を切断します。

なお、この方法で WinTPC を VHD ブートするように構成した場合、当然のことながら FBWF は利用できません。Fbwfmgr を実行すると、「Unable to communicate with the file-based write filter.」と表示さます。Enhanced Write Filter (EWF) の方は、HORM 以外はたぶん使えると思います (念のため、物理ボリュームに対しては EWF を有効化しない方がいいかも → Ewfmgr -all -enable ではなくて Ewfmgr C: -enable とか)。

HORM (Hibernate Once/Resume Many) 機能は、休止状態のサポートが必要なようです。残念ながら、VHD ブートは休止状態をサポートしません。

VHD ブートの方法や制約については、COMPUTERWORLD のブログや書籍「Windows Server 仮想化テクノロジ入門」、書籍「Windows Server 2008 R2 テクノロジ入門」をご覧ください。


COMPUTERWORLD > Blogs > VHD ブート再考(その1)
COMPUTERWORLD > Blogs > VHD ブート再考(その2)
COMPUTERWORLD > Blogs > VHD ブート再考(その3)
COMPUTERWORLD > Blogs > VHD ブート再考(その4)


EWF の有効化については、以下をご覧ください。

COMPUTERWORLD > Blogs > Windows Thin PC正式版を試してみた (2011/07/05)

0 件のコメント: