システムイメージバックアップを復元せずに起動する (2)
2016年04月03日
システムイメージバックアップを起動
こんにちは、ハニービーンです。
先日こちらの記事(システムイメージバックアップを復元せずに起動する (1))で、Windows7のシステムイメージバックアップを実機に復元しないで起動する方法を紹介しました。
今回はWindows8.1のシステムイメージバックアップを使って、同様にマシンに復元することなく起動してみたいと思います。
使用するのはWindows8.1機のLenovo G500のシステムイメージバックアップですが、こちらの記事(Windows7 を Windows10/8.1 と共存させるときの注意点とは)で取り上げた、復元不能状態になってしまったものを使います。
システムイメージバックアップ元のLenovo G500は、UEFI機でGPTディスク、Windows8.1は64bitです。このマシンは現在Windows10にアップグレードしてあり、作業はWindows10上で行います。
作業の概要
Windows8.1のシステムイメージバックアップをVirtualBoxで起動する方法は、こちらの記事(Windows10TP アップグレードインストールをVHDブートで安全に試す (1))でも紹介したので、今回は違う方法で行ってみたいと思います。
今回の作業の流れは以下のとおりです。
(1) Cドライブが保存されたVHDXファイルの中身をVHDにコピー
(2) VHDファイルの中身をVHDブートできるように処理
(3) 仮想マシンをVHDブートで起動
最後の(3)は、Windows7ではEnterpriseかUltimateでないとできませんでしたが、Windows8以降はバージョンに関わらず可能になりました。
システムイメージバックアップ内の仮想ディスク
システムイメージバックアップの中には、HDDをパーティションごとに仮想ディスクとして保存したファイルが含まれています。
Windows7ではVHDファイルでしたが、Windows8.1ではVHDXファイルになっています。
システムイメージバックアップに保存したマシン状態を、起動する必要がなく、単にファイルを取り出したいだけであれば、VHDXを右クリックして「マウント」すれば、仮想HDDとして認識されるので、ファイルを参照することが可能です。
今回は、単にファイルにアクセスするだけでなく、保存されているマシンを起動することを目的とします。
VHDXファイルのうち、Cドライブが丸ごと保存されているものがあるので、そのコピーを仮想HDDとしてマウントすれば、VHDブートにより中のWindows8.1を起動できます。
仮想HDDのサイズについて
仮想HDDをブートする場合、仮想HDDの上限サイズ分の空き容量が物理ドライブにないと起動することができませんので、注意が必要です。
ブートする仮想HDDはCドライブのバックアップなので、上限サイズというのはCドライブの大きさです。なので、当然物理HDDの容量が足りなくなります。
そこで適当な上限サイズの仮想HDDを作成しておき、元のVHDXの中身をコピーして使うことになります。
Cドライブが保存されたVHDXファイルの中身をVHDにコピー
システムイメージバックアップ内の、C:ドライブのイメージファイルの中身を、適当な大きさのVHDファイルにコピーします。
今回は「C:\test」に「Win81.vhd」という名前で作りました。
詳しい手順は以前の記事の内容と重複しますので、詳細はこちら(Windows10TP アップグレードインストールをVHDブートで安全に試す (1))を参考にして下さい。
VHDファイルの中身をVHDブートできるように処理
さて、出来上がったWin81.vhdには、以前の状態のCドライブが入っているわけですから、そのままVHDブートできてもよさそうです。
しかし実際にはこのままVHDブートさせると、起動ドライブがC:ドライブにならないで、ドライブレターがずれる、というトラブルが起きて失敗します。
そのため、(Windows10TP アップグレードインストールをVHDブートで安全に試す (1))の時は、できあがったVHDをVirtualBoxを使って一度起動させてからVHDブートする方法を行いました。
今回はVirtualBoxで一度起動させる手順を省いて、ドライブレターずれを解消するための処理を、直接VHDに実施します。
VHDブート時のドライブレターずれを修正する方法
※この方法はレジストリ編集をともないますので、作業にはご注意ください。実施する場合は自己責任でお願いします。※
作ったWin81.vhdをマウントしておきます。今回はFドライブにマウントされたとします。
FドライブにはWindows8.1が入っていますが、物理ディスクにインストールされていたときのバックアップなので、このまま起動すると自分がいた物理ディスクのパーティションをCドライブに割り当ててしまいます。結果として、現在Windows10が入っているパーティションがCドライブになります。
そうではなく、現在FドライブであるVHDの方を、起動後のCドライブに割り当てたいので、そのためにFドライブ内にあるWindows8.1のレジストリを書き換えます。
「ファイル名を指定して実行」から「regedit」を起動します。
そのままでは、起動しているCドライブのWindows10のレジストリしか表示されません。起動していないFドライブ内のレジストリは、ロードする必要があります。
「HKEY_LOCAL_MACHINE」を選択した状態で、「ファイル」「ハイブの読み込み」を選択します。
「F:\Windows\System32\config」内にある、SYSTEMを選びます。
一時的な名前を付けます。ここでは「TEST」にします。
すると、「TEST」という名前の階層ができます。これは一時的に読み込まれたFドライブ内のレジストリです。
「TEST」の下の「MountedDevices」を選択すると、右側の下の方に、ドライブ割り当ての一覧が表示されます。
ここで、CドライブとFドライブを入れ替えます。データの方を変えるのではなく、名前の方を変えます。
まず、Cドライブの名前を、空いているZドライブに変えておきます。
次に、FドライブをCドライブに名前を変更します。
最後に、ZドライブをFドライブに変更します。
これで、CドライブとFドライブの割り当てが入れ替わりました。
編集が終わったら、「TEST」を選択状態にして、
「ファイル」「ハイブのアンロード」を実行します。
仮想マシンをVHDブートで起動
最後にVHDブート用のブートエントリーを作成します。
管理者用コマンドプロンプトから以下のコマンドを入力します。
bcdboot f:\windows /l ja-jp
これで準備作業はすべて完了です。FドライブのVHDをアンマウントして、PCを再起動します。
再起動すると、ブートメニューが表示されますので、Windows8.1の方を選択します。
しばらく待つと、・・無事起動しました。
昔の壁紙が表示されました。アイコンも今より大きいですね。
エクスプローラーで見てみると、Windows10が入っているパーティションがFドライブになっています。
これで、復元不能になっていたWindows8.1のシステムイメージバックアップの中身を起動できました。
VHDですので、不要になったら、「ファイル名を指定して実行」から「msconfig」を起動し、
Windows8.1のブートエントリーを削除し、Win81.vhdを削除すれば元通りです。
シェアしていただけると大変うれしいです。
更新情報はこちらからどうぞ