NTLDRはNT Loaderの略で、x86 および x86-64 プロセッサ (AMD64 および Intel 64) 上の Windows 2003、XP、2000、NT 4.0 および 3.x 用のブート ローダーの名前です。一方、現在のバージョンの Windows (Vista) では、この機能は使用されなくなりました。
NTLDR を使用すると、複数のMicrosoft Windowsシステムが同じマシンにインストールされている場合に、どのシステムを起動するかを選択できます。一般に論理ディスクC: として考慮されるのは選択されたパーティションですが、ブート ディスクとシステム ディスク間の分離はNT およびその後継のレベルで別の場所に提供されます。
NTLDR 構成ファイルboot.ini はASCII 形式です (GRUB で使用される構成ファイルとよく似ています)。
ブートプロセス
Windows NT の起動プロセスを参照してください。
NTLDR はシステムを保護モードにし、x86 ファミリ プロセッサに固有のテーブルを管理します。
- メモリを管理するための GDT (グローバル ディスクリプタ テーブル)
- IDT (割り込み記述子テーブル)。割り込み (ソフトウェア割り込みおよび例外) を制御できます。
NTLDR は、Windows NT カーネル(通常: Ntoskrnl.exe )、 hal.dllファイル (ハードウェア抽象化層)、 ntdetect.com も読み込みます。それから彼は核心に移ります。

boot.iniファイル
boot.ini経由で NTLDR を構成するためのグラフィカル ツール
NTLDR は、 boot.iniファイルを使用して構成されます。次のツールのいずれかを使用して変更できます。
- MicrosoftのMsConfig.exe [ 1 ]グラフィカルユーティリティ
- コントロール パネルのシステム項目、 [詳細]タブ、起動および回復から使用します。
- 任意のテキスト エディタ (Wordpad.exe または NotePad.exe)。この場合、構文に誤りを犯してはなりません (初期化ファイル形式を考慮してください)。重大なエラーが発生すると、IT 専門家以外は起動できなくなる可能性があります。
- Microsoft のBOOTCFGコマンドライン ユーティリティ
- シマンテックユーティリティ: Ghost のGDISK32.EXEツール
boot.iniファイルの例
[ブートローダー]
タイムアウト=30
デフォルト=マルチ(0)ディスク(0)rディスク(0)パーティション(2)\WINDOWS
[オペレーティングシステム]
multi(0)disk(0)rdisk(0)partition(2)\WINDOWS=" Microsoft Windows XP Professional" /fastdetect
C:\bootsect.dos="ウィキペディアに関する Windows 98 の例"
Windows カーネルスイッチ
Microsoft は、これらのスイッチの説明をWeb サイトで公開しています[ 2 ] 。
安全
- noexecute=optinスイッチを使用すると、DEP (データ実行防止) セキュリティをインストールできます[ 3 ] 。 Windows XP Pack 2 および Windows Server 2003 では、これは自動的にインストールされます。
さまざまなブートステージを分析する
ブートログスイッチを使用すると、ブート中にロードされたさまざまなモジュールを一覧表示できます。結果はログ ファイル%SystemRoot%\ntbtlog.txtに書き込まれます。最初の 2 つのモジュールは次の順序で表示されます。
- Windows NT カーネル
- hal.dll
その後、多くのパイロットがやって来ます。
sosスイッチを使用すると、画面上で 3 つのブート ステップの詳細を直接表示できます。
- 各モジュールのロード(リストは長いですが、このステップの所要時間は非常に短いため、画面に一瞬しか表示されません)
- オペレーティング システムのバージョン、プロセッサの数、RAM の量
- さまざまなファイル システムをチェックするフェーズ(セッション マネージャーによってトリガーされる)
Basevideoスイッチを使用すると、ビデオドライバーに関連する問題を分析できます。ビデオ ドライバーを基本的な VGA ドライバーに置き換えます。
他のスイッチは、Microsoft が提供するデバッグ ツールを使用できるプログラマ用に予約されています[ 4 ] 。これらのデバッグ スイッチは次のとおりです。
- クラッシュデバッグスイッチ
- デバッグスイッチ
- debugport=comxスイッチ
- baudrate=nnnスイッチは、カーネル デバッグ ポートのボー レートを設定します。
- ノードバグスイッチ
- /channelスイッチを使用すると、特定のFireWire の問題 (IEEE1394) をデバッグできます。
セーフブートスイッチの 4 つの値
- /セーフブート
- /safeboot:dsrepair (Active Directory ドメイン コントローラーでのみ有効)
- /safeboot:最小限
- /safeboot:minimal(alternative_shell) 代替シェルを使用する
- /セーフブート:ネットワーク

