2016/02/06

[win][修復]Windows10が立ち上がらなくなったので復旧

うちのメイン環境はWindows7なのだが、そろそろWindows10の準備も進めておこうと思った。
なので、別HDDにWindows10をインストールし、ときどきアップデートなどしている。

  • Windows7のHDD
  • Windows10のHDD
  • ユーザディスク

と3つに分けている。
全部Cドライブに入れてc:\Users以下に入ってしまうと、権利がなくて見えなくなったりすると不便なので、ユーザ用はユーザ用でディスクを分けている。

デフォルトではWindows7のHDDから起動するようになっている。
そのときは、Windows7のHDDがCドライブ、ユーザディスクがEドライブ、Windows10のHDDがFドライブになっていた(と思う。今立ち上がらないので。。)。
Dドライブは、たぶんWindows10インストール時にできる100MBのパーティションだろう。

Windows10を起動するときは、BIOSで起動ドライブを選択するメニューを出し、選択している。


まず、起動しなくなったときの状況から。

いつもは、普通に立ち上がっていた。
最後に行った操作は、OneDriveが起動するのが嫌だったので、gpedit.mscで動かないようにしたのと、OneDriveのフォルダを非表示にしてから、再起動。
そして立ち上げると、すぐに起動できない画面が出てきた。

http://answers.microsoft.com/en-us/windows/forum/windows_10-update/how-to-repair-windows10-file-bootbcd-with-error/3d8f9c4c-365b-4fd3-8dba-9b15eddfb0f7?auth=1
これの、エラーコードが0x0000000Fになったやつだろう。

Windows10のインストールDVDは作っていたので、それで修復すればよかろう、とDVDを突っ込んで、BIOSで起動ドライブでCD-ROMを選択。
なんかそれっぽいのが走り出したので、修復を選んで放置。
2時間しても終わらないので、そのまま寝た。

というのが昨日までの状況。

しかし、あとでわかったことだが、うちのPCは「CD-ROM」を選んでもDVDからは起動しないようだ。
そして、何が立ち上がってあの修復画面になったのかわからないのだが、とりあえずWindows7の修復ディスクが立ち上がっていたようだ。

朝起きると、Windows10はおろか、Windows7も立ち上がらなくなっていた。


Windows10のDVDから正しく起動させ、スタートアップ修復を選ぶも、復旧自体ができない。
見ると、ドライブの中が空っぽ。
Windows10は後回しにして、Windows7の起動を優先させよう。
Windows10のHDDは、外しておく。

 

Windows7の修復ディスクもあったので、そこから起動させてスタートアップ修復しようとしたが、とりあえずこれがDドライブとして認識されている。
bcdboot.exeで修復している人が多いので、とりあえずこう打ってみた。

bcdboot D:\Windows /l ja-JP

エラーにはならない。
ならないが、再起動すると、CI.dllがない、とメッセージが出てすぐに終わる(状態:0xC0000098)。
なんとなくだが、Dドライブとして起動しようとして、CI.dllとかはCドライブにあると思ってるから存在しない、とか、そういう感じだろうか。

ネットでDLL関係を検索すると、胡散臭いのがいっぱい引っかかる。
DLLのみのダウンロードって、信用するのが難しいな。


もう一度、Windows7修復ディスクでコマンドプロンプトを起動。

http://starfleet.if.tv/bkn/log/2010/06/windows7.html
DiskPartというコマンドがあるので、それを見てみる。
list partitionで見ると「*」がついているので、たぶんアクティブパーティションは正しそうだ。

list volumeすると、ユーザディスクがCドライブになっていて、フォーマットが「RAW」になってる。
RAWなのも困るが、Cドライブが占有されるのも困るので、このHDDも取り外す。

再度Windows7修復ディスクを起動すると、今度はCドライブとして見えてくれた。
が、自動修復はエラーのまま。
コマンドプロンプトから、以下を実行。

  • bcdboot c:\Windows /l ja-JP
  • bootrec /fixboot
  • bootrec /fixmbr

