【やはり危険?】高速スタートアップとfirstboot【2024/2/19】
この記事を読むのに必要な時間は約 29 分です。
目次
この記事について
この記事は、Windowsで無用なトラブル(しかも重大なものも多い)を防止するには「高速スタートアップとfirstbootは極力無効にしておいたほうが良いのではないか?」という記事です。
従前から、このブログではトラブルの防止と、トラブル時の対応を楽にする以下の設定を推奨していました。(操作の実行は自己責任となります)
・高速スタートアップ無効(手法としては、cmdから休止ファイルの作成を停止するのがおすすめ)
・M/B設定でIntel/AMDのfirstbootを無効
・NTFSのログファイルシステムのLFSをVer1.1に固定する。
・「CSM」と「セキュアブート」の組み合わせに注意・・・更にAUTOは利用せず、手動で確実に設定する
・起動時に起動オプションを表示させる
今回、知人のPCで致命的なBSoDが発生し、その原因がfirstboot(ともしかすると高速スタートアップも)でしたので、改めてこのブログで警鐘を鳴らしたいと思います。
なお、高速スタートアップとfirstboot由来で「障害が発生する原因となる可能性が大きくなるOSの設定やPC環境」はよくわかっていません。
ただ、間違いなく言えるのは「起動時間を数秒短縮するために何でもかんでも省略するのは、少なくともあまり良いことではない」ということでしょうね。(PC環境にもよりますが、システムがSSDの場合に短縮できるのは3~15秒程度と言われています)
それが、起動不能やファイル消失などのトラブルの発生源になってしまっては元も子もないです…。
WinUpでドライバーの更新やセキュアブートなどBIOSに関する更新があった場合や、自分で機器ドライバーやファームウエアを更新した場合に発生することが多いのですが、誰にでも発生するということではありません。そのPCの(OS)環境やパーツ構成、M/BなどのファームウエアのVer.(使っているOS、例えばWin11の23H2に対応しているかどうか)で違ってくるということでしょうね。
初版・・・2024/2/19~23 記事作成
第2版・・・修正。重要な注意事項を追記しました。
第3版・・・友人のPCで発生したfirstboot由来と考えられるふぐ氏の実例を追記しました。
今回発生した事例
Windows 11 をシャットダウンから起動しようとすると致命的なエラーである「エラーコード0xc0000001」でブルースクリーンになり、一旦修復しても繰り返してしまうというトラブルが発生しました。
原因はブートディスク(C:)が認識されなくなることだったのですが、今回の誘引は高速スタートアップとfirstbootが有効になっていたことでした。
なぜ、そのようなことが起きるのかというとシャットダウン時からのPC起動時に「保存しておいた前回の起動状態を再構成する機能」と「PC起動のポストタイム時(WINマークが出る前)に構成パーツの読み込みを省略する機能」であるためと考えられます。
頭の隅にこのことが入っていない(事例を知らないと)と解決が非常に困難になるケースとなります。
BIOSでSSD(C:)の接続を確認してみたところシステムディスクが認識されていない状態でした。
第一に、SSDの故障かSATAケーブル周りのトラブルを疑い、SATAケーブルを交換して見ました。
BIOSでSSDを認識するようになりましたので、その後再起動すると無事OSが立ち上がりました・・・が、シャットダウンして起動するとものの見事にブルースクリーン再発生です。(また、BIOSで認識しなくなってしまいました)
今回の事例では、「高速スタートアップとfirstbootが有効」ということが原因でした。(原因がSATAやSSD周りの故障の場合もちろんあります)
高速スタートアップとfirstbootの双方を無効化することで解決し、障害が繰り返すこともなくなりました。
その他発生の可能性がある事例など
今回は、SSD(C:)を見失ってBSoDが発生しOSが起動しなくなるという事例でしたが、「高速スタートアップとfirstboot有効状態」では以下のような不具合や不都合の発生源になりえると言われています。
無効と有効で起動時間は3~15秒程度しか違いません。現状、ほとんどの方のシステムストレージはSSDになっていて起動時間を気に病むことはないと思いますので、高速スタートアップなどの 「万が一の障害発生源となるような設定」は避けておくべきと考えます。
障害の事例:
・WinUp後や機器ドライバー、ファームウエア更新後などにブルースクリーンになる。
・OSは起動するが、ログオンしているユーザーが仮プロファイルになってしまう。
・同様に、再起動ループ、WinUpに失敗して巻き戻しが発生する、WinUpで導入したKBが繰り返し表示されるようになる。
・PCのパーツやUSB接続の機器などを見失う。
・SSD/HDDがエクスプローラーから消えてしまう。
・利用していない場合にビットロッカーの回復キーを求められる、ビットロッカーを利用していて問題がないのにもかかわらず回復キーを求められる。(参考情報:【最も厄介な障害】WinUp後BitLockerが勝手に有効になりログインできなくなるケースの原因と防止策【考察】)
・Windows OSの認証が消えて、再認証が必要になってしまう。
・iPhoneやアンドロイドスマホなどがPCに認識されず、PC側からファイルなどを見ることができなくなる。(USB接続の不調)
・M/Bのファームウエアアップ後に起動しなくなる、M/Bのファームウエアアップができなくなる。
※ このケースは、AMD M/B付属のユーティリティーからBIOSファームウエアの更新ができなくなる原因の一つではないかと考えられます。更新ファイルがあるのにもかかわらずユーティリティーからのBIOS更新ができなかったり更新がないと表示される方は、高速スタートアップとfirstbootを無効にしてみてくださいね。
・もちろんのこと、ファイル消失の原因ともなります。高速スタートアップ有効状態で安全な取り外しを経由しないUSBストレージの取り外し、省電力の復帰に失敗した状態での再起動時の内蔵ストレージのファイルやパーティションの消失に繋がります。(参考情報:【どこに行ったの?】消失したファイル・フォルダを回復!!!【Win OS】)
firstboot有効時に手元で確認できた不具合の実例
先日、友人宅のPCでモニタに画面が映らない(Winの起動音は鳴る)という不具合が発生しました。グラフィックボードの故障だったのですが、以下のような現象が発生しましたので報告しておきます。
なお、firstboot有効時にどのようなパーツの読み込みが省略されているのかということは、一般に公開されていることはまずありませんし、お使いのPCによっても異なる可能性があります。
ただし、「グラフィックスボードのような基幹部品の読み込みでも障害が発生するのだ」ということは記憶にとどめておいたほうが良い気がしますし、firstbootは無効にしておいたほうが良いということの左証になるのかなと感じます。
More:
firstbootはビットロッカーの回復キーを突然要求される事象やWinのOS認証が突然無効になり再認証を求められる事象の原因とも推定されています。
※ 詳細は 【最も厄介な障害】WinUp後BitLockerが勝手に有効になりログインできなくなるケースの原因と防止策【考察】 を御覧ください。
簡単に言うと「Winが認証されている基準を判定している累積点数システムのようなものに引っかる」ことで引き起こされます。
この点数制度はM/Bなどのように一発でアウトになるものと、パーツの変更など一定期間の累積点を合計することでの基準、一定期間内でのOS再インストールの回数制限などで構成されています。
firstboot有効状態では変更が反映されていなかったパーツがある場合に、M/Bのファームウエアに関する変更(セキュアブートに関するものなど)が含まれたKBの適用やWinの個人設定などを最初からやり直すようなアップグレード(に相当する動作のKB)、M/Bの設定変更時の色道やそのほか何らかの理由によりパーツ構成を一から全て読み込み直す動作が行われた際に「一度に同時に複数のパーツが変更されてものとして処理されて累積単数違反と判定されてしまう事態」になることで、バツのPC上でOSが起動されたと誤認してしまうのです。
この点からもfirstbootは無効にしておくことをおすすめします。
行った作業
故障原因の特定と修理用パーツ到着までの代用部品として、グラフィックボードをGTX1050TiからGT710に交換。
発生した事象
1)HDMI(メイン)とDVD(サブ)のマルチモニタ環境で、ポスト画面がサブ側のDVD接続モニタに表示されるようになった。
2)グラボ交換後、ブラウザで表示されるサイトのテキストの色が変になった。(一部の文字が、青色や茶色に表示されてしまう)
解決を試みた
1)グラフィックスドライバーを一旦削除してクリーンインストール ⇒ 直らない
2)もしやと思いBIOSを確認するとfirstbootが有効だったので無効に変更して再起動 ⇒ ポスト画面はHDMIのメインディスプレイに表示され、文字の変色も直った
推定される結論
デバイスマネージャー上ではグラボが変更されたことを認識されていても、実際にM/B機能でのグラボ制御は交換前のGTX1050Tiを基準に動作していたと考えれれる。
ちょっと怖いですし、障害発生源となってしまうのは困りますよね。今回のことを鑑みるとグラボを取り替えたら画面が真っ暗などという障害の発生源にもなりそうです。
重要な注意事項
この記事の設定変更事項の中で「CSMとセキュアブートの組み合わせに注意・・・更にAUTOは利用せず、手動で確実に設定する」となるPCは下記の条件を満たすPCとなります。
なお、古め(Win8.1対応以前)のパーツを利用している・MBRインストールである・Win8.1より前のOSからアップグレードを繰り返している方は下部の注意事項を参照してくださいね。
CSMとセキュアブート設定の固定対象となるPC
・Windows10以降のOS(1903)以降にクリーンインストールされていることが望ましい)であること。
・Win8.1よりも前のOSからアップグレードを繰り返していないこと
・OSインストールがUEFI形式であること
・古め(Win8.1対応以前)のパーツを利用している(MS新基準のドライバー署名がないパーツやソフトウエアを利用している場合となります)
・M-2接続のSSDを利用している場合は、M/BにM-2用のスロットが搭載されていること。(PCIeの増設ボード利用でM-2 SSDをシステムドライブにしていいる場合はおすすめしません) ⇒ 適正なドライバーが導入されていない場合にシステムドライブを見失い、OSが起動しなくなる場合があります。ただし、OSが破損しなくなったりするのではありませんので、BIOS設定をもとに戻せば通常に起動します。
この三点を満たしていればほぼ問題はありません。
CSMとセキュアブート設定はそのまま(手動固定ではなく自動のまま)にしておいたほうが無難なPC
・古め(Win8.1対応以前)のパーツを利用しているPC
・UEFIインストールではなく、MBRインストールであるPC
・Win8.1より前のOSからアップグレードを繰り返しているPC
実はこのようなPCでは、CSM有効とセキュアブート無効の組み合わせでない場合は起動しません。
1つ目の理由は、どういう訳かWin10のOSかつWin7時代からアップグレードを繰り返しているPCの中に稀に当該しないものがあるみたいなためです。
2つ目の理由は、Win10(1903)以降のOSでドライバー署名が厳格になったことです。基本的にMS新基準のドライバー署名がないパーツやソフトウエアは動作しなくなりました。
それでは困るという人もいますので、OSのアップグレードを繰り返している方の後方互換性を担保するために「 無署名(新基準の署名がない)ドライバーの自動例外登録 」という仕組みが作られました。
この仕組みで「OSアップグレード前に利用していたパーツのドライバー」は、無署名でも利用でき、パーツが正常に動作するという仕組みにしたのです。
CSMとセキュアブート設定を変更すると無署名(新基準の署名がない)ドライバーの自動例外登録が全く無効になってしまうことや、一部無効になってしまうことがあるようですので、対象になると思う方はCSMとセキュアブート設定の箇所は変更しないでくださいね。
障害を防止するための設定方法
それではPCで無用な障害の発生を避ける目的で設定する項目の実際の操作を見ていきましょう。
※ システムディスクがSSDであることを前提としています。HDDの方で起動や動作が極端に遅くなる場合などは高速スタートアップは有効にしたままでLFS Ver.1.1固定だけを行ってくださいね。
実行を強く勧める項目:
・高速スタートアップ無効(手法としては、cmdから休止ファイルの作成を停止するのがおすすめ)
・M/B設定でIntel/AMDのfirstbootを無効
・NTFSのログファイルシステムのLFSをVer1.1に固定する。
・「CSM」と「セキュアブート」の組み合わせに注意・・・更にAUTOは利用せず、手動で確実に設定する
・起動時に起動オプションを表示させる
必須ではないが、実行しておきたい項目:
・インストールパーティション(容量)の最適化
・ストレージ書き込みキャッシュの無効化
・各種省電力設定の無効化
・できる限りユーザーフォルダなどの特殊フォルダは場所を移動しない
高速スタートアップ無効
設定の電源オプションからでも変更は可能なのですが、 このブログでは cmd から 休止ファイルの停止をすることをおすすめしています。実のところ、このやり方のほうが汎用的で、一石二鳥と言うか 休止ファイルが作成されなくなりますので 毎回 SSD に書き込みが起こり 劣化することを防ぐ 形にもなりますし、 システムドライブの容量のスリム化にも貢献します。(休止ファイルは、通常6~10GB程度のサイズを消費しています)
なお、この方法を使うと電源オプションの起動オプションから高速スタートアップと休止の項目が消えることになり、大きなWinUpのときに高速スタートアップ有効状態が復活してしまうケースも減少します。
手順:
非常に簡単です。
コマンドプロンプト(管理者)を管理者として実行し、「 powercfg.exe /hibernate off 」と入力するだけです。(もとに戻す場合は、offのところをonに変更します。)
タスクバーの検索窓に cmd と入力 ⇒ コマンドプロンプトが表示されますので右クリックから管理者として起動する ⇒ 「 powercfg.exe /hibernate off 」と入力してエンターキーを押す
これで完了しますのでexitと入力して、ウインドを閉じます。
この操作終了後に電源オプションを確認すると(成功していれば)高速スタートアップと休止が消えている状態になります。また、C:の使用容量も休止ファイル分の5~10GB程度減ります。
高速スタートアップを電源オプションから無効にする場合の操作
上記の方法が不安という方は、以下のページを参考にしてくださいね。
M/B設定でIntel/AMDのfirstbootを無効
上の画像はMSIのものですが、ほぼ各社共通で以下のような操作になります。
M/Bの設定を開く ⇒ bootないしは起動のタブを開く ⇒ 項目の中にfirstboot(AMD firstbootまたはメーカー独自の〇〇firstbootとなっているものもある)がありますので、disable(無効)に切り替える ⇒ 設定を保存して終了します。
よくわからないという方は、PCやM/Bに付属する説明書を見てくださいね。
NTFSのログファイルシステムのLFSをVer1.1に固定
あくまで自己責任での操作です!!!
操作の前に:(複数台のストレージがある場合)
・外付けストレージ、USBメモリスティック、SDカードなどを安全な取り外しでLFS1.1の状態にして取りはずす。
・完全シャットダウンしてLFSを1.1にダウンし、内蔵ストレージをシステムドライブ1台だけにする。
・以下の操作完了後に1台ずつ順次接続し、起動状態でLFS1.1になっていることを確認していく。
上記に留意して、ブログ内の記事 【外付けHDD】新たなファイル消失問題【内蔵HDDも危ない?】 中段ぐらいにある「LFSの固定方法」の項目を参考にNTFSのログファイルシステムのLFSをVer1.1に固定します。
「CSM」と「セキュアブート」の組み合わせ
今後(Win11以降のOS)はセキュアブート無効状態ではOSをインストールすることもできなくなりますので、組み合わせとしては「 セキュアブート有効 + CSM無効 」の状態以外は設定することはなくなります。
CSMは古い規格のパーツを動作させる仕組みと思っていただくと良いのですが、完全に切り捨てられるという形になります。
M/Bの世代によってはこの設定さえもない場合も出てくるでしょう。
ここで注意したいのは、ほとんどのM/Bではこの設定項目がある場合にデフォルトではAUTOになっていることです。
AUTOになっていると、なにかのきっかけでOSが起動しない組み合わせになってしまうことがあるのです…。
防止するためにM/Bの設定から、AUTOは使用しないようにして、明示的に手動で「セキュアブート有効 + CSM無効」にしておいてくださいね。
起動時に起動オプションを表示させる
Windows OSが起動しなくなるなどのトラブルが発生したときに、セーフモードやスタートアップ修復、WindowsUpdateしたKBの削除やシステムの復元を実行したいという場合に、起動時のキーボード操作で回復環境に入るのは意外なぐらいに難しいです。
そのため、毎回の起動時にメニューが表示されるようにしておくことをおすすめします。
設定をすると毎回の起動時にスタートアップ設定が表示され、各種の操作に簡単に入ることができるようになり、トラブル時など大変楽に修復が実行できるようになります。
ただし、この画面でエンターキーを押下してOSを立ち上げるという一手間が増えてしまうのが欠点です…。それでも、設定しておいたほうが良いかと考えています。
これも設定は簡単で、cmd(管理者)を起動して、「 bcdedit /set advancedoptions on 」を実行するだけです。(もとに戻す場合はonをoffに変更して実行します)正常に実行できましたら、exitでcmdを終了してくださいね。
インストールパーティション(容量)の最適化
※ できる方、操作の意味やメリットを理解できる方向けの操作です。
過去にもありましたが、Windowsをインストールする際に自動で作成されるシステム用のパーティションの容量が不足することで発生する不具合(WinUpができなかったり巻き戻される、更新がいつまで立っても終わらないなど)を防止するための処理です。
最低限 【WinUp個別】誰でも簡単にWin10(22H2)のKB5034441のエラーの解決【2024/1/11】 を参照して、回復パーティションの容量は拡大しておくと良いでしょう。
クリーンインストールをすることがあれば、記事中で紹介している手法で(自動ではなく)手動でインストールパーティションを設定するのも良いかと思います。
ストレージ書き込みキャッシュの無効化
※ できる方、操作の意味やメリットを理解できる方向けの操作です。
Windowsのデフォルトでは、一旦データをキャッシュに保存して、後ほど実際の書き込みを実行するようになっています。
この設定ですと、突然の電源断やBSoDの発生などの際にキャッシュ上にあるデータが消えてしまいます。多少ではありますが、障害発生時のデータ保護のために書き込みキャッシュを無効化します。(現在のストレージは高速なため、書き込み動作の遅延は体感的にはほぼありません。ある意味過去の遺物的な機能です。)
各種省電力設定の無効化
※ できる方、操作の意味やメリットを理解できる方向けの操作です。
電源オプションの詳細な電源設定で各種省電力設定の無効化を行います。データのロストやUSBの不具合を防止する目的です。
SSD/HDDのデータロストはLFS1.1固定でほぼ防止できるのですが、PC利用中にデータドライブなどが省電力に入ってしまっている場合に、シャットダウン時の省電力からの復帰に失敗する場合が稀にあります。(パーツが古いなどの場合、構成によっては高頻度でおきます)
SSD/HDDが突然オフラインになってしまったり、高速スタートアップ有効状態ではデータまるごとの消失なども発生しかねないため、それを防止します。
1)コントロールパネルを開き、電源オプションに進む。
2)プラン設定の変更を押下して進んだ画面で、詳細な電源設定の変更をクリックする。
3)詳細設定でハードディスクの電源を切るをなしに、またUSBのセレクティブサスペンドの設定を無効にする。
4)PCI増設ボードでSATA増設ボード、M-2のSSD、USB増設ボードなどを利用している場合はリンク状態の電源管理もオフにする。
5)最後に適用 ⇒ OKと進み設定を保存する。
できる限りユーザーフォルダなどの特殊フォルダは場所を移動しない
※ できる方、操作の意味やメリットを理解できる方向けの操作です。
こちらに関しては、以下の三点を留意してほしいということです。
・できる限りユーザーフォルダなどの特殊フォルダは場所を移動しない。
・環境変数は無用に変更しない。
・RAM Diskは利用しない。
この三点の中でも、ユーザーフォルダをC:以外のドライブに移動している方は一定数いるのではないでしょうか。
OSの障害時にデータに影響を及ぼさないためでしたり、C:のストレージのの容量が小さい、C:のSSDの空き容量を大きく取りたいなど様々な理由があるのでしょうが、不都合が発生してしまうことも少なくないのです。
大きなアップデートやアップグレード、修復のためのリプレースインストール、次の世代のOSへの変更(Win10からWin11など)の際にもう一度C:に2つ目のユーザーフォルダがセク性されてしまい二重になる、OneDrive上でのファイルが二重になったり同期の動作が思わぬ不具合を被るなどの事象が発生する場合があります。
そのため、ユーザーフォルダの移動はしないようにしておいたほうが無難です。
大容量のファイルなどをC:以外におく場合は、独立した通常のフォルダに保存したほうが無難です。
Onedriveやファイル履歴では、その作成したファイルを同期対象や履歴対象に追加する形にしてくださいね。
参考情報サイト
記事内の情報や用語を詳しく知りたいという方は、以下のページを参考にしてみてくださいね。
※ 「Windowsの以前のバージョンとのWindows 8(ブログ主注釈:Win8以降のOSです。Win10/11も同様の動作です。)ボリュームの互換性の考慮事項」という文書で、高速スタートアップ時の動作の詳細や障害を引き起こす要素が書かれています。
終わりに
手間がかかることではあるのですが、例示したような障害が実際に発生してしまうと比較にならないほどの手間や苦労が発生します。
あなたもこの記事で紹介している「実行を強く勧める項目:」にあるものは、ぜひ設定しておいてほしいと思います。
Windows(とWindows Update)にかかる重大な不具合や思わぬ障害は忘れた頃にやってきます。
そんなときに困らぬよう備えておいてくださいね。
今回の記事は以上です。