NTLDR

ウィキペディアから、無料の百科事典
ナビゲーションにジャンプ 検索にジャンプ

NTLDRNT l oa d e r)は、WindowsXPおよびWindowsServer2003までのWindowsNTオペレーティングシステムのすべてのリリースのブートローダーです。NTLDRは通常、プライマリストレージデバイスから実行されますが、 CD-ROMUSBフラッシュドライブ、フロッピーディスクなどのポータブルストレージデバイスから実行することもできます。NTLDRは、ファイル内の適切なブートセクターを指定して、NTベースではないオペレーティングシステムをロードすることもできます。

NTLDRでは、少なくとも次の2つのファイルがシステムボリューム上にある必要があります。

  • ntldr、メインブートローダー自体
  • NTベースのOSの起動に必要なNTDETECT.COMは、正常に起動するために必要な基本的なハードウェア情報を検出します

追加の重要なファイルはboot.iniで、これにはブート構成が含まれています(欠落している場合、NTLDRは最初のハードドライブの最初のパーティションで デフォルトで\ Windowsになります)。

NTLDRは、システムパーティションのボリュームブートレコードによって起動されます。これは通常、WindowsのFORMATまたはSYSコマンドによってディスクに書き込まれます。

歴史

Windows NTは、もともとARC互換プラットフォーム用に設計されており、ブートマネージャのサポートに依存し、Windowsディレクトリパーティション、場所、またはブートパラメータを指定する通常のコマンドライン引数を受け入れるロードプログラムであるosloader.exeのみを提供します。これは、ARC互換によって起動されます。ユーザーが特定のWindowsNTオペレーティングシステムを起動することを選択した場合のブートマネージャ。ただし、x86にはARCサポートがなかったため、そのプラットフォーム専用に追加のレイヤーが追加されました。ユーザーが1つ以上のオペレーティングシステムとboot.iniで構成されたオプションから選択できるテキストメニューを表示するカスタムブートマネージャーコードです。構成ファイル。CPUをプロテクトモードに切り替えるなどの準備を行う特別なStartUpモジュールが追加されます。ユーザーがブートメニューからオペレーティングシステムを選択すると、次のコマンドライン引数がすべてのプロセッサアーキテクチャに共通 のosloader.exeの一部に渡されます。

load  osloader = <Windows Path> \ System32 \ NTLDR systempartition = <Windows Partition >  osloadpartition = <Windows Partition>  osloadoptions = <Windows Boot Parameters>  consolein = multi(0)key(0)keyboard(0)consoleout = multi(0) video(0)monitor(0)x86systempartition = <NTLDRパーティション>

WindowsVistaおよびWindowsServer 2008以降のWindowsリリースでは、NTLDRはブートマネージャーとシステムローダーの部分であるWindowsブートマネージャーwinload.exeに分割されていますブートマネージャーの部分は完全に書き直されました。boot.iniを変更するためのbootcfgユーティリティは、 WindowsXPおよびWindowsServer 2003までのWindowsバージョンでのマルチブート構成の場合に引き続き存在しますが、構成ファイルとしてboot.iniを使用しなくなりました

コマンドラインインターフェイス

bootsect
開発者マイクロソフト
オペレーティング・システムマイクロソフトウィンドウズ
タイプ指示
ライセンス独自 の商用ソフトウェア
WebサイトBootsectコマンドラインオプション

Windows PEツールbootsect.exeユーティリティプログラムには、指定されたパーティションの最初のセクターにNTLDRまたはVistaのブートレコードを保存するためのオプション/ nt52(NTLDR)および/ nt60 (Vista以降)があります。[1]このコマンドは、 FATおよびNTFSベースのファイルシステムに使用できますこれは、FixFATおよびFixNTFSツールに代わるものです。[2]

次の例では、NTLDR互換のマスターブートコードをD:ボリュームに適用します。[3]

C:\> bootsect / nt52 D:

起動プロセス

PCの電源がオンになると、 BIOSは設定された起動順序に従って、起動可能なデバイスを見つけます。これは、BIOSに応じて、ハードディスク、フロッピー、CD / DVD、ネットワーク接続、USBデバイスなどになります。ntldrフロッピーの場合、BIOSはそのブートセクター(最初のセクター)をコードとして解釈します。NTLDRの場合、これはフロッピー上のファイルを検索するNTLDRブートセクターである可能性があります。ハードディスクの場合、マスターブートレコード(最初のセクター)のコードがアクティブなパーティションを決定します。アクティブパーティションのブートセクターのコードは、再びNTLDRブートセクターである可能性があります。ntldrこのアクティブパーティションのルートディレクトリにあります。より複雑なシナリオでは、アクティブパーティションに、NTLDRブートセクターを持つ別のパーティションを指す{ntldr}エントリを持つ新しいVistaブートマネージャー用のVistaブートセクターを含めることができます。[4]

