セーフモードを使って。セーフモードでも起動できないという悪夢からの脱出[その1]:山市良のうぃんどうず日記9。

結局セーフモードがわからずBAつけられなく

本当にごめんなさい
なんとかできたみたいですm_ _m

セーフモードを使って。

Mac をセーフモードで起動すると、起動ディスクのディレクトリが自動的にチェックされます。このとき、ディスクユーティリティを使ってディスクを検証または修復するときと似たような処理が行われます。ディレクトリが修復された場合、Mac は自動的に再起動します。

Mac の電源が切れた場合は、Mac と電源コンセントがしっかり接続されているか確認してください。MagSafe 電源アダプタをお使いの場合は、電源アダプタの LED が黄色または緑色に点灯しているか確認してください。その上で、もう一度セーフモードで起動します。

Mac がセーフモードの間に何度も再起動またはシステム終了する場合は、Apple サポートにお問い合わせいただくか、Apple 正規サービスプロバイダや Apple Store 直営店にご相談ください。

セーフモードでも起動できないという悪夢からの脱出[その1]:山市良のうぃんどうず日記9。

 毎月恒例のWindows Updateを実行してPCを再起動したら、あるいは新しいアプリをインストールしてPCを再起動したら、正常に起動しなくなったという場合、PC初心者ならきっと途方に暮れてしまうでしょう。

 よく見ると何か青い画面が一瞬表示されるものの、延々と再起動を繰り返したり、あるいはようやく起動しても画面が真っ黒いままでマウスが反応しなかったりといった症状です。Windowsがスタートアップ環境を自動修復しようとして失敗し、それを永遠に繰り返しているように見えるかもしれません。しかし、筆者個人の経験では、ソフトウェア的なシステム変更が原因のWindowsの起動問題を「スタートアップ修復」が解決してくれたことは一度もありません画面1。

 更新プログラムやアプリのインストールによって問題が発生した場合は、恐らく犯人はそのインストールで行われた“システムに対する変更”です。Windows Updateを自動実行に任せている場合は、毎月第2火曜日の翌水曜日日本における毎月の更新プログラムの配信日から数日中に発生した場合も、更新プログラムが原因である可能性が高いでしょう。

 このような状況になって「セーフモード」でもPCを起動できないとしたらパニックになるかもしれませんが、原因はなんとなく分かっているのですから一呼吸置いて冷静になりましょう。焦ってしまうと“最も簡単かつ有効な回復手段”を捨ててしまうことにもなりかねません。

 最初に断っておきますが、ここから紹介するのは、あくまでも筆者がソフトウェアを原因とするPCの起動問題に遭遇した時に、試してみるであろう手順になります。これがベストプラクティスというわけではないかもしれませんし、ハードウェア的な原因例えば、ハードディスクやメモリの故障などの場合は別の対処が必要になります。

 また、Windows Vista以降およびWindows Server 2008以降のWindowsを対象とした手順になります。手順の中にはWindows XPやWindows Server 2003でも使えるものもありますが、話がややこしくなるのでこれらの旧Windowsについては言及しないことにします。

 デスクトップPC向けのWindowsには「システムの保護/システムの復元」機能が搭載されており、既定で有効になっています。この機能が有効になっている場合、Windows Updateの更新プログラムやアプリ主にマイクロソフト製のアプリをインストールする直前の他、定期的な間隔や、システムのフルバックアップ作成時に「復元ポイント」が自動作成されます。

 この復元ポイントには、重要なシステムファイル、一部のプログラムファイル、およびレジストリ設定が含まれており、問題が発生した場合にユーザーのデータに影響を与えることなく、システムに加えられた変更を元に戻すことができます。更新プログラムやデバイスドライバー、アプリのインストールでPCが起動不能になった場合、「システムの復元」を試してみるのが最善の選択でしょう。

 「システムの復元」を実行するには、「システム回復オプション」を使用します。システム回復オプションは「Windowsプレインストール環境」Preinstallation Environment:WinPEベースのミニOS環境であり、「Windows回復環境」Windows Recovery Environment:WinREとも呼ばれます。“WinPE+システム回復オプションの機能=WinRE”という感じです。WinREは通常のWindowsのインストールとともに、PCのローカルディスクにインストールされています。WindowsのインストールDVDメディアからPCを起動して、WinREを開始することもできます。

 Windows Vista、Windows 7、およびWindows Serverの場合は、PCに電源を投入してWindowsの起動が開始するタイミングで[F8]キーを押し、「詳細ブートオプション」メニューの「コンピューターの修復」からWinREを起動することができます画面2。なお、WinREを利用するには、問題が生じているWindowsのローカル管理者のパスワードを入力する必要があります。

 Windows 8およびWindows 8.1の場合は、スタートアップ高速化の影響で[F8]キーが事実上使えません参考記事:@IT > Windows Server Insider > 『Windows TIPS:Windows 8を「確実に」セーフ?モードでブートさせる』。その代わり、複数回起動に失敗すると「回復」ページが表示され、WinREを起動することができるようになっています画面3。

 具体的には、「回復」ページで「詳しい修復オプションを表示する」をクリックして、「オプションの選択」→「トラブルシューティング」→「詳細オプション」→「システムの復元」をクリックします画面4。なお、Windows 8およびWindows 8.1の場合も、WinRE環境に入るには、問題が生じているWindowsのローカル管理者のパスワードを入力する必要があります。

 WinREには「システムの復元」とは別に、「システムイメージの回復」Windows 7以前、「イメージでシステムを回復」Windows 8以降という項目があります。「システムの復元」と似ていますが、これらはシステムのフルバックアップシステムイメージをリストアするためのオプションになります。

 また、Windows 8以降の「トラブルシューティング」ページには、「PCのリフレッシュ」や「PCを初期状態に戻す」といったオプションもあります。トラブル解決に役立ちそうな魅力的なオプションに見えますが、使い方を誤ると大事なデータやアプリが消えてしまうので注意してください。これらの回復方法の違いについては、別の機会に紹介します。

 「システムの復元」が問題発生時に常に利用できるとは限りません。例えば、ディスク領域を節約するために復元ポイントを削除してしまった、あるいは同じ理由で「システムの保護」機能を意図的に無効にしてあるといった場合です。トラブルが発生する直前に限って、なぜか、そんなことをしてしまうものです。

 また、Windows Serverの場合はそもそも「システムの保護」機能を提供しません。Windows Serverで「システムの復元」と同じことをしようとするなら、事前にハードディスクやDVD、ネットワーク共有に作成しておいたシステムのバックアップから、システム状態をリストアするという操作になります。

 「システムの復元」を利用できない場合、次善の策となるのはWinREやWinPEの「コマンドプロンプト」で原因の調査や対処を行うことです。コマンドプロンプトに慣れていない人にとっては少々ハードルが高くなるかもしれませんが、今回は問題の原因調査に役立つかもしれない、テクニックをいくつか紹介します。

 WinREからコマンドプロンプトを起動する方法については、前出の画面2と画面3を見ていただければ一目瞭然なので説明しません。WindowsのインストールDVDメディアからPCを起動した場合は「コンピューターを修復する」をクリックして開始するWinREから開く方法の他にも、「Windowsセットアップ」が表示されている状態で[Shift]+[F10]キーを押すことで、素早くコマンドプロンプトを開くことができます画面5。

 [Shift]+[F10]キーで開くコマンドプロンプトも、WinREから開くコマンドプロンプトも、どちらも“WinPEのコマンドプロンプト”であって両者に違いはありません。ただし、WinREを起動することがないため、ローカル管理者のパスワードの入力を求められないという違いはあります。

 さて、WinPEのコマンドプロンプトが起動したら、まずは重要なユーザーデータを「XCOPY」コマンドなどで外部メディアにコピーし、起動しなくなったPCから救出しておくことをお勧めします。

 WinPEで起動したPCにUSBメモリやUSB外付けハードディスクを接続すれば、通常起動のPCと同じように認識されます。また、コマンドプロンプトで「startnet」または「wpeutil InitializeNetwork」と入力すると、ネットワークが初期化されるので、ファイル共有との間でファイルをやりとりすることもできます。

 ただし、利用できるネットワーク機能は、有線ネットワークLANであり、Windows標準のドライバーで対応できることが条件になります。また、DHCPが利用できないネットワークでは、「netsh」コマンドを使用してIPアドレスを固定する必要があるため、ちょっと面倒です。

 ファイルを救出する場合やその他のトラブルシューティングを行う場合、まずは正常起動時のPCのCドライブがどのドライブであるか確認することから始めましょう。ドライブルートに「Windows」「Program Files」「Users」が存在するドライブです。ほとんどの場合、CドライブかDドライブにマウントされているはずです。正常起動時のPCのCドライブが必ずCドライブになるとは限らないので注意してください。なお、ユーザーの設定とデータは、通常、「Users/ユーザー名」に存在します。

 「DIR C:」や「DIR D:」コマンドを実行してみれば、どのドライブであるか簡単に特定できるでしょう。また、「DISKPART」コマンドで「LIST VOLUME」を実行して確認する方法もあります。

 ちなみに、WinRE/WinPEのコマンドプロンプトは既定で「X:/Windows/System32」または「X:Sources」をカレントディレクトリとして開きます。XドライブはRAMディスクメモリの一部をディスクとして使用にロードされた、実行中のWinPEのシステムX:/Windowsを含むドライブです。ローカルPCのCドライブと勘違いしないようにしてください。

 PCが起動不能になる症状の1つに、起動途中のシステムエラーの発生があります。システムエラーとは「STOPエラー」や「ブルースクリーン」、あるいは「BSoD」Blue Screen of Death:死のブルースクリーンとして知られているものです。

 PCの起動途中でシステムエラーが発生し、再起動を繰り返すという状況に陥った場合、一瞬だけ表示される青い画面上の文字列を確認するのは、普通の人には不可能です。しかしながら、Windowsはシステムエラーが発生した場合には、自動的に再起動するのが既定の設定となっています画面6。システムエラーが発生してからでは、この既定の動作を変更するのは難しいと思っている人がほとんどでしょう。

 WinREやWinPEのコマンドプロンプトからであれば、システムエラー発生時の自動的な再起動を無効化できます。自動的な再起動の動作は、正常起動したPCの以下の場所にある「AutoReboot」というレジストリ値で制御されています。このレジストリ値を何とかして変更できれば、自動的な再起動を無効化できるのです。