ユーザディスクを取り付けて起動させると・・・CI.dllのエラーはまだ出る。
もしかして、本当にCI.dllがないのか?
そもそも、ブートしようとしているから、MBRとかその辺は問題ないはずなのだ。

c:\Windows\System32にはCI.dllはいる。
sfc.exeでチェックしようとしたが、保留中のシステム修復があるので再起動しろと言われる。
修復ディスクにも入っているので、とりあえずそれで置き換えてみよう。

・・・再起動するとCI.dllのエラーは出なくなったが、ブルースクリーンになった。
「PROCESS1_INITIALIZATION_FAILED」。
進んだということは、本当にCI.dllがだめだったということかな?
もしそうなら、CドライブのWindowsフォルダだけバックアップから復元させれば済むのでは。

ひとまず、Windows7修復ディスクの自動修復処理が今までより長く動いているから、放置してみよう。


放置中に、いろいろ考えておこう。

まず、バックアップからの復旧。
うちは、これでバックアップを取っている。
完璧な無料データバックアップソフト - EaseUS Todo Backup Free

このツールだけじゃないのだが、バックアップは取る方よりも復旧させるときの方が大切だ。
めったにやらないから、いざとなって困るので、練習しておいた方がよい。
ネットで探せば出てくるのだが、こういうのは慣れておいた方がよいのだ。

練習していなかった私は、どうやってリストアしてよいのかわからん。
そして、自動復旧処理にやはり失敗したので、リストアしないといけないようだ。
別PCにEaseUSをインストールして、CD-RWにリストア用のブータブルディスクを焼く。


焼いている間に、ユーザディスクの復旧を行う。

gpartsが立ち上がるLive CDを使って、testdiskする。
が・・・testdisk上は正しく見えているのだな、これが。

EaseUSはファイル単位でリストアできると書いてあるのだが、ディスクごとバックアップを取っていたためかファイルの指定ができないようなのだ。
CI.dllだけあればよいのに・・・。

バックアップの仕方も、ディスク丸ごとだけじゃなくて、システムだけバックアップというのもあるから、Windows Updateした後くらいはそれでバックアップを残して置いた方が無難かもしれん。


Windows7のリストアを行う。
ファイル単位ではないのでそこまで時間がかからないかと思ったのだが、差分バックアップを行っていたためか数時間かかりそうだ。


かなりかかったが、1/31のシステムをリストアした。

ATOK2016が入ったくらいで、大きな変更はなかったようだ。
そういえば、ATOK2016が入ったときにはシステムの復元ポイントは作成されていなかったんだな。
これがあると、復元ポイントから戻せて楽だったのだが。

ファイル同期としてはGoogleドライブとDropboxのアプリをインストールしているのだが、Dropboxは特に問題なかったものの、Googleドライブの方はいくつかのファイルが「[競合]」マーク付きでアップロードされてしまった。
データファイルはリストアしていないので、タイムスタンプも内容も変わっていないのだが・・・。
以前のファイルが消されたわけではないから削除すれば済んだのだが、もうちょっとうまくやってもらえると助かる。
スタートアップに入っておくと心配なので、Googleドライブアプリは自動起動から外すことにした。
この手のサービスは便利なんだけど、こういう同期がどうなるかよくわからないときは不安だな。

いくらか古いものはあるかもしれないが、ひとまず落ち着いているようなので、システムの復元ポイントと、バックアップツールでのバックアップをしておく。
これはこれで、かなり時間がかかるだろう。

はい、ここまでで朝9時から18時くらいです。
これからバックアップなので、完了は早くても20時くらいだろうか。
そこまで行ったら、ようやくWindows10の復旧作業だ。


復旧作業2日目。
バックアップは、なぜか99%完了のまま止まっていたので、差分を消して再度作成し直した。
おかげで、2日連続でパソコンを付けっぱなしで寝てしまうことになった。

