2016年11月3日木曜日

Windows8/8.1 セーフモード、スタートアップ: トラブルシューティングのための設定

今後色々なトラブルシューティングについてできるだけ平易な文章で解説していきたいと考えているのですが、Windows 8 以降、トラブルシューティングを行う上で絶対に忘れてはならない変更が行われているため、まずはその変更について書かせていただきます。

<この記事の内容>

Windows 7 以前に利用されていた起動方法でWindows 8 以降のオペレーティングシステムを起動できるようにする。具体的には、UEFI(旧BIOS)起動とセーフモード起動ができるようにする。

<対象となるトラブル・トラブルシューティング>

・問題が発生した時に備えて、セーフモードやBIOS画面(UEFI画面)で起動したい場合
msconfigなどを利用して起動方法に変更を加える場合

<結論:設定方法>

・コントロールパネル > 電源オプション > 電源ボタンの動作の選択 にある高速スタートアップの無効化。
・コマンドプロンプト(管理者)を起動し、コマンド「bcdedit /set {default} bootmenupolicy legacy」を入力して実行。戻す場合は「bcdedit /set {default} bootmenupolicy standard」と入力して実行。

このエントリーをはてなブックマークに追加

<記事ここから>

Windows 8 は起動が早い」などとかつて言われ、その点はWindows 10もおそらく変わっていないと思います。起動の早い要因に上げられるのが「実はシャットダウンしていない」ことです。

意外に知られていないのですがWindows 8 の高速スタートアップを有効にすると、Hibernation mode と呼ばれる「休止状態」に近い形で電源をオフにしたりオンにしたりしています。

ものすごくざっくりと、この休止状態とスリープそして従来のシャットダウンを説明させていただくと以下のようになります。

スリープ
メモリに格納している情報をそのままの状態でハードディスクなどの電源を落とし、起動時は格納されているメモリの情報をそのまま参照して起動する
メモリとかハードディスクとかについての説明はゆくゆく紹介させていただければと思いますが、分からないという方は読み飛ばしていただいて大丈夫です。
全て知らなくてもできることは多いですからw

休止状態
上のスリープではメモリに格納している情報をそのままの状態で不必要な機器の電源を落とすということをしていました。
メモリは情報を記憶したままにするためには定期的に電流を流しておく必要があるため、スリープでは消費電力を完全には抑えることができません。
そのため、休止状態ではメモリに格納していたデータをいったん電源が落ちても記憶し続けられるハードディスクに移動し、全ての電源をオフにします。
逆に休止状態からの復旧を行う場合、ハードディスクに移動したデータをメモリにそのまま移動し、利用していた状態で起動できるようにしています。

シャットダウン
従来のシャットダウンの場合、全てのプログラムが利用していたデータは一旦ハードディスクに記憶させられ、全ての電源をオフにします。
逆に起動した際にも、メモリ上に呼び出されていた情報が全くないところから起動を行いますので、Windowsが必要とするドライバ情報など全てをハードディスクから読みだすということを行います。

詳細についての説明がほしい方はこちらで確認ができます。

高速スタートアップを利用したシャットダウンでは、休止状態に近い状態になっているとお話ししましたが、実際には以下のようなことを行っています。

PCが起動している状態でメモリに格納されているデータを2つに分けて考えることができます。
一つはプログラムなどが利用しているごく一般に言われるデータと呼ばれるもの、もう一つはメモリ上に配置されているWindowそのものが利用しているデータです。この中にはOSが利用しているドライバ情報などが含まれています。

そして、高速スタートアップでは何を行っているかというと、一般に言われているデータ自体はハードディスクに「保存」を行い、Windows が必要とするメモリに格納された情報のみ、休止状態の形でハードディスクに「移動」して電源をオフにしています。

こうすることでハードディスクに移動し、起動時に呼び出す情報を少なくして起動をより速くするということをしているわけです。

このような起動方法を取ることでより早く起動することができるようにしているWindows 8 以降のオペレーティングシステム(OS)ですが、以下のようなトラブルやトラブルシューティングの際に問題になってきます。

1.休止状態(高速スタートアップでのシャットダウン)中に、USB接続している機器が別の接続口(ポート)に差し替えられてしまった場合
2msconfigなどのツールを使って起動方法を変更した際に問題が発生してしまった場合
3.起動自体に問題が発生した場合

1.については、例えばWindows 7 で休止状態中にポートの差し替えを行うとスタートアップ修復が動きだし、対応方法がわからないとPCが壊れたと勘違いされてしまいます。
スタートアップ修復が起動してしまってPCが使えないと呼び出されたりした時、セーフモードで起動するとドライバ情報の読み出しをしてくれるので、セーフモード起動できればこのケースはすぐに回復可能です。

2.については、「msconfigによるWindows高速化」の項目で詳述しますが実際にあるサービスを止めることでPC起動しなくなってしまうというトラブルが報告されていました。
止めるとトラブルになるものとしては、指紋認証などのログインと連携して動かしているサービスなどが多いです。

3.については運よくWindows 8 などが起動に異常を検知してくれれば良いですが、検知されなかった場合はかなりトラブルシューティングが難航してしまう原因になります。
高速スタートアップ起動を行うために、Windows 8以降のバージョンは専用の設定・トラブルシューティング画面を用意しています。
内容を見ればそこまで難しくはないのですが、従来の考え方とは一線を画してしまっていて、且つトラブルの時ぐらいしか見る必要がないのでPCに慣れている人でも戸惑ってしまうようです。


