仮想ハードディスク(VHD)にインストールしたWindows 7の複数のバックアップを起動時に選択する(bcdeditコマンド) 2010/12/18VHDからのネイティブブートのおさらい仮想ハードディスク(VHD)にインストールしたWindows 7からネイティブブート(diskpartコマンド) では、次の作業を行った。
C: copy Win7-32-Backup.vhd Win7-32.vhd attrib -r Win7-32.vhdこれだけでは、手軽さに欠ける。 ハードディスクを仮想化したメリットを活かすには、手軽さも重要だ。 起動するVHDファイルをブート時に選択できるようにした方使いやすいし、融通もきくので、以下にその方法を説明する。 ブート時に起動元のVHDファイルを選択できるようにする方法基本的には、起動したいVHDから起動するブートローダーをbcdeditコマンドで追加すればよい。 が、その前に、バックアップVHDから直接起動すると、バックアップVHDを書き換えてしまうので (そもそもWin7-32-Backup.vhdには読み取り専用属性を設定しているので、起動できないが...)、 バックアップVHDを親とする差分仮想ディスクを作成する。 まず、普通にハードディスクから起動し、コマンドプロンプトを右クリックして「管理者として実行(A)...」を選択する。 起動したコマンドプロンプトで、以下のように入力する。 Copyright (c) 2009 Microsoft Corporation. All rights reserved. C:¥Windows¥system32>dir d: ドライブ D のボリューム ラベルは VHD Container です ボリューム シリアル番号は 947B-1ABE です D:¥ のディレクトリ 2010/12/12 19:17 5,525,289,472 Win7-32-Backup.vhd 2010/12/12 20:41 20,976,682,496 Win7-32.vhd 2 個のファイル 26,501,971,968 バイト 0 個のディレクトリ 46,887,989,248 バイトの空き領域 C:¥Windows¥system32>diskpart Microsoft DiskPart バージョン 6.1.7600 Copyright (C) 1999-2008 Microsoft Corporation. コンピューター: PC DISKPART> create vdisk file="D:¥Win7-32-Backup-Child.vhd" parent="D:¥Win7-32-Backup.vhd" 100% 完了しました DiskPart により、仮想ディスク ファイルが正常に作成されました。 DISKPART> exit DiskPart を終了しています... C:¥Windows¥system32>dir d: ドライブ D のボリューム ラベルは VHD Container です ボリューム シリアル番号は 947B-1ABE です D:¥ のディレクトリ 2010/12/12 20:45 108,544 Win7-32-Backup-Child.vhd 2010/12/12 19:17 5,525,289,472 Win7-32-Backup.vhd 2010/12/12 20:46 20,976,682,496 Win7-32.vhd 3 個のファイル 26,502,080,512 バイト 0 個のディレクトリ 46,887,878,656 バイトの空き領域 D:¥Win7-32-Backup-Child.vhdは、D:¥Win7-32-Backup.vhdを親とする差分ディスクだ。この差分ディスクに対する変更は、親のVHDへは影響しない。 また、親のVHDを削除すると子である差分ディスクは使えなくなってしまう。 次に、この差分ディスクから起動するブートローダを作成する。作成手順は次の通りだ。
C:¥Windows¥system32>bcdedit Windows ブート マネージャー -------------------------------- identifier {bootmgr} device partition=D: description Windows Boot Manager locale ja-JP inherit {globalsettings} default {current} resumeobject {95c51c8e-05c7-11e0-b302-b91e9e9c676c} displayorder {current} toolsdisplayorder {memdiag} timeout 30 Windows ブート ローダー -------------------------------- identifier {current} device partition=C: path ¥Windows¥system32¥winload.exe description Windows 7 locale ja-JP inherit {bootloadersettings} recoverysequence {95c51c90-05c7-11e0-b302-b91e9e9c676c} recoveryenabled Yes osdevice partition=C: systemroot ¥Windows resumeobject {95c51c8e-05c7-11e0-b302-b91e9e9c676c} nx OptIn C:¥Windows¥system32>bcdedit /copy {current} /d "Win7-32 Backup" エントリは {95c51c92-05c7-11e0-b302-b91e9e9c676c} に正常にコピーされました。 C:¥Windows¥system32>bcdedit /set {95c51c92-05c7-11e0-b302-b91e9e9c676c} device vhd=[D:]¥Win7-32-Backup-Child.vhd この操作を正しく終了しました。 C:¥Windows¥system32>bcdedit /set {95c51c92-05c7-11e0-b302-b91e9e9c676c} osdevice vhd=[D:]¥Win7-32-Backup-Child.vhd この操作を正しく終了しました。 C:¥Windows¥system32>bcdedit /set {bootmgr} timeout 5 この操作を正しく終了しました。 C:¥Windows¥system32>bcdedit Windows ブート マネージャー -------------------------------- identifier {bootmgr} device partition=D: description Windows Boot Manager locale ja-JP inherit {globalsettings} default {current} resumeobject {95c51c8e-05c7-11e0-b302-b91e9e9c676c} displayorder {current} {95c51c92-05c7-11e0-b302-b91e9e9c676c} toolsdisplayorder {memdiag} timeout 5 Windows ブート ローダー -------------------------------- identifier {current} device partition=C: path ¥Windows¥system32¥winload.exe description Windows 7 locale ja-JP inherit {bootloadersettings} recoverysequence {95c51c90-05c7-11e0-b302-b91e9e9c676c} recoveryenabled Yes osdevice partition=C: systemroot ¥Windows resumeobject {95c51c8e-05c7-11e0-b302-b91e9e9c676c} nx OptIn Windows ブート ローダー -------------------------------- identifier {95c51c92-05c7-11e0-b302-b91e9e9c676c} device vhd=[D:]¥Win7-32-Backup-Child.vhd path ¥Windows¥system32¥winload.exe description Win7-32 Backup locale ja-JP inherit {bootloadersettings} recoverysequence {95c51c90-05c7-11e0-b302-b91e9e9c676c} recoveryenabled Yes osdevice vhd=[D:]¥Win7-32-Backup-Child.vhd systemroot ¥Windows resumeobject {95c51c8e-05c7-11e0-b302-b91e9e9c676c} nx OptIn C:¥Windows¥system32> これで、バックアップを親とした差分ディスクからブートする設定が完了した。再起動して、次のような画面が表示されたら成功だ。 同様の手順で、diskpartを使用して差分VHDを作成し、ブートエントリーを追加すれば、 仮想ハードディスク(VHD)にインストールしたWindows 7からネイティブブート(diskpartコマンド)の冒頭で述べたような様々な用途に合わせて、 Windows 7の一つのインストレーションインスタンスを使い分けることができる。 |