NTLDRについて詳しく解説

NTLDRNT 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 も読み込みます。それから彼は核心に移ります

 NTLDRについて詳しく解説

boot.iniファイル

boot.ini経由で NTLDR を構成するためのグラフィカル ツール

NTLDR は、 boot.iniファイルを使用して構成されます。次のツールのいずれかを使用して変更できます。

  • MicrosoftMsConfig.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 つのブート ステップの詳細を直接表示できます。

  1. 各モジュールのロード(リストは長いですが、このステップの所要時間は非常に短いため、画面に一瞬しか表示されません)
  2. オペレーティング システムのバージョン、プロセッサ、RAM の
  3. さまざまなファイル システムをチェックするフェーズ(セッション マネージャーによってトリガーされる)

Basevideoスイッチを使用すると、ビデオドライバーに関連する問題を分析できます。ビデオ ドライバーを基本的な VGA ドライバーに置き換えます。

他のスイッチは、Microsoft が提供するデバッグ ツールを使用できるプログラマ用に予約されています[ 4 ] 。これらのデバッグ スイッチは次のとおりです。

  • クラッシュデバッグスイッチ
  • デバッグスイッチ
  • debugport=comxスイッチ
  • baudrate=nnnスイッチは、カーネル デバッグ ポートのボー レートを設定します
  • ノードバグスイッチ
  • /channelスイッチを使用すると、特定のFireWire の問題 (IEEE1394) をデバッグできます。

セーフブートスイッチの 4 つの値

  • /セーフブート
    • /safeboot:dsrepair (Active Directory ドメイン コントローラーでのみ有効)
    • /safeboot:最小限
    • /safeboot:minimal(alternative_shell) 代替シェルを使用する
    • /セーフブート:ネットワーク
 NTLDRについて詳しく解説

別のカーネルまたは別の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

デフォルトでは、管理者ではないユーザーには、これらのキーに対する読み取り権限のみが与えられます。

 NTLDRについて詳しく解説

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 は実際には、 StartUpOsLoaderという名前の 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 (回復コンソール) に変更できます。

  1. أن.تي.أل.دي.أر – arabe
  2. NTLDR – catalan
  3. NT-Loader – allemand
  4. NTLDR – anglais
  5. NTLDR – espagnol
  6. ان‌تی‌ال‌دی‌آر – persan

NTLDRについて詳しく解説・関連動画

サイエンス・ハブ

知識の扉を開け、世界を変える。