実際の設定方法は以下の通りです。

<高速スタートアップ無効化>

「コントロールパネル」を開きます。

「電源オプション」を開きます(表示方法を「小さいアイコン」にすると見つかります)。

「電源ボタンの動作の選択」を開きます。

「現在利用可能ではない設定を変更します」をいったん押し、高速スタートアップ起動を無効にします(下の画像の赤丸です)。
高速スタートアップの設定を行う画面


<セーフモード起動選択画面の表示:Windows 8シリーズの場合>

画面左下のスタートボタン(厳密にはスタートボタンではないですが)を右クリックし、その中の「コマンドプロンプト(管理者)」を左クリックします(Windows 8.1 の場合)

コマンドプロンプト画面で以下のコマンドを入力し、Enter押します。
bcdedit /set {default} bootmenupolicy legacy

【元に戻すコマンドは以下の通りです。】
bcdedit /set {default} bootmenupolicy standard

この設定を「legacy」にすることで、Windows が起動する前に「F8」キーを押すと詳細ブートオプション画面が出てきます。その中の、「セーフモード」を指定(キーボードの矢印キーで選択)して「Enter」を押すことでセーフモード起動ができます。

セーフモード起動については上の画像にある「ファイル名を指定して実行」などで「msconfig」と入力してシステム構成画面を開き、「ブート」タブにある「セーフブート」を選択して適用・再起動を行っても行うことができます。

この場合、選択画面が出てくるのではなく毎回問答無用でセーフモードで起動するようになってしまうため、起動時のトラブルシューティングとしてはあまり使えない気がします。
起動時にトラブルを起こしているので、まずシステム構成を開くことができないことを前提に言っているのですが・・・

ここで注意点として、というか久しぶりだったので検証のため自分のPCでやってみたのですが、
で・・・できないっ( ゚Д゚)

UEFIのブート周りの設定なのか?と思って色々調べてみたら、以下のサイトを見つけました。
How to Enable or Disable Legacy F8 Advanced Boot Options in Windows 10

このサイトの中で、
**************************************************
「If you have Fast Boot enabled in your UEFI firmware settings, then you will not be able to boot the Advanced Boot Options screen since you will not have time to press F8 before Windows starts.」

とあり、簡単に訳すと

「UEFI設定の中でFast Boot(高速起動)設定が有効になっていると、F8ボタンを押しても詳細ブートオプション画面は表示されない」
**************************************************
ということです。

では、ということで早速UEFI画面を見てみると・・・
ASRockのUEFI起動設定、高速起動設定の項目です

うーん・・・ ちゃんと「Disabled」になってる・・・

ひょっとして・・・と、思ってASRockの表示が出ている(EFIインストールをしてるとマザーボードメーカのロゴがWindowsの窓のマークの代わりに表示されます。いつかインストールの話を書くときが来たら紹介しますね)で「F8」を連打ではなく
長押しっ
したら表示されました(*´▽`*)

私の使っているマザーボードがタマタマ「F8」キーを使っていなかったのでできましたが、ひょっとして使っているマザーボードのシリーズだとできないかもしれません。そのようなマザーがあるかどうかも私は知りませんが・・・w

ノートPCなどのパソコンはこの辺りの設定を出荷時点で色々している可能性があります。UEFIの設定などを行う場合は、「自分が何をしたのか絶対に覚えておく」ことが必要です。
触ったことのない人はなるべく触らないように、もし触るならいちいち書き留めて、後で戻せるようにして下さい。「触りすぎて元に戻せなくなった・・・」という問い合わせがこれに限らず多すぎますwww
テクニカルサポートの人は頑張って直そうとしてくれると思いますが、そもそも自分のPCですから自分で責任を持って作業してください。それができないなら触らずに詳しい人に相談するのが無難と思います。

<所感>

未だに起動時間の高速化については、Windows 98から使っている私からするとなぜそこまでにこだわるのだろうか・・・?と疑問に思ってしまいます。
昔から考えると個々の部品が高機能になっていて、相当に起動や動作が早くなっているのでそこまでしなくても電源を入れて飲み物を用意している間に起動が終わっていると思うのですが、忙しい人が増えたんですかね・・・?

セーフモード起動に関してはさすがに毎回は面倒なので設定していませんが、僕のPCでは高速スタートアップは無効化していますこれは僕が組み立てた母親のPCも同様です。
理由は、トラブルがあった場合に対応しやすいという一点に限ります。
<上記取り消し線訂正:20161103>
「F8」キーを押さないと出てこないので、念のため設定しときました。ついでに言うと、管理者権限のコマンドプロンプトに「bcdedit」と入力して実行すると現在の設定が見れます。
<訂正ここまで:20161103>

僕の友人にはPCの起動時間がテレビみたいに早くないからいらいらするのでPCは使わないという人もいます。そこまで生き急いでどうするんだろう?とも思うのですが、やはりイライラしてしまうんでしょうねw

本日はこれまで。まじめな話に終始してすみませんでした。最後までお読みいただき、ありがとうございました。

このエントリーをはてなブックマークに追加

0 件のコメント:

コメントを投稿