実家でhogegrandmotherが使用しているPCは、購入当時最先端だったWindows7の64bitバージョン。自宅PCは案外すんなりWindows10にアップグレードできたので、実家PCもアップグレードすることにした。
そう、ホントに軽い気持ちで、2週間以上続く悪戦苦闘の入口に立ったのだった・・・。
発生していたエラーは以下。
MIGRATE_DATA操作中にエラーが発生したため、インストールはSECOND_BOOTフェーズで失敗しました。
MIGRATE_DATA操作中にエラーが発生したため、インストールはSECOND_BOOTフェーズで失敗しました。
結論として行う操作は以下。
を行った。
ログインできない時にはPCの電源断し、その後F8でセーフモード起動、復旧したサービスを止めて再起動し、7へ戻る。
ログで問題原因を特定しようと頑張ったのだが、それはできなかった・・・。
突き止めたログインを妨げるサービスは、QuickCam® Pro 4000 用のアプリケーション
であった。これは、Windows Vistaまでがそのサポート対象なのであり、Windows7で使えていたことの方がラッキーだったもの。
このアプリケーションをアンインストールしてこの問題は収束した。
※サービスの問題であるから、カメラのUSB接続を外してもこの問題は発生する。機器を外せばOKということにはならないのが厳しいところ。
なお、カメラ自体は10年を超えて使用しており、今も現役、ドライバは提供されており、Windows10で何の問題もなく使用できている。
まずはエラーについて。
エラー番号はWindows7にロールバック後、ログインすると表示される。
エラーログは
C:\$Windows.~BT\Sources\Panther\setuperr.log
に残される。
では1つ目。0x8007002C - 0x4000D
最初に発生し、最後まで悩まされた問題。いわゆるフツーにやるとフツーに発生するエラー。
MIGRATE_DATA操作中にエラーが発生したため、インストールはSECOND_BOOTフェーズで失敗しました。
参考1:ログを見たところ、この操作を行うプログラムがないと怒られていた。ないと言われても困るなーと思いながら、C:\$Windows.~BT を検索してみるとそのプログラムがあるみたいなのでコピーしてみた。
参考2:その後には、なんちゃらファイルへの書き込み権限がない、とか言われたりもしたので、既に存在するなんちゃらファイルのファイル名を変えてみたりもした。
参考1~2は、もしかしたら効果があったかもしれないのでメモとして残しておくが、恐らく対策になっていないと思われる。
2つ目0x1900101 - 0x4000D
何か対策をした後にアップグレードしてみると、丸々2日程度SECOND_BOOTフェーズで止まったりした。仕方がないので電源を落として再起動すると、このエラーメッセージが表示される。
MIGRATE_DATA操作中にエラーが発生したため、インストールはSECOND_BOOTフェーズで失敗しました。
この挙動からすると、アップグレード操作がアップグレードプログラムの意図しないタイミングで終了した時に表示されているのでは?と推測される。
今回の悪戦苦闘の直接的原因ではないが、このエラーコードで書かれたブログが大変参考になったので、あえて記載してみた。
それぞれの対策について記載してみる。
1.ウィルス対策ソフトをアンインストール
どこに行っても必ずと言っていいほど書かれている対策なので、参照元は記載しない。
使用していたのはウィルスセキュリティゼロで、まったく悪さをしているようには見えなかったが、あまりにもどこにでも書かれているので不安になって実行したもの。
今、冷静になれば、クリーンブートすればウイルス対策ソフトも動かない?かもと思う程度の、本当に必要なのか分からないレベルの対策。
2.USB接続しているアップグレードには不要な装置をすべて外す
ハードディスクは外しておいたほうが色々と安心。それ以外の装置も何がどう影響するのか良く分からないので、外しておいたほうが無難。
だが、これも、今回の問題とは直接関係していないように思われる。
3.Windowsをクリーンブートするように設定
今回の問題で超重要な対策。これを行うことで、サードパーティ製のサービスを止めておくことができる。
やり方はマイクロソフトの公式ページにある。
※以降2つの画面を貼り付けておくが、Windows10のもの。差はないのでご了承を。
コマンドプロンプトからC:\Users\hogeuser>msconfig
を入力して「システム構成」というアプリケーションを起動。
「全般」タブで「スタートアップオプションを選択」を選択し、「スタートアップの項目を読み込む」のチェックを外す。
「サービス」タブで「Micorosoftのサービスをすべて隠す」をチェックし、Microsoft以外のサービスを「すべて無効」ボタンで無効にする。
OKボタンをクリックし、PCを再起動する。
4.Windowsを7→10へアップグレード
起動したらログインし、アップグレードする。アップグレードの手順自体は以前書いた記事とほとんど変わらない。
ただし、今回はカットアンドトライ状態だったので、時間を短くしたかったため、「重要な更新プログラムをインストールします」画面では「今は実行しない」を選んだ。
一体どういうルートで何をダウンロードしているのか分からないが、「インストールする」を選ぶと、もう本当に猛烈に時間が掛かる。耐えられない・・・。
とか考えながら放っておいたら、どうにかアップグレードができた。
しかし、これで完了ではないのだ。クリーンブートのままだから。
5.Windows10へログイン後、F8キーでセーフモード起動できるように設定
これは必須ではないが、スマートにセーフモードで起動できるようにするためには必要だった。もちろん、セーフモードの起動方法が変わっていることになど気付くはずもなく、罠にハマったわけだが・・・。
GINAZINEさんの記事にやり方が書いてあり、確かにF8でセーフモード起動ができるようになった。
実際には管理者権限でコマンドプロンプトを開き以下を入力するだけ。C:\WINDOWS\system32>bcdedit /set {default} bootmenupolicy legacy
この設定を漏らした場合、セーフモードで起動させるために、ブートの途中で電源コードを抜いてトラブルを起こす必要がある。
ブートは 1stフェーズ→2ndフェーズ→ログイン画面→ログイン な感じで行われている予感。今回、ログイン画面→ログインの間で問題が発生してログインができなかったのだが、ここで電源を落としてもセーフモードにすることはできない。何度やっても同じ。
2ndフェーズあたりで電源を抜くと、次の起動時にセーフモードで起動するオプションが選択できるようになる。だが、これ、ハードに掛かる負担が大きいと思われ、もうやりたくない。
なお、元に戻すには以下を行う。C:\WINDOWS\system32>bcdedit /set {default} bootmenupolicy standard
6.クリーンブートから少しずつサービスを復旧していく
セーフモードにF8キーで入れるようにしてから、ログインを妨げる問題が何なのか、突き詰めていく。
具体的には「システム構成」を開き、「サービス」タブをクリックした後、幾つかのサービスをチェックして有効にしていく。これは大丈夫そうだなー、というものをチェックし、再起動させる。
7.Windows10へログインする。
再起動後、ログインする。
8.ログインできたら6へ戻る。
ログインできない時にはPCの電源断し、その後F8でセーフモード起動、復旧したサービスを止めて再起動し、7へ戻る。
ログイン時、RuntimeBroker.exe - アプリケーションエラー
が表示されたり、ログイン後に画面が真っ黒になり延々と待たされる状態になったらアウト・・・。
0x00007FFE31EE539E の命令が 0x0000000000000010 のメモリを参照しました。メモリがwrittenになることはできませんでした。
プログラムを終了するには[OK]をクリックして下さい
一旦電源を落とし、セーフモードで起動して 6 に戻る。
何も問題なくログインできれば、今チェックしているサービスには問題がないと言える。
6 に戻って、更にサービスをチェックして有効にしてみる。
9.6~8でWindows10へのログインを妨げるサービスを特定し、それをアンインストールするなり、アップグレードするなりしてログインができるようにする
最終的に問題になった部分が特定できたら、そのサービスを含むアプリケーションをアンインストールする。もし、バージョンアップしているようなら、新しいバージョンに入れ替えるのも手だと思われる。
今回は古いアプリが原因であり、Windows7もサポート対象外であったことから、アンインストールした。
以上の手順でどうにかアップグレードができた。
問題解決のために2週間を費やしたが、その原因と対策は以下。
とまぁ、こんなところか。
→ 一度問題が発生したら、更新プログラムをインストールしないで進める。
→ 1時間経っても変化がなければ諦めて電源を落とせばいいと思う。
→ メーカーサイドからすれば、利益の出ないリリース済みのアプリに開発・変更費用が掛けられないのは仕方がない(だって、そのまま使えば使えるんだから)。アップグレードができて当然とは思わない。ログを探り、ネットをあたり、それでもわからなければクリーンブートを試す。
→ 酒を休めば肝臓も休まり、進捗も出る。
hogegrandmotherよ、どうにかアップグレードが済んだので持って行きました。
心置きなく使ってください。
明らかに不足しているメモリは注文して直送してもらいました。
最後に・・・
Windows10ではF8でセーフモードに入れないという事実に心の底から驚いた。なぜこんなに重要なことを根本から変えてしまったのか。ログインしてからでないとセーフモードで起動する設定ができない、ということは、問題発生させながら設定することを強要することに他ならない。
ドライバやサービスの問題でブルースクリーンになったり、猛烈に遅くなる問題が発生したとする。セーフモードならそれなりに操作ができて問題解決に向けられるが、通常ログインしたらメニュー出す前に落ちたりとか、設定を保存するのに数十分とか、再起動を開始するまでに半日とか・・・設定するために途方もない時間が掛かるようになるんじゃないの?
っていうか、今までこんなこと何度も起きてきてるよね、ちょっと考えれば分かるよね?
サードパーティ製の製品を受け入れているわけだから、安全が前提の設計なんておかしいんじゃない?と思ってしまう訳なんですが。
セキュリティが理由ですかね?それにしてもこの変更はどうなの?別の解決策を考えるとこでしょ?意味分かんないんですけど。
Windowsは元々好きだし、今も好きだし、常用してるし、良いOSの一つだと思うので、より良い進化をして欲しいと願っています。だから、このことを除いたすべてを・・・2週間も掛けたアップグレード作業のすべてを受け入れ、勝手にいいように解釈して対策しているのです。
↧
Windows7→10へのアップグレード(悪戦苦闘編)
↧