ノートパソコン起動時の startup.nsh エラーを解消する方法
startup.nshエラーは、OSがプリインストールされていないノートパソコンや、Windowsの再インストールに失敗した際によく発生します。OSの代わりに内蔵のUEFI Shellが起動してしまう問題です。このエラーを解消するには、起動順序の修正、シェル自体の無効化、またはWindowsブートローダーの修復が必要です。
方法1: UEFI ShellでEXITコマンドを使用する
これは、OSが正常にインストールされているにもかかわらず、起動優先順位が乱れ、誤ってUEFI Shellが最初に読み込まれてしまった場合の一時的な解決策です。このコマンドはシェルを終了させ、起動リスト内の次のデバイスに制御を渡します。
- 画面に
Shell>プロンプトが表示されるのを待ちます。 exitコマンドを入力し、Enter キーを押します。- システムは次の起動デバイスを開始しようと試みます。Windowsが起動した場合は、次回の電源投入時にエラーが再発する可能性が高いため、以下の恒久的な解決策に進んでください。
方法2: BIOSで起動優先順位を変更する
問題の主な原因は、内蔵UEFI Shellが起動キューの最初に設定されていることです。OSがインストールされたディスクを最優先に設定し、UEFI Shellはリストの最後尾に移動させるか、完全に無効化する必要があります。
- ノートパソコンを再起動し、BIOS/UEFI設定に入ります。メーカーロゴ表示中に、Delete、F2、F12、またはEscキー(デバイスによって異なります)を押してください。
- BIOSインターフェース内で、起動に関するセクションを探します。通常、Boot、Boot Priority、またはBoot Sequenceという名前です。
- 起動デバイスのリストから、システムドライブを示す項目(例: Windows Boot Manager、P0: ドライブ名、UEFI: ドライブ名)を見つけます。
- その項目をリストの一番上に移動します。通常、+/-キーまたはF5/F6キーを使用します。
UEFI ShellまたはBuilt-in EFI Shellという項目を起動キューの最後尾に移動します。- F10キーを押し(またはExitタブに移動し)、変更を保存して再起動を確認します。
方法3: BIOS設定でUEFI Shellを無効にする
シェルを完全に無効にすることで、いかなる状況でもシェルが起動しなくなります。このオプションは、最新のマザーボードのほとんどに存在します。
- 起動時にDelete、F2、またはF12キーでBIOS設定に入ります。
- Boot、Advanced、またはSecurityセクションを探します。
- 内蔵シェルに関連するパラメータを見つけます。名前は
Launch EFI Shell from filesystem device、Built-in EFI Shell、またはEFI Shell Supportなどです。 - このパラメータの値をEnabledからDisabledに変更します。
- F10キーを押すか(またはSave & Exitを選択)、設定を保存して再起動を確認します。
方法4: Windowsブートローダーを修復する
上記のいずれの方法でも解決しない場合、OSのブートローダーが破損している可能性が高いです。修復には、WindowsのインストールUSBメモリが必要です。
- インストールメディアをノートパソコンに接続し、そこから起動します。
- Windowsセットアップの最初の画面で次へをクリックし、左下にあるコンピューターを修復するを選択します。
- 次の画面でトラブルシューティング、詳細オプション、コマンドプロンプトの順に選択します。
- コマンドプロンプトウィンドウで、以下のコマンドを順番に実行し、各コマンドの後にEnterキーを押します。
diskpart list disk select disk 0 (システムがインストールされているディスクの番号を指定します。ディスクが1つしかない場合は通常0です) list volume exit
diskpartを終了したら、以下のコマンドでブートローダーを修復します。
bcdboot C:\Windows (ここでCはWindowsがインストールされたパーティションのドライブ文字です。前の手順で表示されたボリュームリストのサイズを参照して特定してください。普段見慣れた文字と異なる場合があります)
ブートファイルの作成が成功したというメッセージが表示されたら、コマンドプロンプトを閉じ、インストールメディアを取り外してノートパソコンを再起動します。
方法5: EFIパーティションから startup.nsh ファイルを削除する
startup.nshファイルは、UEFI Shellの自動起動スクリプトです。これが隠しシステムパーティションに存在すると、起動のたびにシェルが実行されます。このファイルを削除することで、問題を直接解決します。
- 方法4の1~3項で説明したように、Windowsインストールメディアから起動し、コマンドプロンプトを開きます。
- コマンドプロンプトで、
diskpartユーティリティを起動します。 list diskコマンドでディスクの一覧を表示し、システムディスクを特定します。select disk 0(0は該当する番号に置き換えてください)でそのディスクを選択します。list partitionコマンドでパーティション一覧を表示します。- サイズが100~500MBでSystemタイプの小さなパーティションを見つけます。
select partition N(Nはそのパーティション番号)で選択します。 - そのパーティションに、
assign letter=Zコマンドで一時的なドライブ文字(例:Z)を割り当てます。 exitコマンドでdiskpartを終了します。Z:と入力して、このドライブに移動します。dirコマンドでルートディレクトリの内容を表示します。startup.nshファイルがここにある場合は、del Z:\startup.nshで削除します。- ルートにファイルがない場合は、ブートフォルダに移動して削除します。
cd EFI\Boot dir (ファイルが存在することを確認) del startup.nsh
diskpartコマンドで再度diskpartを起動し、該当ボリュームを選択し(select volume Z)、remove letter=Zコマンドでドライブ文字を削除し、パーティションを非表示に戻します。
作業を終了し、コンピューターを再起動します。
方法6: UEFI Shellコマンドで起動エントリを設定する
UEFI Shellのコマンドラインから、起動エントリを手動で管理(作成、削除、順序変更)できます。これは、BIOSインターフェースで目的の結果が得られない場合の代替設定方法です。
UEFI Shellが起動し、Shell>プロンプトが表示されるのを待ちます。
現在の起動エントリを表示するには、以下のコマンドを入力し実行します。
bcfg boot dump
コマンドの出力を確認します。bootmgfw.efiへのパスを持つWindows Boot Managerがシステムのブートローダーです。
Windowsのエントリをリストの先頭にするには、その現在の番号(例: 0002)を特定し、移動コマンドを実行します。
bcfg boot mv 0002 0
( 0002は実際のエントリ番号に置き換えてください)
Windowsエントリが存在しない場合は、以下のコマンドで手動追加します。
bcfg boot add 0 FS0:\EFI\Microsoft\Boot\bootmgfw.efi "Windows Boot Manager"
( FS0の代わりにFS1など、別のボリュームを指定する必要がある場合があります。mapコマンドでボリュームを調べてください)
不要なエントリ(UEFI Shell自体など)を削除するには、以下のコマンドを使用します。
bcfg boot rm 0001
( 0001は消去したいエントリの番号に置き換えてください)
すべての変更を加えた後、resetコマンドでノートパソコンを再起動します。
方法7: BIOSのリセットとCMOSのクリア
ファームウェア設定を工場出荷時状態にリセットすることで、問題の原因となった誤った設定を解消します。この操作は安全で、ディスク上のユーザーデータには影響しません。
- ノートパソコンを再起動し、BIOSに入ります。
- 設定リセットのオプションを探します。通常はメインタブかExitセクションにあり、Load Setup Defaults、Load Optimized Defaults、Restore Defaultsなどと呼ばれます。
- このオプションを選択し、確認して、終了時に変更を保存します。
- ソフトウェア的なリセットが利用できない場合は、ハードウェア的なCMOSクリアを実行できます。ノートパソコンの電源を完全に切り、ACアダプタを外します。
- 底面カバーを開け、マザーボード上の丸く平らなボタン電池を見つけます。ソケットから慎重に取り外します。
- 3~5分間待ってから電池を元に戻し、カバーを閉じてノートパソコンの電源を入れます。
方法8: UEFI設定に従ったWindowsの正規インストール
誤ったシステムインストール(GPTディスクへのレガシーモードでのインストールなど)が、エラーの根本原因であることが多いです。正しいパラメータで再インストールすることで、UEFIと互換性のある正しいブートローダーが確実に作成されます。
- UEFIモードで動作するように設定されたWindowsインストールUSBメモリを作成します。これにはRufusなどのツールを使用できます。ISOイメージを選択し、「パーティション構成」でGPT、「ターゲットシステム」でUEFI(非CSM)を指定します。
- ノートパソコンのBIOSに入り、起動モードに関する設定を探します。パラメータ名はBoot Mode、UEFI/Legacy Boot、CSM Supportなどです。
- モードをUEFI Only(またはUEFI)に設定し、CSMまたはLegacyパラメータをDisabledにします。
- インストール中の競合を避けるため、Secure Bootを一時的に無効化します。
- 設定を保存して再起動します。
- 作成したUSBメモリから起動します(起動メニューでは、
UEFI:というプレフィックスが付いて表示されるはずです)。 - Windowsセットアップでインストール先パーティションを選択する際、ディスク上の既存のパーティションをすべて削除し、「未割り当て領域」の状態にします。
- この未割り当て領域を選択し、次へをクリックします。セットアッププログラムがEFIシステムパーティションを含む必要なパーティションを自動的に作成し、ブートローダーファイルを正しく配置します。