起動時に、NTLDRのローダー部分は次の順序で実行します。

  1. ブートドライブ上のファイルシステム(FATまたはNew Technology File System、NTFS)にアクセスします。
  2. Windowsが休止状態になった場合、hiberfil.sysの内容がメモリにロードされ、システムは中断したところから再開します。
  3. それ以外の場合は、 boot.iniを読み取り、それに応じてブートメニューをユーザーに表示します。
  4. 非NTベースのOSが選択されている場合、NTLDRはboot.iniにリストされている関連ファイル(ファイルが指定されていない場合、またはユーザーがDOSベースのOSで起動している場合はbootsect.dos )をロードし、制御を与えます。
  5. NTベースのOSが選択されている場合、NTLDRはntdetect.comを実行し、コンピューターのハードウェアに関する情報を収集します。ハードウェア検出中にntdetect.comがハングする場合は、 Microsoftサポートにあるntdetect.chkというデバッグバージョンがあります。 [5]
  6. Ntoskrnl.exeを起動し、 ntdetect.comから返された情報を渡します。[6]

boot.ini

NTLDRの最初のアクションは、Boot.iniファイルを読み取ることです。[7] NTLDRを使用すると、ユーザーはメニューから起動するオペレーティングシステムを選択できます。NTおよびNTベースのオペレーティングシステムの場合、ユーザーは事前構成されたオプションをカーネルに渡すこともできます。メニューオプションはboot.iniに保存されており、boot.ini自体はNTLDRと同じディスクのルートにあります。NTLDRはDOSおよび非NTバージョンのWindowsを起動できますが、boot.iniは起動オプションを構成できません。

NTベースのOSの場合、オペレーティングシステムの場所は、Advanced RISC Computing(ARC)パスとして記述されます。

boot.iniは、システム、非表示、読み取り専用のファイル属性を持つことにより、ユーザー構成から保護されています。手動で編集するには、ユーザーは最初にこれらの属性を削除する必要があります。ファイルを編集するためのより安全な方法は、コンソールからbootcfgコマンドを使用することです。bootcfgはファイルを再ロックします(ファイルをシステムに戻し、非表示にし、読み取り専用にします)。さらに、フォルダ表示オプション[隠しファイルとフォルダを表示する]が選択され、フォルダ表示オプション[保護されたオペレーティングシステムファイルを非表示にする]がオフになっていて、[読み取り専用]オプションが選択されている場合、ファイルはテキストエディタを使用してWindows内で編集できます。ファイルのプロパティでオフになっています。

bootsect.dosは、DOSをロードするためにNTLDRによってロードされるブートセクターです。または、NTベース以外のOSをロードするときにファイルが指定されていない場合。

boot.iniファイル の例:

[ブートローダー] 
timeout = 40 
default = multi(0)disk(0)rdisk(0)partition(1)\ WINDOWS 
[オペレーティングシステム] 
multi(0)disk(0)rdisk(0)partition(1)\ WINDOWS = 「MicrosoftWindowsXPProfessional」/ fastdetect

boot.iniのブートローダータイムアウトオプションが0に設定されている場合、NTLDRブートメニューは表示されません。誤った情報によりOSが起動に失敗する可能性があるため、ブートローダーを変更する場合は細心の注意を払う必要があります。

NTカーネルスイッチ