キー:HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/Control/CrashControl

データ:0自動的に再起動しない/1自動的に再起動する、既定

 自動的な再起動を無効化する具体的な手順は次の通りです。

1WinRE/WinPEのコマンドプロンプトを開き、正常起動時のPCのCドライブを確認したら、そのドライブ上の「/Windows/System32/Config/SYSTEM」ファイルの存在を確認します。この「SYSTEM」ファイルは、問題のPCの「HKEY_LOCAL_MACHINE/SYSTEM」キーハイブを格納しているハイブファイルです。

2次にWinRE/WinPEのコマンドプロンプトで「regedit」と入力し、「レジストリエディター」を起動します。

3「レジストリエディター」が起動したら、「HKEY_LOCAL_MACHINE」を選択した状態で「ファイル」メニューから「ハイブの読み込み」を選択し、先ほど確認しておいた「/Windows/System32/Config/SYSTEM」を指定して、分かりやすいキー名例えば、「Offline」などを付けて読み込みます画面7。これで、「HKEY_LOCAL_MACHINE/<指定したキー名>」の下にオフラインのWindowsの「HKEY_LOCAL_MACHINE/SYSTEM」キーの配下にあるキーが読み込まれます。

4目的の「AutoReboot」レジストリ値は、「HKEY_LOCAL_MACHINE/<指定したキー名>/ControlSet001/Control/CrashControl」キーに存在するので、レジストリ値を開いて規定値として設定されている「1」を「0」に変更してください。「CurrentControlSet」キーは、Windows起動時に「ControlSet001」から生成されるもので、オフラインの時には「ControlSet001」に対して変更するところがポイントです。

