SE の雑記

SQL Server の情報をメインに Microsoft 製品の勉強内容を日々投稿

Hyper-V Server 2008 R2 の Flash Media Boot について

leave a comment

Hyper-V Server 2008 R2 で USB 等のフラッシュメディアを使ってブートできる機能が実装されています。
ESXi で USB ブートできる機能と同じイメージでしょうか。

スマートな方法ではないなですが設定の検証ができました。
# 一度ローカルディスクを使っています。

[準備するもの]

  • 4,882 MB 以上の USB メモリ
  • VHD ブートに使用するハードディスク
  • Hyper-V Server 2008 R2 のメディア
  • 64 bit OS が動作する環境

USB メモリは 4,882 MB 以上のものが必要となります。
ブート用の VHD が 4,882 MB より小さいとインストールできません。
# 最近は 8GB のメモリが 2,000 円以下で買えると思います。

USB ブート用の VHD イメージをローカルディスク上に作成してその VHD を USB にコピーしています。
そのため最初の VHD ブートイメージを作成するためにハードディスクを使用しています。

ダイレクトに USB にインストールできればよかったのですがインストールで有効なディスクとして
使用できなかったので一度ローカルに作成しています。

Hyper-V Server 2008 R2 は 64 bit 専用 OS ですので 64 bit OS の実行環境は必須です。

[作業内容]

  1. Hyper-V Server 2008 R2 をローカルディスクに VHD ブートでインストールします。
    手順は Windows 7 の VHD ブートと同じですので省略します。
    Hyper-V Server 2008 R2 が起動したらシャットダウンします。
  2. Hyper-V Server 2008 R2 のメディアで起動します。
  3. [Shift + F10] を押してコマンドプロンプトを開きます。
    まずは USB を初期化してブート可能な USB メモリにします。
    diskpart
    select disk <USB メモリのディスク>
    clean
    create part primary
    format fs=ntfs quick
    active
    exit
    <Hyper-V Server R2 のメディアが挿入されているドライブ>
    bootbootsect.exe /nt60 <USB メモリのドライブ>

    ディスク情報は [list disk] [list vol] コマンドで確認することができます。

  4. ローカルの VHD を USB メモリにコピーします。
    copy <ローカルの VHD ファイルのフルパス> <USB メモリのドライブ>
  5. BCD の設定です。こちらもコマンドプロンプトで実行します。
    USB メモリの中にある BCD ストアを編集します。
    BCD ストアは [bootsect.exe] コマンドを実行することによって USB メモリに作成されています。
    # BCD ストアは隠しディレクトリになっていますので実体を確認したい場合は [dir * ?A:H] で確認してください。
    [locale] の設定はおまけです。

    USB のドライブに関しては [diskpart] コマンドで [list vol] コマンドを実行するか、[mountvol] コマンドで確認して下さい。

    diskpart
    select vdisk file=”<Hyper-V の VHD ブートイメージファイルのフルパス”>
    attach vdisk
    select part 1
    assign letter=z:
    exit
    bcdboot z:windows /s <USB メモリのドライブ> /v
    bcdedit /store <USB のドライブ>BootBCD /set {default} device vhd=[<USB のドライブ>]<VHD ファイルのパス>
    bcdedit /store <USB のドライブ>BootBCD /set {default} osdevice vhd=[<USB のドライブ>]<VHD ファイルのパス>
    bcdedit /store <USB のドライブ>BootBCD /set {default} locale ja-JP
    bcdedit /store <USB のドライブ>BootBCD /set {bootmgr}? locale ja-JP
  6. これで設定は終了です。一度シャットダウンしてハードディスクをはずします。
    シャットダウンは以下のコマンドで実行できます。
    wpeutil shutdown
  7. この状態で USB メモリからブートすると Hyper-V Server 2008 R2 が USB から起動します。

一応この方法で Hyper-V Server 2008 R2 を USB から起動することができました。
最初はインストール時に USB にインストールできるオプションがあるのかと思っていたのですが、
VHD ブートの応用で実現するみたいですね。
BCDEDIT コマンドを使う機会が多くなってきたので BCD ストアの操作方法も理解する必要が出てきそうです。

どこかで BCDEDIT でよく使うコマンドをまとめておくと便利そうですね~。

USB メモリが 2 本と 64 bit 環境が 2 台あれば既存の環境にはあまり影響を与えるくとなく Hyper-V Server 2008 R2の
Live Migration 環境が作れるかも。

Windows Server 2008 R2 の環境整備と併せて Hyper-V Server 2008 R2 の検証もやってみたいです。
自宅の検証環境使って確認したいことがいろいろと増えてきました。

[参考にさせていただいたサイトの URL]

http://www.markwilson.co.uk/blog/2009/07/running-windows-from-a-usb-flash-drive.htm
http://blogs.technet.com/virtualization/archive/2009/07/30/microsoft-hyper-v-server-2008-r2-rtm-more.aspx
http://blogs.technet.com/stephenrose/archive/2009/07/28/a-bootable-usb-utility-to-create-bootable-usb-drives-for-win-7-and-server-2008.aspx
http://www.microsoft.com/oem/sblicense/OPK/default.mspx

# OEM Preinstallation Kit が必須かと思っていたのですが、なくても実現できました。

Share

Written by Masayuki.Ozawa

8月 16th, 2009 at 2:42 pm

Posted in Hyper-V

Leave a Reply