起動ディスクをSSDにした

SSDに換装したのではなくHDDはそのままに起動ドライブをSSDにコピーする形。OSはWindows 7
HDDはC, D, E, Fの4パーティションでC:が起動ドライブ。このC:のみをSSD化したわけだ。
CFD販売のSSDなのでクローンはOEM版のEasyDiskCopyをサイトからダウンロードして使った。余談だが付属のネジ8本中4本はSSDにはうまくハマらず使えなかった。HDDには使えるようなのでSSD側のネジ穴がシビアなのだろう。

まずSSDを内臓SATA接続し起動、EasyDiskCopyでSSDにCドライブをコピー。ジャンクションは維持する設定にした。コピー速度はファイル単位でパス名順に行なうので割と遅く、30GBが40分程度かかった。
画面に従い電源を落とし、内蔵HDDの電源ケーブルをはずして(SATAケーブルはそのまま)起動すると、普通に立ち上がった。一点、ページファイルを置いていたFドライブ(HDD)が無いためそのエラーが表示され、一時的にSSDのC:にページファイルが置かれた状態になった。
次にWindowsを起動したままHDDの電源ケーブルを繋ぎ、HDDを認識させる。ドライブのシグネチャがクローンしたSSDと衝突するため繋いだだけではマウントされない。ちなみにAHCIモードのSATAはホットプラグしてOKのはずだが、古いPCなのでマザーボードくらいなら仮に故障しても構わないと考えての乱暴な行動。*1
コンピュータの管理>ディスクの管理で接続したHDDを右クリックし、オンラインを選択。HDDの旧C〜Fパーティションがばらばらの順序でD〜Gとしてマウントされる。EasyDiskCopyの説明によると、オンラインにした段階でSSDをはずしてHDDのみに戻しても旧Cドライブは起動ドライブにはならなくなる可能性がある。
パーティションを右クリックし、ドライブ文字とパスの変更でドライブレターを変える。旧C:は適当な未使用文字に変更し、旧D:〜F:を改めてD:〜F:に割り当てなおした。
再起動し、BIOSのHard Disk Boot PriorityでSSDを優先設定したところ、C:のみSSDになった形で他のHDDパーティションも元通り認識された。
念のためC:のジャンクションを確認して、移行完了。

失敗パターン

と書くと順調にできた様に見えるが、その前に2回失敗している。

1度目はEasyDiskCopyでコピーした後、HDDを外さずにSSDを優先設定して起動した時。

windows failed to start. A recent hardware or software change might be the cause...
File: \windows\system32\kdcom.dll
Status: 0xc000000f
Info: □□□...□□□DLL□□□...□□□windows□□□...(おそらく日本語が文字化けしている)

というメッセージが黒画面に表示され、起動しなかった。Windowsのシステム回復オプションで修復しようとしても前出のファイルが壊れているが修復不能というメッセージがでる。
もしやコピーが失敗していたのかと、もう一度コピーから試そうと思いEasyDiskCopyを起動すると
「dvshadowの実行に失敗しました」と出てコピーできなくなっている。ドキュメントにあるようにサービスの状態を確認したが変わらず。ログを見ても解決できそうにない。

ERROR: Selected writer 'Registry Writer' is in failed state!
   - Status: 9 (VSS_WS_FAILED_AT_FREEZE)
   - Writer Failure code: 0x800423f4 (VSS_E_WRITERERROR_NONRETRYABLE)

そこで次善の策としてネットで評判のよさそうなEaseUS ToDo Backupの無料版*2を使ってクローンすることにした。パーティションのクローン自体は15分程度と速く完了したのだが、起動してみるとX:(SSD)のWindowsから起動してProgramDataもSSDだがProgram FilesやUsersはC:(HDD)を参照するという変な結果に。
そこでドライブレターの変更でC:(HDD)を適当なものにして再起動したところ、今度はログインすると「デスクトップの準備をしています...」というメッセージが出るように。数分表示された後で画面は切り替わったが、今度は青っぽい背景に「このWindowsのコピーは正規品ではありません」というメッセージが右下に出るだけで何も起こらない。マウスポインタはあるのだがアイコンもなくキーにも反応しないのでどうしようもない。

そこからもう一度手順を検討しなおして前述の通りにしたら、移行できたわけだ。
dvshadowが一度失敗していた理由は不明。添付ドキュメントの通り1 NTFSパーティションのHDDを換装する場合は十分スムーズにできる気がする。
注意点としてファイルの作成日とアクセス日が保持されない。ディレクトリの場合は修正日も移行時間になってしまう。

シャドウコピーの削除

失敗パターンでEasyDiskCopy (dvshadow)が途中で終了したせいだろうか。シャドウコピーがHDDにいくつも残っていた。
vssadmin list shadows で確認できる。そのままにしておくとフォーマットでもしない限りデータが残ってディスクを圧迫する。
削除方法はvssadmin delete shadows /?にある。今回は復元ポイントなどもなくすべて移行時にできたものだったので vssadmin delete shadows /all で一括して削除した。

*1:BIOSによってはホットプラグを無効化する設定がある。

*2:下部にある通り丁寧なコメントが付いていたのでリンクを設定した。本記事は2016年当時のバージョンについてであり、最新版で同様の結果になるかは確認していない。