NTLDRブートローダーの詳細オプションメニュー
  • / 3GB x86ベースのシステムに、ユーザープログラムに割り当てられた仮想アドレス空間を3 GBに増やし、カーネルとエグゼクティブコンポーネントに1GBに減らします。ユーザープログラムに割り当てられた標準の2GBおよびシステムに割り当てられた2GBより多くを必要とする一部のプログラムに使用されます。データベースサーバーやMicrosoftExchange Server2003などの仮想メモリを大量に消費するアプリケーションを実行するWindowsServer 2003の一部の構成では、このスイッチが必要になる場合があり[8]、パフォーマンスの向上によるメリットが得られる場合があります。[9]このオプションをアクティブにすると、VMR-9ビデオが破損する可能性があります。[10]このオプションを有効にすると、(X-Fiゲーマー/ X-Fiチタン@ WINXP 32ビット3/2012)を搭載したCreative SBX-Fiシリーズサウンドカードでオーディオの問題が発生する可能性もあります。これらの問題は、Creativesドライバーが2GBを超えるメモリを処理する方法に関連している可能性があります。
  • / BASEVIDEO —任意のビデオアダプタと互換性のあるビデオデバイスドライバを使用して、システムを標準の640×48016色VGAモードビデオドライバの障害または不適切な設定が原因でオペレーティングシステムのロードに失敗した場合、このスイッチを使用するとシステムをロードできるため、ユーザーは問題の原因となっているビデオドライバを削除、更新、またはロールバックできます。このスイッチを/ SOSスイッチと組み合わせて使用​​すると、障害を引き起こしているドライバーを判別するのに役立ちます。[8]
  • / BAUDRATE = nnnカーネルのデバッグに使用されるデバッグポートのボーレートを設定します。このスイッチを使用すると、 / DEBUGスイッチが自動的に有効になります[8] リモートカーネルデバッガホストが接続するデフォルトのボーレート(19200)のオーバーライドを指定します。[9] 例: / BAUDRATE = 115200
  • / BOOTLOG%SystemRoot% \ Ntbtlog.txtという名前のファイルへのブートログをオンにします。[8]
  • / BOOTLOGO —代替の640×480の16色カスタムビットマップを表示します。ビットマップは、 boot.bmpという名前で\ Windowsディレクトリに保存する必要があります/ NOGUIBOOTスイッチとともに使用し[9]
  • / BURNMEMORY = nnn —Windowsが使用できないメモリの量をメガバイト単位で指定します。このパラメーターを使用して、 RAMの枯渇に関連するパフォーマンスの問題またはその他の問題を確認します[8]
  • / CHANNEL = nn / DEBUGスイッチおよび/ DEBUGPORT = 1394スイッチカーネルデバッグ通信が流れるIEEE 1394インターフェイスチャネル(0〜62の番号)を選択します。[8]
  • / CRASHDEBUG OSの起動時にカーネルデバッガーをロードしますが、停止エラーが発生するまで非アクティブのままです。このスイッチを使用すると、Windowsの実行中にCOMポートを通常の操作に使用できます。Windowsがクラッシュした場合、スイッチはポートをデバッグポートに変換します。(このアクションにより、リモートデバッグがオンになります。) [8]
  • / DEBUG —Windowsの起動時にカーネルデバッガーをオンにし/ CRASHDEBUGスイッチとは異なり、 / DEBUGは、デバッグを使用するかどうかに関係なく、COMポートを使用します。[8]
  • / DEBUGPORT = com xデバッグポートに使用するCOMポートを指定します。デフォルトでは、 / DEBUGPORTはCOM2が存在する場合はそれを使用します。それ以外の場合、デフォルトはCOM1です。このスイッチを使用すると、 / DEBUGスイッチが自動的に有効になります[8]
  • / FASTDETECT [:com x [、com y ]] —指定されたポート、または指定されていない場合はすべてのポートのシリアルおよびバスマウスの検出をオフにします。起動時にシリアルポートにマウス以外の部品が接続されている場合に使用します。複数のポートをオフにするために、ポートをコンマで区切ることができます。(注: Windows NT 4.0を含む以前のバージョンのWindowsでは、このスイッチの名前は/ NOSERIALMICEでした。) [8]
  • / HAL = filename —起動時にロードされるハードウェアアブストラクションレイヤーを定義しこのスイッチは、ファイルの名前をHAL.DLLに変更する前に、別のHALを試すのに役立ちますこのスイッチは、マルチプロセッサモードでの起動とシングルプロセッサモードでの起動を切り替えたい場合にも役立ちます。これを行うには、このスイッチを/ KERNELスイッチと一緒に使用します。ファイル名はSystem32ディレクトリにある必要があります。単純なファイル、ハードリンクにすることができますが、シンボリックリンクやジャンクションポイントにすることはできません。[8]
  • / KERNEL = filename —起動時にロードされるカーネルを定義します。このスイッチを使用すると、ユーザーは、デバッグコードでいっぱいのデバッグ対応カーネルと通常のカーネルを切り替えることができます。ファイル名の場所とタイプに関する制限は、/ HALスイッチの場合と同じです。[8]
  • / MAXMEM = nnn —Windowsが使用できるRAMの最大量をメガバイト単位で指定します。[8]ただし、 / MAXMEMスイッチはメモリホールを考慮していません。したがって、代わりに/ BURNMEMORYスイッチを使用することをお勧めします。[11]
  • / MININT —このオプションはWindowsプレインストール環境(WinPE)によって使用され、レジストリシステムハイブを揮発性ハイブとしてロードして、メモリに加えられた変更がハイブイメージに保存されないようにします。[9]
  • / NODEBUG —デバッグをオフにします。このシナリオ、プログラムのソフトウェアにデバッグ用にハードコードされたブレークポイントがある場合、停止エラーが発生する可能性があります。[8]
  • / NOEXECUTE = {OPTIN | OPTOUT | ALWAYSON | ALWAYSOFF } —このオプションは、データ実行防止(DEP)をサポートするプロセッサで実行されている場合、32ビットバージョンのWindowsでのみ使用できますこれにより、DEPが有効になり、メモリマネージャは、データを含むページを非実行としてマークし、コードとして実行できないようにします。これは、悪意のあるコードが任意のコードを実行するために予期しないプログラム入力でバッファオーバーフローのバグを悪用するのを防ぐのに役立ちます。非実行保護は、非実行保護をサポートするプロセッサ上の64ビットバージョンのWindowsで常に有効になっています。このスイッチでユーザーが指定できるオプションはいくつかあります。 [9]
    • / NOEXECUTE = OPTIN —コアシステムイメージおよびDEP構成ダイアログで指定されたイメージのDEPを有効にします。
    • / NOEXECUTE = OPTOUT —DEP構成ダイアログで指定されたものを除くすべてのイメージに対してDEPを有効にします。
    • / NOEXECUTE = ALWAYSON —すべての画像でDEPを有効にします。
    • / NOEXECUTE = ALWAYSOFF —DEPを無効にします。
  • / NOGUIBOOT —ロード中のデバイスドライバー名を表示します。/ BASEVIDEOスイッチとともに使用して、障害を引き起こしているドライバーを判別します。[8]
  • / NOPAE —システムがx86 PAEをサポートしていると検出され、4 GBを超える物理メモリが、NtldrにWindowsカーネルの非物理アドレス拡張(PAE)バージョン[9]
  • / NOSERIALMICE [= com x ] —( Windows NT 4.0以降のすべてのバージョンで廃止) / FASTDETECTスイッチがないことで置き換えられました指定されたCOMポートでのシリアルマウス検出を無効にします。COMポートを指定せずに/ NOSERIALMICEを使用すると、すべてのCOMポートでシリアルマウスの検出が無効になります。[9]
  • / NUMPROC = nnn起動時にWindowsが実行するプロセッサの数を設定します。このスイッチを使用すると、ユーザーはマルチプロセッサシステムに、指定した数のプロセッサのみを使用するように強制できます。パフォーマンスの問題やCPUの欠陥のトラブルシューティングに役立ちます。[8]
  • / ONECPU / NUMPROC = 1を使用するのと同じです。Windowsがマルチプロセッサシステムで1つのCPUのみを使用するようにします。[9]
  • / PAE物理アドレス拡張のサポートを有効にします。セーフモードでは、 / PAEスイッチが指定されている場合でも、コンピューターは通常のカーネルを使用して起動し[8]
  • / PCILOCK x86ベースのシステムの場合、これにより、オペレーティングシステムがハードウェア入力、ハードウェア出力、および割り込み要求リソースをPCIデバイスに動的に割り当てることができなくなります。代わりに、 BIOSがデバイスを構成します。[8]
  • / REDIRECT Windows Server 2003、Enterprise Editionベースのコンピューターで緊急管理サービス(EMS)をオンにしx86ベースのコンピューターでBoot.iniを編集してEMSをオンにするには、Boot.iniファイルの[ブートローダー]セクションと[オペレーティングシステム]セクションの両方を編集します。[8]
  • / SAFEBOOT:{MINIMAL | NETWORK | DSREPAIR} [(ALTERNATESHELL)] —Windowsをセーフモードで起動します。コロンに加えて、上記の3つのタイプのいずれかを含める必要があります。ユーザーが追加できる追加オプションは(ALTERNATESHELL)です。これは、デフォルトのWindowsエクスプローラーを使用するのではなく、 HKLM \ SYSTEM \ CurrentControlSet \ Control \ SafeBoot \ AlternateShell値で指定されたプログラムを[9]ユーザーは、他のboot.iniパラメーターを/ SAFEBOOT:typeと組み合わせることもでき次の例は、スタートアップリカバリメニューからセーフモードオプションを選択したときに有効になるパラメータを示しています。(注:/ SOS/ BOOTLOG、および/ NOGUIBOOTスイッチは、これらの設定のいずれにも必要ありませんが、スイッチはトラブルシューティングに役立ちます。)[8]
    • セーフモード/ SAFEBOOT:MINIMAL / SOS / BOOTLOG / NOGUIBOOT)—デフォルト:Windowsを起動するために最小限のデバイスドライバーとサービスのセットを使用します。[12]
    • ネットワークを使用したセーフモード(/ SAFEBOOT:NETWORK / SOS / BOOTLOG / NOGUIBOOT)—ネットワークのロードに必要なドライバーを含むデフォルトモード。[12]
    • コマンドプロンプトを使用したセーフモード(/ SAFEBOOT:MINIMAL(ALTERNATESHELL)/ SOS / BOOTLOG / NOGUIBOOT)—デフォルトモード。ただし、 Windowsエクスプローラーの代わりにCmd.exeが起動します。[12]
    • ディレクトリサービス復元モードのWindows/ SAFEBOOT:DSREPAIR / SOS)—(このモードは、Windowsベースのドメインコントローラーでのみ有効です。)ディレクトリサービスの修復を実行します。[12]
  • / SOS —グラフィカルブート画面を無効にし、NT4スタイルのテキストブートを使用して、Windowsビルド番号、バージョン番号などを一覧表示します。Windows2000およびXPでは、テキストはCHKDSKビットマップ内にレンダリングされます(2000では進行状況バーが表示されます)。 )。
  • / USEPMTIMER —プロセッサがPM_TIMER設定をサポートしている場合、Windowsがタイムスタンプカウンター(TSC)タイマー設定の代わりに電力管理タイマー(PM_TIMER)タイマー設定を使用することを指定し[8]デフォルトでは、Windows Server 2003 Service Pack 2(SP2)は、すべてのマルチプロセッサAPICまたはACPIHALにPMタイマーを使用し ますWindows Server 2003 SP2を実行していない場合は、 / USEPMTIMERスイッチを使用して、コンピューターにPMタイマーの使用を強制する必要があります。[13]
  • / USERVA = nnn — / 3GBスイッチを使用するときにプロセスに割り当てられるメモリの量をメガバイト単位でカスタマイズしますこのスイッチは、より多くのページテーブルエントリカーネルメモリを許可しますが、それでもほぼ3GBのプロセスメモリスペースを維持します。[12]
  • / WIN95 —bootsect.w40保存されているWindowsブートセクターを起動するようにNtldrに指示します[9]
  • / WIN95DOS —bootsect.dos格納されているMS-DOSブートセクターを起動するようにNtldrに指示します[9]
  • / YEAR = yyyy — Windowsコア時間関数に、コンピューターのリアルタイムクロックが報告する年を無視し、代わりに指定された年を使用するように指示します。例: / YEAR = 2001(このスイッチは、 2000年問題のテストを支援するために作成されました。) [9]

