「クローニングで発生した問題あれこれ」のその7です。これが最後の予定ですが、ここでは最初の目的に戻って、SSDにクローンを作って、そこを起動&メインに使って、元あったHDDをデータ用にするにはどうしたらよいかを考えます。
ただし、一部推測でこうなるだろう、というのが混ざっていますし、記憶が多少あいまいな点もありますので、間違っていたら皆さん自身での検証結果の方を優先してください。コメントでご指摘などいただければ、可能な限り対応します。
なお、以下の記述は、私の検証した結果を踏まえたものなので、HDDがSATA#0、SSDがSATA#2のチャンネルにそれぞれ接続されている前提です。また、HDDはMBRディスクであるケースのみを取り扱ってます。さらに、クローン元がHDD、クローン先がSSDという状況です。
【やり方1:クローンをやめてSSDにWindowsを通常インストールする】
まあ、目的とはずれてきますが、最も確実に問題無く行きたいなら、結局これがベストです。元々SSDにHDDのディスク署名を書き込まなければ、重複しようがないので、問題が起こるはずもありません。
私が試した範囲では、これでいけば、BIOSのブート順を変更するだけで、起動するドライブをHDDとSSDで切り替えることも問題無くできました。もちろん、ちゃんとブートマネージャを設定すれば、そんな面倒なことをしなくてもいいのかもしれませんが。
【やり方2:SSDへクローン作製後、HDDを初期化する】
HDDのパーティションを切り直して、データ専用にして、以後HDDから起動する可能性がないのなら、これが総合的に見て一番確実です。ただ、問題なのは「HDDの初期化」というのが具体的にどうしたらよいのかがわかりにくいことです。実際、Linuxでパーティションを開放したりしても、うまくいきませんでした。
ディスク署名を確実にクリアする、という観点で最もおすすめなのは、SSDを一旦取り外した後、Windowsの回復ドライブなどを使ってHDD以外から起動して、高度な回復手段のコマンドラインから、diskpartコマンドを使う方法です。これならWindowsだけで作業環境が作れて、かつ確実にディスク署名を含めて初期化できます。具体的な手順としては、
- コマンドラインから"diskpart"を起動する
- "list disk"で初期化するHDDを確認する。Thinkpadの内蔵HDDの場合は、通常DISK 0がそれなので、以下その前提で。
- "select disk 0"で初期化したいディスクを選択する
- ”clean"で初期化を実施する。確認など全くされないので、最大限事前確認を行うこと
- "exit"でdiskpartを終了する
これで、パーティションやMBRを含め完全に初期化されて、ディスク署名も0の羅列になります。"clean"の部分は"clean all"でも良いが、かなり時間がかかるらしいし、無理にそこまでやる必要もありません。
この状態でSSDを再度取り付けてそちらから起動し、Windowsのディスク管理からパーティションを切ってやれば、問題無く使えるはずです。私の場合は、完全にデータ用と言う事で、ブート可能な基本パーティションを作りたくなかったので、パーティションも含めてdiskpartで切り直しましたが、まあそこまでやる必要もないでしょう。
【やり方3:SSDクローン作製後、HDDのディスク署名のみ変更する】
HDDはデータ領域とするけど、とりあえず以前のデータも見たいので、当面はHDDを初期化したくない、という場合は、たぶんHDDのディスク署名だけを書き換えればいいんじゃないかと思います。ただし、これは私は検証してませんので、うまくいかないかも。
ディスク署名の変更方法はその5に書いてありますので、そちらを参照してください。ただ、その作業はSSDを外した状態で行わないとまずいので、やり方2と同様、Windowsの回復ドライブなどを使って立ち上げた環境で行ってください。
署名を書き換えたHDDは、参照用としては問題ないと思いますが、そのままでは昔のようにHDDから起動することはできない…はずです。どうしてもそのHDDから再びWindowsを起動したい場合については、下記参照。
【おまけ:ディスク署名が書き換わってWindowsが立ち上がらない場合】
この手の作業中に、SSDとHDDをつないでガチャガチャやってると、何かの拍子にSSDのディスク署名を書き換えてしまったなどの理由で、SSDからWindowsを起動できなくなる場合がままあります。また、上述の署名を書き換えたHDDの復旧処理も、原理上は同じ事になると思います。
困ったことにこの場合、私の経験上ではほとんど、Windowsの回復ドライブのスタートアップ修復では復旧できません。
このような場合の対応ですが、あくまで私の経験上ですが、半自動で行われるスタートアップ修復ではなく、コマンドラインから手動でコマンドを打って修復することで、起動できるようになる場合がかなりあります。その手順は以下の通り。
- いったんコマンドラインに下りる。これは、高度な修復だか何だかのメニューから行けます
- コマンドラインから、"bootrec /rebuildbcd"コマンドを打つ。すると、何やら探しているようなメッセージが出て、確認後、Windowsの起動を修復してくれます
私の作業の場合、大体これで修復できましたが、どんなケースでもできるかどうかは分かりませんので、あくまで自己責任でお願いします。