Windows7→Windows10へのアップグレード(悪戦苦闘編)

実家でhogegrandmotherが使用しているPCは、購入当時最先端だったWindows7の64bitバージョン。自宅PCは案外すんなりWindows10にアップグレードできたので、実家PCもアップグレードすることにした。

そう、ホントに軽い気持ちで、2週間以上続く悪戦苦闘の入口に立ったのだった・・・。



※2016/07/31追記 Windows10への無償アップグレード期間が終了しましたが、アップグレードは成功したでしょうか。当ページヘのアクセスが跳ね上がり、大変な思いをされた方が多数いらっしゃると想像しました。 今になって整理すれば、このページでご紹介したのは、
・サードパーティー製のサービスを止めてアップグレードを成功させる。
・サードパーティー製のサービスを少しずつ復旧させる。
・サービスを復旧させてみて動作を確認し、問題が発生するサービスを突き止める。
・問題となるサービスをアンインストールする。
ということでした。最後まで地道に作業しないと原因には辿りつけないため、手間のかかる少し危険な操作でした。その後にお困りごとがあれば、リアルタイムにはなりませんが、分かる範囲でお答えしたいと思います。 当ブログは、自分メモとして残しているものですが、ご覧いただいた皆様のお役に立てれば幸いです。

※2020/02/11追記 Windows7の延長サポートが2020/01/14で終了した影響か当日に1,331PVを記録していました。今のWindows10は互換性データーベースを搭載しているので、もう少し楽にアップグレードできるようになっているのかと思いましたが、全然そんなことはないんですね…。アップグレードした後も、その先の大型アップデートが立ちはだかることもありますが、それでも使い慣れてくると良いOSであることが分かります。訪れてくださった皆様が上手くアップグレードできますように。

発生していたエラーと対策

発生していたエラーは以下。

  • 0x8007002C – 0x4000D MIGRATE_DATA操作中にエラーが発生したため、インストールはSECOND_BOOTフェーズで失敗しました。
  • 0x1900101 – 0x4000D MIGRATE_DATA操作中にエラーが発生したため、インストールはSECOND_BOOTフェーズで失敗しました。

結論として行う操作は以下。

  1. ウィルス対策ソフトをアンインストール
  2. USB接続しているアップグレードには不要な装置をすべて外す
  3. Windowsをクリーンブートするように設定
  4. Windowsを7→10へアップグレード
  5. Windows10へログイン後、F8キーでセーフモード起動できるように設定
  6. クリーンブートから少しずつサービスを復旧していく
  7. Windows10へログインする。
  8. ログインできたら6へ戻る。 ログインできない時にはPCの電源断し、その後F8でセーフモード起動、復旧したサービスを止めて再起動し、7へ戻る。
  9. 6~8でWindows10へのログインを妨げるサービスを特定し、それをアンインストールするなり、アップグレードするなりしてログインができるようにする

ログで問題原因を特定しようと頑張ったのだが、それはできなかった・・・。

突き止めたログインを妨げていたものは、

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
MIGRATE_DATA操作中にエラーが発生したため、インストールはSECOND_BOOTフェーズで失敗しました。


何か対策をした後にアップグレードしてみると、丸々2日程度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へのログインを妨げるサービスを特定し、それをアンインストールするなり、アップグレードするなりしてログインができるようにする

最終的に問題になったサービスが特定できたら、そのサービスを含むアプリケーションをアンインストールする。もし、バージョンアップしているようなら、新しいバージョンに入れ替えるのも手だと思われる。

今回は古いデバイスに付属していたサービスがアップブレードを妨げる原因であったことが判明し、かつ、それはWindowsVista用であってWindows7すらサポート対象外であったことから、アンインストールすることで問題解決した。

 

アップグレードで気がついたこと

以上の手順でどうにかアップグレードができた。

問題解決のために2週間を費やしたが、その原因と対策は以下。

  • アップグレード時に更新プログラムをインストールすると、甚だしく時間がかかること。DVDを作る時とは比べ物にならないほどダウンロードに時間が掛かる。 → 一度問題が発生したら、更新プログラムをインストールしないで進める。
  • 問題がある状態だと、アップグレード作業そのものに甚だしい時間がかかる。2日経っても75%(構成5%)から一歩も前に進まないというのは衝撃的であった。 → 1時間経っても変化がなければ諦めて電源を落とせばいいと思う。
  • 問題が発生しても原因が分からない。エラー番号で指摘された問題は、ハードディスクの容量不足であった。Microsoftのコミュニティでも解決に至っていないケースが散見される。メーカーのホームページでアップグレード対象外と書かれているので諦めた、という書き込みも。 → メーカーサイドからすれば、利益の出ないリリース済みのアプリに開発・変更費用が掛けられないのは仕方がない(だって、そのまま使えば使えるんだから)。アップグレードができて当然とは思わない。ログを探り、ネットをあたり、それでもわからなければクリーンブートを試す。
  • Windows10へのアップグレードができたのが12/31夜、問題の特定ができたのが1/1。酒が入っていたので進捗が出なかったよ・・・ → 酒を休めば肝臓も休まり、進捗も出る。

とまぁ、こんなところか。

hogegrandmotherよ、どうにかアップグレードが済んだので持って行きました。 心置きなく使ってください。 明らかに不足しているメモリは注文して直送してもらいました。

 

さいごに

Windows10ではF8でセーフモードに入れないという事実に心の底から驚いた。なぜこんなに重要なことを根本から変えてしまったのか。ログインしてからでないとセーフモードで起動する設定ができない、ということは、問題発生させながら設定することを強要することに他ならない。

ドライバやサービスの問題でブルースクリーンになったり、猛烈に遅くなる問題が発生したとする。セーフモードならそれなりに操作ができて問題解決に向けられるが、通常ログインしたらメニュー出す前に落ちたりとか、設定を保存するのに数十分とか、再起動を開始するまでに半日とか・・・設定するために途方もない時間が掛かるようになるんじゃないの?

っていうか、今までこんなこと何度も起きてきてるよね、ちょっと考えれば分かるよね? サードパーティ製の製品を受け入れているわけだから、安全が前提の設計なんておかしいんじゃない?と思ってしまう訳なんですが。

セキュリティが理由ですかね?それにしてもこの変更はどうなの?別の解決策を考えるとこでしょ?意味分かんないんですけど。

Windowsは元々好きだし、今も好きだし、常用してるし、良いOSの一つだと思うので、より良い進化をして欲しいと願っています。だから、このことを除いたすべてを・・・2週間も掛けたアップグレード作業のすべてを受け入れ、勝手にいいように解釈して対策しているのです。

お気軽にどうぞ ~ 投稿に関するご意見・感想・他

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です