昨日、デュアルブート環境でブート情報を操作する方法その1をご報告しました。今日はその時の備忘録として「VHD側のOSがブートメニューから見えなくなった時をご報告します。
復旧その2
復旧その2はVHDブート側のOSがなくなった場合です。
この場合にはVHDファイルを指定して、回復メニューのコマンドプロンプト上でドライブとして認識させる必要があります。
まずはVHDをドライブとして認識させます。119GBと表記されているのが物理的な内蔵ドライブで、31GBと表記されているのがVHDファイルです。
--------------------------------------------------------------
DISKPART> list disk
ディスク 状態 サイズ 空き ダイナ GPT
### ミック
------------ ------------- ------- ------- --- ---
ディスク 0 オンライン 119 GB 46 B
DISKPART> select vdisk file=D:\vhdboot\W2012R2.vhd
DISKPART> attach vdisk
100% 完了しました
DiskPart により、仮想ディスク ファイルがアタッチされました。
--------------------------------------------------------------
ここまででVHDファイルが一つのドライブとして認識されます。
ちょっと確認。
--------------------------------------------------------------
DISKPART> list disk
ディスク 状態 サイズ 空き ダイナ GPT
### ミック
------------ ------------- ------- ------- --- ---
ディスク 0 オンライン 119 GB 46 B
ディスク 1 オンライン 31 GB 0 B
DISKPART> list volume
Volume Ltr Label Fs Type Size Status Info
###
---------- --- -------------------- ---- ---------- ------- --------- --------
Volume 0 C システムで予約済み NTFS Partition 100 MB 正常
Volume 1 D NTFS Partition 119 GB 正常
Volume 2 E NTFS Partition 31 GB 正常
DISKPART>exit
--------------------------------------------------------------
要するに、ブート情報を書き込むために参照するドライブを現在のコンソール上から認識できる状態にしないといけない、ってことです。
最終的にここまで来たらdiskpartコマンドを終了させ、元のコマンドプロンプトに戻ります。
コマンドプロンプトでブート情報生成書込みコマンドを実行します。VHDじゃない方と同じドライブレターであるEドライブが割り当てられてしまったので分かりにくいのですが、この作業のタイミングではVHDブートOSのパーティションがEドライブになっていました。Dドライブが内蔵ドライブでCドライブがブート情報格納パーティションです。
--------------------------------------------------------------
> bcdboot E:\windows /l ja-jp /s c:
--------------------------------------------------------------
Cドライブとして認識している「システムで予約済み」とある部分にブート情報が書き込まれています。内蔵ドライブは単一なのでこのボリュームに集約されています。
VHDファイルはEドライブとして認識していますので「E:\Windows」から起動するOS情報を/sオプションで現状認識しているcドライブに情報を書き込む、という主旨のコマンドです。日本語OSであれば「/l ja-jp」を付けるようにします。付けないとブートメニューが英語になってしまいまする。
これだけ実行すると、ブートメニューが復活します。
図:復活したメニュー
簡単ですが以上です。