今朝からはWin10の復旧に入る。
まず、はずしていたHDDを接続して、Win7を起動しているのだが、HDDチェックが走っている。
起動後にイベントビューアを確認すると、Win10関係のパーティションだったため、再度チェックディスクをしている。

なんかごにょごにょログは出ていたが、エラーなどはないらしい。
では、Win7を終了させて、Win10のHDDから起動をする。
だめになったとき、Win7を休止状態にしていたので、それも少し関係しているかもと思ったのだ。

うん、普通にWindows10が立ち上がった。
何事もなく、何事もなかったかのように振る舞っている。
なんだったんだ・・・・・・・・・。


長々と書いたが、こういうのは記録に残しておかないと、あとで困るのだ。
セットアップはよくやるからいいけど、トラブルの場合は対応方法がいろいろ変わってくるので、やったことをメモしておきたい。

因果関係がはっきりしなかったが、起きた現象は以下。

  • Windows10が起動しなくなった。BCD関係でOSのブート時に止まる(Windows7は休止状態にしていた)。
  • Windows10の復旧ディスクで修復するつもりだったが、実際に起動したのはWindows7の復旧処理で、それで何が行われたのかはよくわからない。結果は「復旧できませんでした」だった。
  • その前まで起動していたWindows7が起動しなくなった。これがWindows7の復旧処理を行ったせいかどうかは不明。
  • Windows7なりWindows10なりの復旧ディスクでコマンドプロンプトからHDDドライブを見たが、どれもディスクを正しく認識していないように見えた。
  • ただ、LinuxのLive CDから見ると、ディスクにエラーは生じていない。

やったことは、以下。

  • Windows10 HDDを外し、Windows7 HDDだけで復旧処理をしようとした。これも「復旧できませんでした」で終わった。
  • bcdbootやbootrecを使うとWindows7の起動処理は動いたが、CI.dllがないと言われる。ファイルとしては存在していたが、復旧ディスクに入っていたCI.dllとはサイズが違った。差し替えると、ブートは進むようになったが、ブルースクリーンになる。その状態で復旧処理をしたが「復旧できませんでした」で終わる。
  • EaseUSでバックアップしていたCドライブの内容でリカバリした。ファイル単位の復旧がしたかったのだが、無料版だからか、ドライブごとのバックアップをしていたためかわからないが、できなかった。リストアの結果、少し古い内容ではあるがWindows7が起動するようになった。
  • その後、Windows10のHDDを接続してWindows7を起動し、エクスプローラ→ツールでディスクチェックをすべてのセクタに対して行った(接続して起動したときにもチェックは走った)。
  • BIOSのHDD選択でWindows10 HDDを選んで起動すると、特に復旧処理も行わずに起動できた。

うーん。
もしWindows7がちゃんと起動できるようであれば、単にWindows10のHDDをチェックしてファイルシステムの情報が正しくなりさえすれば終わった話かもしれない。
休止状態で終わらせたのが、何かまずかったのだろうか・・・。

様子見として、Windows10を起動するときには、めんどうだけどWindows7の休止状態は使わないようにしよう。
SSDとかで起動が速ければ毎回終了させたいのだけど、なかなか起動するのを待てなくてねぇ。

2 件のコメント:

  1. はじめまして。EaseUS SotwareのTeiと申します。
    失礼ですが、メールアドレスなどのご連絡先をいただけませんでしょうか。
    弊社のパーティション管理ソフトのレビューのご執筆をお願いしたいんですが…
    恐縮ですが、メルアド:teiisyou@easeus.comまでご連絡いただけませんでしょうか。

    お手数ですが、ご覧になったら、このコメントを削除していただけませんか。

    返信削除
    返信
    1. ご連絡ありがとうございます。
      申し訳ありませんが、現在は作業の依頼を受け付けておりません。
      (数年後は分かりませんが。。。)

      こちらのコメントをご覧いただき、何か返信していただければ、この一連のコメントは数日以内に削除いたします。

      削除

コメントありがとうございます。
スパムかもしれない、と私が思ったら、
申し訳ないですが勝手に削除することもあります。