Windowsめんどくせー。
皆さん、Windows回復環境は知っていますか?
Windows回復環境(Windows RE)とは、Windowsが起動しなくなった時等に呼び出されるトラブルシューティング用の環境で、スタートアップ回復やコマンドプロンプト・更新プログラムのアンインストール、システムの復元といった修復用の機能を使用できることができる。
普通はCドライブパーティションの後ろに約760MB強~1GB程のパーティションが割り振られてあり、そこにインストールされている。偶にCドライブ以下に設定されている場合もある。実際、起動しなくなったらCのファイルも破損していそうなので精神衛生上あまり嬉しくはない。
……ということで、今回は弄りに弄り倒したWindowsが入ったドライブをクローンして拡張する機会があったのでついでに回復環境を作ってみた。……ら、ハマったので備忘録的に記録しておく。
まず何故これを書く気になったかというと、Windowsが入ったSSDをクローンしたからだ。元が500GBのSSDから1TBへと拡張したかったので何も考えずにクローンにはUSBブートのLinuxを使用し、ddコマンドでパーティションごとクローンした。
そのままクローンすると後ろにありえないほど空き容量ができてしまうのでGPartedをつくってよしなにしてほしい。(ここで死ぬほど詰まって1敗)
そして、「Windows 回復環境 再作成」等で検索すると再作成の手順等が出てくるのでそれを参照して作業するのだが、なんか謎エラーが出る。
エラーが出るタイミングは「reagentc /enable」コマンドを実行するタイミングで、実際に出たエラーは”3bc3″と”2″だった。ということで以下の手順によりこれらのエラーを修正する。また、修正の手順を行った場合は、再作成の手順を再度実行して欲しい。
エラー:3bc3
このエラーはEFIパーティションのidが異なることで発生する。また、CSMがオンでも発生するとされているが、おそらく今はMBRパーティションでWindowsをインストールすることは少ないと思われるのでCSMは多分オフ担ってると思う。多分。ということで今回はスルーする。
コマンドプロンプトを管理者で実行し、diskpartを実行。list partitionでEFIパーティションの位置を確認したあと、detail partitionをEFIパーティションに対して実行した際、Type : c12a7328-f81f-11d2-ba4b-00a0c93ec93b となっていない場合3bc3エラーが発生した。
EFIパーティションを選択し、set idコマンドを実行し以下のidに変更することで3bc3エラーを修正できる。
set id=c12a7328-f81f-11d2-ba4b-00a0c93ec93b
エラー:2
このエラーはブート環境ファイルがないか、破損しているか、変更されたために起きる。
まずWindowsのインストールメディアを作成する。作成する方法は何でも良いが、とにかく、そのメディアを用いてブートできるようにする必要がある。
そして、インストールメディアからブートし、コンピューターを修復するを選択。トラブルシューティングからコマンドプロンプトを開き、diskpartからlist diskを実行。
list diskでEFIパーティションを確認したら、diskpartを終了し、bcdbootコマンドを実行することでシステムファイルをEFIパーティションにコピーする。
例として、bcdboot C:\Windows /s EFIパーティションのドライブ文字: /f UEFI を実行する。これでエラー:2を修正することができた。
あくまでも自分の体験ベースなので、あまり全部を鵜呑みにしないでください。
個人的には、Windowsのインストールメディアからブートし、コマンドプロンプトからdiskpartを実行。
list volume
select volume(EFIパーティション)
assign letter=X
format quick fs=fat32 label=EFI
set id=c12a7328-f81f-11d2-ba4b-00a0c93ec93b
とidもついでに変更するほうが楽かな、と思う。
少なくとも回復環境を後から作成し、エラーなく使えるようにするのは面倒なので、あまりソフトをインストールしていなかったり、環境を維持する必要がないのであれば再インストールすることをオススメします。
何か質問があればコメント欄かTwitterのDMで。できる限り答えます。それでは。