も参照してください

参考文献

  1. ^ 「Bootsectコマンドラインオプション」Windows Vista:テクニカルリファレンスMicrosoftTechnet2009 2011年7月3日取得
  2. ^ MS-DOSおよびWindowsコマンドラインbootsectコマンド
  3. ^ MS-DOSおよびWindowsコマンドラインbootsectコマンド
  4. ^ 「ブート構成データエディタのよくある質問」WindowsServerMicrosoftTechnet2007 2011年7月3日取得
  5. ^ Windows 2000 Server
  6. ^ マイクロソフト(2000)。Windows 2000 Professionalリソースキット(第1版)。ワシントン州レドモンド:MicrosoftPress。ISBN 1-57231-808-2
  7. ^ Rick Maybury起動とシャットダウンの問題、パート1 ウェイバックマシンで2012年7月11日にアーカイブ、Bootcamp、2009年、2012年4月25日にアクセス
  8. ^ a b c d e f g h i j k l m n o p q r s t u Microsoft(2007年11月28日)。「WindowsXPおよびWindowsServer 2003Boot.iniファイルで使用可能なスイッチオプション」2009年8月19日取得
  9. ^ a b c d e f g h i j k l Russinovich、Mark(2006年11月1日)。「BootINIオプションリファレンス」TechNet上のWindowsSysinternalsライブラリマイクロソフト。2008年4月30日にオリジナルからアーカイブされました2009年8月19日取得
  10. ^ 「アップグレード/更新後のDirectDrawオーバーレイとVMR9の喪失」
  11. ^ MSDN:/ BURNMEMORY仕様
  12. ^ a b c d e WindowsXPのセーフモードブートオプションの説明
  13. ^ QueryPerformanceCounter関数を使用するプログラムは、Windows Server 2000、Windows Server 2003、およびWindowsXPではパフォーマンスが低下する可能性があります。

外部リンク