tech.guitarrapc.cóm

Technical updates

Windows 11開発環境と高速スタートアップ無効

同じスペックのPCなのにWindows 11開発環境が人によって不安定だったりすることがあります。 過去多かったのが高速スタートアップ由来だったので、今回はこれを無効(あるいは有効に戻す)方法メモです。 高速スタートアップが有効で不安定というのは割と悲しいのですが、2025年現在もたびたび見かけてより悲しいです。

高速スタートアップとは

高速スタートアップかコールドスタートアップかの起動処理の違いはMicrosoft Learnに記載があります。

コールド スタートアップ中、ブート ローダーは、Windows カーネル ファイルのセクションをメモリに読み込んでリンクすることで、カーネル メモリ イメージを構築します。 次に、カーネルはコア システム機能を構成し、コンピューターに接続されているデバイスを列挙して、それらのドライバーを読み込みます。

これに対し、高速スタートアップでは、休止状態ファイル (Hiberfil.sys) をメモリに読み込むだけです。 高速スタートアップでは、コールド スタートアップよりも大幅に所要時間が短縮されます。

ref: 休止状態からのウェイクと高速スタートアップの区別 - Windows drivers | Microsoft Learn

ポイントはドライバーの読み込みが異なることで高速化しているということです。起動ドライブがSSDやNVMeならWindows起動時間や起動後の各種スタートアップでファイルI/Oが問題にならないため、高速スタートアップの意義がそもそもありません。

また、高速スターアップは過去問題があったのも事実です。例えば、ドライバーごとに高速スタートアップ対処できているかに依存しますし、Windows10 21H1より前に「高速スタートアップ有効だと更新プログラムがインストールされない」場合があるケースも公開されています。Redditで愚痴もそこそこあります。1

Is Fast Startup bad or good? : r/Windows11 | Reddit

個人的にはDocker Desktop for Windows 2.x.xでいくつか高速スタートアップ由来の問題があったことから、Docker Desktopを使うなら高速スタートアップは無効がいいと考えています。

高速スタートアップを無効/有効にする

現在の設定はWindowsの電源オプションから確認できます。残念ながらWindows 11 24H2はSettings > System > Powerから設定できないので、コントロールパネル経由でアクセスします。

Sttings > Control Panel > Hardware and Sound > Power Options > Choose what the power buttons do > Change settings that are currently unavailable

有効と無効で次の表示になります。

有効 無効
image image

コマンドで無効・有効にする方法は次の通りです。sudoが入っていると、ターミナルの起動しなおしが不要でいいですね。

# 無効 (管理者ターミナルで実行)
$ powercfg /h off
# 有効
$ powercfg /h on

# 無効(sudoがある)
$ sudo powercfg /h off
# 有効
$ sudo powercfg /h on

レジストリで設定する場合、Windows再起動が必要です。

# 無効
reg add "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Power" /v HiberbootEnabled /t reg_dword /d 0 /f
# 有効
reg add "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Power" /v HiberbootEnabled /t reg_dword /d 1 /f

まとめ

個人開発環境は自分で管理することになるので、設定の意味があるかわかっていると扱いやすいですね。

高速スタートアップはHDDなら意味があったと認識していますが、PCのハードウェアから自動的に判断してくれるといいなぁと思いました。ただ、いわゆるユーザーのハードウェアに応じた最適化は嫌がられたり、旧PCからそのまま移行する人にはトラブルになりそうで困りそうですね。この意味では、Windows > Settings にOptimize settings for my hardwareという設定やヘルパーがあるといいなぁと思いました。仮にそのオプションがある場合、どのような設定がどう変わるのか分かるのは必須だとも感じます。


  1. Redditをもとに判断するのもアレなので、あくまで参考程度にしてください。