5レジストリ値の編集が終了したら、読み込んだハイブのルート指定したキー名を選択して、「ファイル」メニューから「ハイブのアンロード」を選択し、「レジストリエディター」を終了します。

6その後、WinPEの「コマンドプロンプト」で次のコマンドを実行してPCを再起動します。

7再起動後のPCでシステムエラーが発生すると、青い画面の状態で停止するので、「0x0000007B」や「INACCESSIBLE_BOOT_DEVICE」のようなエラー番号やエラーメッセージを控えてください画面8。他の発生条件例えば「2014年6月のWindows Update」などと組み合わせてインターネットで検索すれば、同様の問題の発生報告や、原因、回避策が見つかるかもしれません。

 今回はシステムエラー発生時の既定の動作を変更しましたが、実は、Windows 7以前の[F8]キーの「詳細ブートオプション」前出の画面2やWindows 8以降の「スタートアップ設定」からは、もっと簡単にシステムエラー発生時の自動的な再起動を無効にすることができます。

 レジストリのオフライン編集のテクニックの例として、あえて面倒な手順を説明しました。なぜなら、レジストリのオフライン編集テクニックを覚えておけば、不正なレジストリ値が原因で発生するPCの起動トラブルを解決するのに役立つと考えたからです。

 PCの問題を引き起こしている原因については、イベントログから情報を得られる可能性があります。WinPEでは「イベントビューアー」Eventvwr.mmcは利用できませんが、イベントログが保存されている、次の場所にあるイベントログファイル拡張子.evtxにアクセスすることは可能です。標準的なWindowsログとイベントログファイルの対応は以下の通りです。

 これらのファイルを外部メディアやファイル共有にコピーし、別のPCの「イベントビューアー」から「保存されたログを開く」で開けば、イベントログに異常が記録されていないか調査することができます画面9。実は、先ほどのシステムエラーについても、システムログにソース「BugCheck」、イベントID「1001」のエラーイベントとして詳細な情報が記録されています。これは、システムエラーの設定で、「システムログにイベントを書き込む」が既定で有効になっているからです前出の画面6。

 正常に起動する別のPCを用意できない場合は、WinPEのコマンドプロンプトからイベントログファイルの内容を参照することができます。それには、「Windowsイベントコマンドラインユーティリティ」Wevtutil.exeを使用します。例えば、Dドライブにある「System.evtx」から新しいイベントをテキスト形式で参照するには、次のコマンドラインを実行します画面10。

wevtutil qe /lf D:/Windows/System32/winevt/Logs/System.evtx /rd:true /f:text

 膨大なテキストが出力されるので、コマンドラインの実行結果をファイルにリダイレクトコマンドライン > 出力先のファイル名して、WinPE付属の「メモ帳」notepad.exeで開くと検索ができて便利です。また、RAMディスクであるXドライブ上のパスは、一時的にファイルを保存するのに利用できます再起動すると消えます。

 さて次回は、正常起動しなくなってしまったシステムを復旧するために、WinPEやWinREのコマンドプロンプトからオフラインのWindowsイメージを操作して、特定の更新プログラムやサードパーティ製デバイスドライバーのアンインストール、Windowsの機能の無効化を行う方法を紹介します。

岩手県花巻市在住。Microsoft MVP:Hyper-VOct 2008 – Sep 2014。SIer、IT出版社、中堅企業のシステム管理者を経て、フリーのテクニカルライターに。マイクロソフト製品、テクノロジを中心に、IT雑誌、Webサイトへの記事の寄稿、ドキュメント作成、事例取材などを手がける。個人ブログは『山市良のえぬなんとかわーるど』。

Copyright ? ITmedia, Inc. All Rights Reserved.

コメントを残す

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