別のカーネルまたは別のhal.dllを配置します
カーネルと hal.dll は、それぞれカーネル スイッチとHALスイッチで置き換えることができます。
起動時間を短縮する
/fastdetectスイッチを使用すると、マウス検出時の待ち時間を回避できます。場合によっては、自動的にインストールされます。
テストのために RAM の量を減らす
テストを実行できるようにするには、Windows が使用する RAM の量を減らすことが必要な場合があります。
/burnmemoryまたは/maxmemスイッチを使用すると、これを行うことができます。
ユーザー プロセスにより多くの RAM を与えます (カーネル モード プロセスを犠牲にして)
デフォルトでは、Windows 2003 の 4 GB の仮想メモリのうち、半分はカーネル モード プロセス用、残りの半分はユーザー モード プロセス用です。
場合によっては、カーネル モード プロセスを犠牲にしてユーザー モード プロセスにより多くのメモリを与えると興味深い場合があります。Microsoft が挙げている 2 つのケースは次のとおりです。
- Exchange メール サーバー ( store.exe ) [ 5 ]
- Windows NT Server Enterprise Edition (Windows NT Server/E) バージョン 4.0 ( 4GT RAM 設定) 上のデータベース[ 6 ]
3GBスイッチとuservaスイッチを使用すると、これを実現できます。
32 ビットで 4 ギガバイトの制限を超えるには、 「AWE: アドレス ウィンドウ拡張機能」を参照してください。
プロセッサーのスイッチを入れます
- numprocスイッチ
- onecpuスイッチ
その他
- paeスイッチと/nopaeスイッチは物理アドレス拡張に関係します
- noguibootスイッチは、ブートフェーズ中にビットマッププログレスバーを使用しないことを示します
- namesalice:comxスイッチ
- pcilockスイッチは BIOS の PCI に関係します
- リダイレクトスイッチを使用すると、RS-232 上で緊急管理サービス[ 7 ]を設定できます)
- /usepmtimer
- w95およびw95dosスイッチ
- 年を切り替えると、BIOS の日付を無視できます。
boot.iniファイルのMS-DOSおよび NTFS 権限
デフォルトでは、 boot.iniファイルの MS-DOS 権限は読み取り専用です。
ブート パーティションが NTFS 形式 (これが最も一般的) である場合、デフォルトでは、管理者以外のユーザーにはboot.iniファイルに対する NTFS 読み取り権限がありません。
レジストリ
起動に使用されるパラメータは、 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\のレジストリに保存されます。
- オペレーティング システムを含むパーティションの場合: SystemBootDevice (例: multi(0)disk(0)rdisk(0)partition(2) )
- ブート スイッチの場合: SystemStartOptions 、Windows XP Pack 2 の例: NOEXECUTE=OPTIN FASTDETECT
デフォルトでは、管理者ではないユーザーには、これらのキーに対する読み取り権限のみが与えられます。

UNIX/Linux ブートローダーとの比較
Windows のboot.iniファイルには、 Linux のgrub ブートローダー構成ファイルと同様の役割があります。 Mac OS X Leopard Boot Camp と比較することもできます。
Windows のboot.iniファイルと Linux liloブート ローダーのlilo.confファイルは完全に類似しているわけではありません。lilo.conf ファイルの変更を考慮するにはliloコマンドを使用する必要があります。
パーティションを識別するための構文は、Windows と Unix/Linux では大きく異なります。 Windows のboot.iniでは、ARC 形式が使用されます ( (en) Advanced RISC Computing を参照) 。Unixでは、パーティションの識別子のタイプは /dev/xxxxxNN です。
| ディスクタイプ | boot.iniのフォーマット例 | grub または lilo を使用したフォーマット例 |
|---|---|---|
| IDE | マルチ(0)ディスク(0)rディスク(0)パーティション(2) | /dev/hda2 |
| SCSI | scsi(0)ディスク(0)rdisk(0)パーティション(2) | /dev/sda2 |
NT ベースの Windows バージョン用のその他のブートローダー
IA64ldr.efi (Itaniumプロセッサー用)
これは、Itanium プロセッサ上の Windows バージョン用のブートローダーです。
Vista (および将来の Longhorn サーバー) ブート ローダー: ブート構成データ
構成ファイルはboot.iniではなくなりました。代わりに、それはレジストリ ハイブ、ブート構成データです。 NTLDR はwinload.exeに置き換えられます。
ブート構成を変更するために、Microsoft は次のユーティリティを提供しています。
- 以前のバージョンと同様のMsconfig.exeグラフィック
- コマンド ライン: 新しいbcdedit.exeツール。
「 OsLoader 」と「 SetupLdr 」
NTLDR は実際には、 StartUpとOsLoaderという名前の 2 つの半独立したプログラムを連結したものです。前者の役割は、リアル ブート モードから 32 ビット ページ保護モードに切り替えて、BIOS 内のサービスなどの基盤となるサービスへのアクセスを OsLoader に提供することです。
Windows NT 3.x と 4.0 の RISCアーキテクチャでは、このモードの違いは存在せず、NTLDR はファームウェアによって直接ロードされるプログラム「 OsLoader.exe 」に置き換えられます。これらのバージョンは商業的に大きな成功を収められなかったため、忘れ去られました。
ネットワークから直接ブートする場合 (ブート前実行環境)、2 つの部分が分離され、カードは最初にネットワークからのブートに適した StartUp モジュールをロードし、保護モードに切り替わってから OsLoader をロードします。
Windows のインストール中に、OsLoader.exe ローダーは、 boot.iniファイルを使用しない別のローダー SetupLdr.exe に置き換えられます。 SetupLdr.bin は、StartUp モジュールと SetupLdr.exe を連結したものです。 SetupLdr.bin は、5 文字形式を尊重するために、ディスク上の名前を$LDR$ (ハードディスク経由のインストール) またはCMLDR (回復コンソール) に変更できます。
