-
Notifications
You must be signed in to change notification settings - Fork 0
MS_VHDBoot
- 仮想マシンが使用する仮想ディスク(VHD:Virtual Hard Disk)から
ブートする機能。 - Windows Server 2008 R2 と Windows 7(Ultimate/Enterprise)から
サポートされた。
移行メモ(綴り): 元ページの「Virtual Hard Disc」は
正しくは「Virtual Hard Disk」なので修正した。
補足(用途と現在): VHD boot は
1 台の PC に複数の OS を、パーティションを切らずに共存させる
ための機能で、検証環境の作り直しが容易という利点がある
(不要になったら VHD ファイルを消すだけ)。
現在も Windows 10/11 の Enterprise / Education / Pro で利用でき、
.vhdx形式にも対応している。
ただし BitLocker、休止状態(ハイバネーション)が使えない
という制約があるため、常用の OS には向かない。
用途が検証環境であれば、現在は
Hyper-Vの仮想マシンや WSL2 で足りることが多い。
http://www.atmarkit.co.jp/ait/articles/1004/22/news101.html
Hyper-V で使用していた VHDを PC の VHD Boot へ移行する手順のメモ
VHD Boot 用の VHDファイルの下準備
-
AHCI ドライバ(
Msahci.sys)を有効にする
VHD Boot 用の VHDファイルを Hyper-V 仮想マシンに接続して
OS を起動し、以下の通りレジストリを修正する。- キー:
HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\Msahci - 値の名前:
Start - 値:
0
- キー:
-
OS をシャットダウンし、Hyper-V 仮想マシンから切断して
VHD Boot 用の VHDファイルを取り出す。
移行メモ(衍字): 元ページの「OSAHCI ドライバ」は
「AHCI ドライバ」の誤りと解して修正した。
補足(なぜこの操作が要るか): Hyper-V 上の仮想マシンは
IDE コントローラでディスクを見ているため、AHCI ドライバが
無効(Start=3:手動)のままになっている。
この VHD を実機で直接ブートすると、実機の SATA(AHCI)を
認識できず **起動直後にブルー スクリーン(INACCESSIBLE_BOOT_DEVICE)**に
なる。Start=0(ブート時に読み込む)にしておくことで、
実機側のコントローラを最初から認識できるようにしている。
逆方向(実機 → 仮想)でも同じ理屈で問題が起きる
(P2Vを参照)。
-
Boot Loader オブジェクト image を作成する
bcdedit /create /d "Windows7 Devenv - VHD Boot" /application OSLOADER「エントリ {GUID} は正常に作成されました。」の GUID をコピペしておく。
-
作成した Boot Loader オブジェクトを参照
bcdedit /enum OSLOADER
移行メモ(誤字): 元ページのコマンド例にある
「"Winodws7 Devenv - VHD Boot"」は表示名の誤字と解して
「Windows7」に修正した(動作には影響しない)。
-
ブートパーティションとシステムパーティションの指定
bcdedit /set {GUID} device VHD=[C:]\xxx\xxx.vhd bcdedit /set {GUID} osdevice VHD=[C:]\xxx\xxx.vhd -
ブートローダーのパス(ドライブを指定する必要はありません)
bcdedit /set {GUID} path \Windows\system32\winload.exe -
OS のシステムルートのパス(ドライブを指定する必要はありません)
bcdedit /set {GUID} systemroot \Windows -
ブートローダーのロケール
bcdedit /set {GUID} locale ja-JP -
HAL の再認識を有効にする
bcdedit /set {GUID} detecthal yes -
ブートメニューの編集(メニュー一覧の最後に追加)
bcdedit /displayorder {GUID} /addlast
補足(UEFI 環境では
pathが違う): 上記の
\Windows\system32\winload.exeは BIOS(レガシ)ブートの
場合の指定である。
UEFI ブートの環境では\Windows\system32\winload.efiを
指定する必要がある。
記事が書かれた 2010 年当時は BIOS ブートが一般的だったが、
現在の PC はほぼ UEFI なので、この差異に注意する。
bcdedit /create /d "*vhd boot name*" /application OSLOADER
bcdedit /enum OSLOADER
bcdedit /set {GUID} device VHD=[C:]\Windows\xxx.vhd
bcdedit /set {GUID} osdevice VHD=[C:]\Windows\xxx.vhd
bcdedit /set {GUID} path \Windows\system32\winload.exe
bcdedit /set {GUID} systemroot \Windows
bcdedit /set {GUID} locale ja-JP
bcdedit /set {GUID} detecthal yes
bcdedit /displayorder {GUID} /addlast
http://www.atmarkit.co.jp/ait/articles/1004/22/news101_2.html
移行メモ(未記述): 「手順(新規)」は元ページでも
参照 URL のみで、手順の本文は書かれていない。原文のまま残す。
-
Blogs - フィールド SE あがりの安納です - Site Home - TechNet Blogs
Hyper-V から VHD Boot への移行
http://blogs.technet.com/b/junichia/archive/2009/11/02/3290721.aspx -
Windows 7 新時代:第 11 回 Windows 7 の VHD ブートを試す - @IT
http://www.atmarkit.co.jp/ait/articles/1004/22/news101.html
- VHD boot
http://www.vwnet.jp/Windows/WS08R2/VHD-boot/VHDboot.htm - VHD Boot で Windows 7 と Windows 8 をデュアル ブートする
http://www.vwnet.jp/Windows/w8/w8VHDboot/VhdBoot_w8.htm - VHD boot で Windows 7 と Vista - XP の共存(デュアルブート)環境を作る
http://www.vwnet.jp/Windows/w7/VHDboot/DirectInstall.htm
Tags: インフラストラクチャ, Windows, 仮想化
このWikiは「Open棟梁Project」,「OSSコンソーシアム 開発基盤部会」によって運営されています。