読者です 読者をやめる 読者になる 読者になる

treedown’s Report

システム管理者に巻き起こる様々な事象を読者の貴方へ報告するブログです。会社でも家庭でも"システム"に携わるすべての方の共感を目指しています。

(2/2)ブート情報を操作する技術メモ

トラブルシューティング

昨日、デュアルブート環境でブート情報を操作する方法その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」を付けるようにします。付けないとブートメニューが英語になってしまいまする。

これだけ実行すると、ブートメニューが復活します。

図:復活したメニュー

f:id:treedown:20161118140728p:plain

簡単ですが以上です。