2013年8月15日木曜日

bcdedit.exeを使ったVHDブートの設定方法


○エントリ
>bcdedit.exe /create /d "new_boot" /application OSLOADER

 これを実行すると以下のようなメッセージが出る
 「エントリ {xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx} は正常に作成されました」

 この長いエントリ文字列が重要。常にこの値を指定してオプションを設定していく

 「/d」オプションは「description」表示名に設定される

 この時点で bcdedit.exeを引数無しで実行してリストを表示しても、このエントリは表示されない。


○表示と追加

>bcdedit.exe /displayorder {xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx}
 これで表示される様になる。
 ただし、この場合現在の{current}を置き換えるので今の状態が起動できなくなる。

 実行してしまった場合は、再起動せずに、「bcdedit.exe /displayorder {current}」で戻る
 なお、「{current}」の実際の値が知りたい場合は「bcdedit.exe /v」で実行する。


 よって、マルチブートの場合は、並列して書く。
>bcdedit.exe /displayorder {current} {xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx}
 この場合デフォルトは「{current}」になる。

 「/displayorder」はさらにオプションがあり「/addfirst」「/addlast」「/remove」が使える。



>bcdedit.exe /default {xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx}
 デフォルトを変えるオプション

>bcdedit.exe /timeout 10
 10秒待つようになる。
 todo:しかし画面表示されない場合があった。


○パーティション

>bcdedit.exe /set {xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx} device   VHD=[C:]\vhdfile\c_drive.vhd
>bcdedit.exe /set {xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx} osdevice VHD=[C:]\vhdfile\c_drive.vhd
 Cドライブのvhdファイルを指定する。
 「[C:]」の設定部分の解釈はtodo

 なおVHDで無い場合は以下の様に書く様だ。
>bcdedit.exe /set {xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx} device   partition=C:
>bcdedit.exe /set {xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx} osdevice  partition=C:


○オプション
 その他の細かいオプションも設定する。
 bcdedit.exeで実行して現在のブートローダーのオプションと同様に設定する。

>bcdedit.exe /set {xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx} path \Windows\system32\winload.exe
>bcdedit.exe /set {xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx} description new_boot
 ※/createの際の/dと同じようにここでも設定できる

>bcdedit.exe /set {xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx} locale ja-JP
>bcdedit.exe /set {xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx} systemroot \Windows
>bcdedit.exe /set {xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx} detecthal on
 ※ハードウェア構成の検出のために必要。「on」の代わりに「yes」でもいいらしいtodo



マイクロソフトは、VHDブートをどのくらい本気で力を入れているのかと
マイクロソフトの対応の早さがどうだろうと気になるこのごろです。