Windows8.1 回復ドライブを使ったHDD交換 (2)
2015年03月16日
回復ドライブを使ったHDD交換 -続きは大失敗-
こんにちは、ハニービーンです。
前回の記事Windows8.1 回復ドライブを使ったHDD交換 (1)で、回復ドライブを使って新しいHDDに工場出荷状態を再現できました。
HDD交換して、また初期状態から使うことはまれでしょうから、今度はここに、システムイメージバックアップを適用して、元のHDDの状態を復元してみたいと思います。
結論から言いますと、これは失敗談です。新しいHDDに、回復ドライブによる初期化+システムイメージバックアップ適用で引っ越すことは、事実上できませんでした。
回復ドライブで初期化したHDDの状態
以前の記事Windows8.1 システムイメージバックアップから復元されないもので、HDDに直接システムイメージバックアップを適用しました。
その時に実施してみて、わかったことは以下の通りです。
(1)まっさらなHDDに、直接イメージ適用できて、手順が簡単で良い。そして、(3)と(4)について、イメージ適用後に別途作業で対応しましたが、この手順がちょっと面倒でした。
(2)元のHDDより容量の小さいHDDにはイメージ適用できない。
(3)元のHDDより容量の大きいHDDでは、未割り当て領域ができる。
(4)OEMパーティションと回復パーティションが中身が空になる。
これに対し、HDDを回復ドライブで初期化した場合、以下のようになりました。
(1)まっさらなHDDはダメで、システムパーティションを手動で作成。各メーカーが回復パーティションを、どう作り込むかによるので、メーカー/機種によっては異なると思いますが、我が家のG500ではこうなりました。
(2)工場出荷状態を再現出来たが、原状回復にはさらに作業が必要。
(3)元のHDDより容量の大きいHDDでも、未割り当て領域ができない。
(4)OEMパーティションと回復パーティションも再現される。
(1) が難点ですが、(3)と(4)が解決しているので、(2) を、システムイメージバックアップの適用でいければ、言うことなしです。
と、思ったのですが・・
工場出荷状態に対するイメージ適用
工場出荷状態を再現できたので、ここにシステムイメージバックアップを適用してみます。
[Windowsキー] + I > PC設定の変更>保守と管理>回復>PCの起動をカスタマイズする、を選択し、
画面を進めて行き、イメージ適用しようとすると、出来ないと言われます。
結局回復ドライブ(またはインストールDVD)から起動しての適用となります。
手順を進めて、さて、この画面が問題です。
「ディスクをフォーマットしてパーティションに再分割する」がグレーアウトし、チェックが外せなくなっています。
このチェックが付いた状態で作業を進めると、再フォーマットになるので、HDDに直接イメージ適用した時と同じ結果になってしまいます。
回復ドライブによるPCの初期化を行ったことが、全く無意味になってしまいます。
チェックが外せる条件
「ディスクをフォーマットしてパーティションに再分割する」のチェックがグレーアウトしないのは、どういうときでしょうか。
それは、イメージの作成元HDDと、適用先のHDDが同一の場合(同一と判定される場合)です。
イメージの適用を行うと、適用先のディスクIDは、イメージ作成元のディスクIDと同一になります。
このことは、元のHDDと、イメージ適用した別のHDDを同時に接続した状態で、ディスクの管理を開くと確認できます。
同一のディスクIDなのでオンラインにできない、というエラーが表示されます。
適用先のディスク情報が、元のディスクと同じなら再フォーマットなし、そうでない場合は再フォーマットが行われてディスク情報が上書きされます。
元のHDDと同一のディスク情報にする方法
では、回復ドライブで初期化後に、元のHDDと同一のディスク情報になるようにするには、どうしたらよいでしょう。
(1) 初期化後に、HDDのディスク情報を書き換える。
(2) HDDにまずディスク情報を書き込み、その情報を保って初期化を行う。
それぞれの方法を試してみます。
初期化後に、HDDのディスク情報を書き換える
ディスク情報の書き換えは、Windowsの標準機能ではできませんが、Linux ベースの sgdisk コマンド等を使えばできないことはありません。実施する方法としては、GParted Live CD をダウンロードすれば、sgdisk も含まれています。
あらかじめ、GParted Live CD を作成しておき、元のHDDと、回復ドライブで初期化した新しいHDDの両方を接続し、CDから起動します。
すべてデフォルトで進めてよいので、Enter を押して進めます。
GUI の GParted が起動しますが、終了します。
Terminal を起動して、以下のコマンドを入力します。ここでは、元のHDDが/dev/sda、新しいHDDが/dev/sdb とします。
sudo sgdisk -R=/dev/sdb /dev/sda
※ sda と sdb を逆にすると、元のHDDが起動しなくなるのでくれぐれもご注意下さい。
これで、元のHDDから新しいHDDにディスク情報(GPT:パーティションテーブル)がコピーされます。
サイズの異なるパーティションがあるのに、コピーして大丈夫でしょうか?
[参考]
元のHDD
新しいHDD
GParted Live CD を再起動して、/dev/sdb を見てみます。
ドライブ末尾が未割り当て領域になっています。
やはり、パーティションテーブルをコピーした時に、元のHDDのパーティションサイズに上書きされてしまいました。
ここへシステムイメージバックアップを適用すれば、再フォーマットなしでの適用は出来ます。
が、未割当領域ができ、回復パーティションの内容も失われるので、当初の目的は達成できません。
ディスク情報を書き込み、その情報を保って初期化を行う
今度は、最初にディスク情報を与えておいて、それを変えないように回復ドライブでの初期化ができないか、試してみます。
最初にディスク情報を与えるために、今度は sgdisk ではなく、違う方法を使ってみます。
システムイメージバックアップの適用を行い、途中ですぐ中断するのです。
イメージの適用手順を進めていき、「ディスク (EFI システムパーティション) を復元しています」まで実施して、
次のパーティションの復元になったら、復元を停止します。
これで、パーティションテーブルとシステムパーティションがコピーされました。
この段階で、GParted を使って、ドライブの未割当領域まで使うように、パーティションサイズを変更しておきます。
この状態のHDDに、回復ドライブで初期化を行ってみます。
初期化の手順を進めて、この画面で、
「いいえ、これまでのパーティションをそのまま使います」を選べば目的を達成できそうです。
ところが、選んでみると、
このように表示されてしまい、できません。
そこで、HDDのOSパーティションに少し細工します。
元のHDDから以下のファイルをコピーして、元と同じフォルダ位置になるように配置します。
C:\Windows\Boot ・・ フォルダごと全部
C:\Windows\System32\Boot ・・ フォルダごと全部
C:\Windows\System32\config\BCD-Template
C:\Windows\System32\bootstr.dll
C:\Windows\System32\csrss.exe
WinRE環境でのファイルコピーは、コマンドプロンプトから notepad を 2つ開いて、「ファイル」「開く」をエクスプローラーのように使うと便利です。
次に、コマンドプロンプトを起動します。
OSパーティションのドライブレターを確認します。ここではCドライブになっています。ない場合はアサインします。
続いて以下のコマンドを実行します。
bcdboot C:\Windows (ドライブレター\Windows)
この後で、再度初期化を行うと「いいえ、これまでのパーティションをそのまま使います」から先に進むことができます。
「Windowsがインストールされているドライブのみ」「ファイルの削除のみ行う」を選んで進めます。
初期化が完了後、HDDの状態を確認すると、ちゃんと最後まで使われています。
一見うまくいったように見えますが・・回復パーティションの中身を確認すると・・空でした。
ついでに、WinREパーティションもOEMパーティションも空でした。
回復ドライブでPCの初期化を実行する時に、「いいえ、これまでのパーティションをそのまま使います」を選ぶと、再現されないパーティションがあるようです。
ちなみに、ここからシステムイメージバックアップの適用をすると、再フォーマットなしでの適用が実施できます。
しかし、全然当初の目的を達成できていないので、この方法も失敗です。
今回の結論
新しいHDDに引っ越す場合、
工場出荷状態にしたい場合 → 回復ドライブでPCの初期化を実行するのがよいということがわかりました。
元の状態を再現したい場合 → システムイメージバックアップを適用
やれやれ・・
シェアしていただけると大変うれしいです。
更新情報はこちらからどうぞ