会社で異動があり、移動先でPCがあたる。
このPC、今時500GBのHDDだ。
WD BlueでAFT仕様。
ここ数年、異動してPCがあたる度に、SSDにディスククローンをして、SSDで利用していた。
なにしろ、セキュリティに厳しい会社なので、あちこちにWindows標準のEFSで暗号化がかけられ、さらに、MS-OfficeやPDFなどは、社内からしか開けないような独自の暗号化も掛けている。
ただでさえアクセスが遅いHDDをSSDに載せ替えるだけでも、体感的にだいぶ早くなる。
で、今までAOMEI Backupperでライブクローンをすれば、差し替えるだけですんなり起動していたのだが、今回に限っては「Windowsを起動しています」の画面で再起動を繰り返す。
元のハードディスクにつなぎ替え、通常に起動して、システムエラー発生時「自動的に再起動する」をOFFにした。
Windows 7でシステムエラー発生時に自動で再起動しないよう設定する方法
121ware.com > サービス&サポート > Q&A > Q&A番号 013044
で、再度クローンしてSSDから起動。
すると、STOP 0x0000007Bと表示された。
このエラーでググっても、ディスク自体が悪いのでCHKDSKしろとか、MBRが壊れているのでbootsectでMBRを書き直せとか出てきますが、どれをやってもエラーは解決せず。
HDDから起動し、SSDをDドライブとして使ってみても、何ら問題なくSSDは使える。
HDDがAFTで物理セクタが4K、SSDが512バイトだから、セクタアライメントのせいか?と思ったけど、どうやらそうではなさそう。
AOMEIが悪いのかと、EASEUS TodoBackupを使ってみるも、症状は同じ。
万事休す。
と、英語でWindows7 Clone 0x0000007Bでググると、ありました!
マイクロソフトはもちろん、Acronis、Veritas、Citrixといった、有名どころのバックアップソフトの会社や仮想化ソフトの会社はしっかりと自体を把握しておりました。
"Stop 0x0000007B" error after you use a Group Policy setting to prevent the installation of devices in Windows 7 or Windows Server 2008 R2
これによれば、グループポリシーエディタで他のデバイスIDやリムーバブルディスクのインストールを防止する設定を入れた場合、クローン後のデバイスからは起動できなくなっているようです。
それがわかるのは、次のレジストリの値が1になっている場合だそうです。
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\PnP\DisableCDDB
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\PnP\DontStartRawDevices
で、元のHDDを接続し、起動してregeditで確認してみると、ビンゴ!
両方ともに1になっていました。
これを0に書き換え、念のためControlSet001なども書き換えておきました。
そして、再起動など一切せずにAOMEI Backupperを使ってディスククローン。(再起動するとまた1に戻ります。)
クローンされたSSDにつなぎ直して起動。
ちゃんと起動しましたとさ。
もしかすると富士通ソフトウェア製のSystemwalker Desktop Keeperがインストールされているので、こいつが起動時(もしくは終了時)に、レジストリの値を書き換えているのかもしれません。
なお、元のディスクがもう手元にない場合、Windows PEやインストールディスクを使用して、コマンドプロンプトからRegeditを起動し、\Windows\System32\config\SYSTEM のレジストリハイブを読み込んで、上記の値を直すそうですが、私はこの方法は試していないため、他に譲ります。
参考 インストールディスクやWindows PEから、起動できないWindowsディスクのレジストリを直す。
とりあえず、この件に関する日本語解説がなかったので、備忘録として。