NT-Loader
# NT-Loader

NT-Loader, kurz NTLDR, ist der Bootmanager für alle Windows‑NT-Systeme bis einschließlich Windows Server 2003 von Microsoft. Seine Konfiguration liest er aus der Textdatei boot.ini. Sie ist nötig, da die Windows-Registrierungsdatenbank erst nach dem Start des Betriebssystems zur Verfügung steht. Sie ermöglicht zudem das Editieren auch außerhalb von Windows. Der NTLDR wurde ab Windows Vista vom Bootmgr abgelöst.

## Funktion und Verwendungszweck

Die Konfigurationsdatei liegt neben den Dateien ntldr und ntdetect.com sowie ggf. ntbootdd.sys und bootsect.dos im Stammverzeichnis der aktiven Primärpartition (normalerweise C:\) und unterscheidet sich in den möglichen Parametern je nach Windowsversion. Dieser Bootmanager ist notwendig geworden, da Windows NT keinen DOS-Kern mehr besitzt und vor dem Start von Windows eine Möglichkeit geschaffen werden muss, das Startverhalten über Parameter zu beeinflussen. Da die DOS-basierenden und die NT-Windowssysteme funktional höchst unterschiedlich sind, sollte zudem auf diesem Weg die Möglichkeit geschaffen werden, verschiedene Windowsversionen parallel zu betreiben.

Ein früher sehr häufiges Dualboot-Szenario ist der klassische Parallelbetrieb von Windows 9x mit Windows NT 3.5 oder 4.0. Da NT-basierte Windows-Betriebssysteme bis Version 4.0 wenig Multimediaunterstützung aufwiesen und kein Plug and Play unterstützten und deshalb auch USB und FireWire nie implementiert wurden, war es sinnvoll, zum Scannen oder für Multimediaanwendungen Windows 95 oder 98 zu starten, für die tägliche Arbeit der Stabilität wegen jedoch Windows NT zu verwenden.

Der NTLDR wird nur auf x86-basierten Computern verwendet. RISC-basierte Computer verfügen über eine Firmware, die ein Bootmenü implementiert und so das Starten mehrerer Betriebssysteme ermöglicht. Die Datei osloader.exe, die nur auf RISC-basierten Computern existiert, startet das Betriebssystem direkt mittels Parametern, die ihr von der Firmware übergeben werden.

## Aufbau der boot.ini

Die boot.ini ist die Konfigurationsdatei des Bootmanagers ntldr. Diese Datei ist nötig, da die Windows-Registrierungsdatenbank erst nach dem Start des Betriebssystems zur Verfügung steht. Die Pfadangaben in der boot.ini entsprechen den Konventionen von RISC-Computern, die im ARC-Standard festgelegt sind.

### Beispielkonfiguration

**[boot loader]**


    leitet die Konfigurationsdatei ein

**timeout=xx**


    gibt die Zeit in Sekunden an, welche gewartet wird, bis das voreingestellte Betriebssystem gestartet wird, falls mehrere Einträge vorhanden sind (Standardwert: 30)

**default=xx**


    gibt das Standard-Betriebssystem an, welches gestartet werden soll

**[operating systems]**


    ab hier werden die einzelnen Einträge der Betriebssysteme aufgeführt, es können mehrere der folgenden Einträge aufgeführt werden; bei nur einem Eintrag wird das Bootmenü beim Computerstart nicht angezeigt; ab Windows 2000 wird bei einer Standardinstallation ohne weitere erkannte Betriebssysteme nur noch ein Systemeintrag angelegt.

**multi(0)disk(0)rdisk(1)partition(1)\Windows-Verzeichnis="Text im Bootmenü" [Optionen…]**


    startet eine Windows-Installation über das System-BIOS (INT 13)

**scsi(c)disk(d)rdisk(l)partition(p)\Windows-Verzeichnis="Text im Bootmenü" [Optionen…]**


    startet eine Windows-Installation über einen expliziten Treiber

**signature(c)disk(d)rdisk(l)partition(p)\Windows-Verzeichnis="Text im Bootmenü" [Optionen…]**


    startet eine Windows-Installation über einen expliziten Treiber

**C:\="MS-DOS"**


    bietet einen Systemstart unabhängig vom „ntldr“ an (hier: Systemübergabe an die DOS-Startdateien über deren als bootsect.dos neben der boot.ini gespeicherten Bootsektor), was in der Regel nur für DOS, DOS-basierende Windowssysteme und nicht Microsoft-Systeme in Frage kommt

**C:\bootsect.deb="Ubuntu"**


    bietet einen Systemstart unabhängig vom ntldr an (hier: Systemübergabe an die Startdateien eines Linux über deren als bootsect.deb neben der boot.ini gespeicherten Bootsektor)

Erläuterung zum Beispiel: Den Start von Windows NT (Startverzeichnis hinter den Partitionsangaben) übernimmt der Bootloader bis zum Laden der Startdateien und Treiber direkt, für ein DOS oder DOS-basierendes Windows übergibt der Bootloader diese Arbeit an die DOS-Startdateien, auf die der folgende Eintrag verweist. Je Partition lassen sich aber jeweils nur ein DOS- und ein NT-System starten, fremde Betriebssysteme wie Linux oder Netware werden offiziell nicht unterstützt. Ebenso erfordert das Installieren mehrerer NT-Systeme oder mehrerer Windows‑3.x- und Windows‑9x-Versionen auf demselben Rechner ein tieferes Fachwissen über das Verhalten und die technischen Anforderungen der verschiedenen Windowsversionen und ist nicht ohne manuelle Eingriffe möglich.

NTLDR startet von Festplatte oder Diskette ohne den Master Boot Record zu ändern, im Gegensatz zu einigen anderen Bootloadern z. B. unter Linux. Anspruchsvollere Konfigurationen lassen sich besser und bequemer (oder überhaupt erst) mit Bootmanagern anderer Hersteller und Partitionierungsprogrammen erledigen. Ein völliger Ersatz für NTLDR sind sie aber nicht, da er zum Laden der Startdateien fest ins NT-System eingebunden ist. Es ist mit den meisten Bootmanagern (z. B. GRUB und LILO für Linux) meist problemlos ein Parallelbetrieb möglich.

### Lokalisieren der Bootpartition

**Starten über das System-BIOS (INT 13)**

multi(0)disk(0)rdisk(d)partition(p)\Windows-Verzeichnis="Text im Bootmenü" [Optionen…]

d ist logische Nummer der Disk aus BIOS-Sicht. 0 für die erste Platte (0x80), 1 für die zweite Platte (0x81) etc. Das hat nichts mit Master, Slave oder SCSI-ID zu tun. Bei 3 ist üblicherweise Schluss.

p ist die Nummer der Partition auf der Platte. Die erste primäre Partition ist 1. Danach folgen alle weiteren primären Partitionen gefolgt von den erweiterten. Die Erweiterungspartitionen selbst (Typ 0x05 und 0x0F) zählen nicht mit.

Windows-Verzeichnis ist das %SystemRoot% der betreffenden Installation ohne Laufwerksbuchstabe.

Optionen siehe unten.

**Starten über einen expliziten Treiber**

scsi(c)disk(d)rdisk(l)partition(p)\Windows-Verzeichnis="Text im Bootmenü" [Optionen…]

Für diese Variante muss sich die Datei ntbootdd.sys im Hauptverzeichnis der Startpartition befinden – also da, wo auch die boot.ini ist. Diese Datei muss eine (umbenannte) Kopie des zum Ansprechen der gewünschten Festplatte erforderlichen Treibers aus %SystemRoot%\System32\Drivers\ sein. Bei IDE-Platten ist das üblicherweise atapi.sys, es sei denn, der verwendete Controller bedarf eines herstellerspezifischen Treibers (bei SCSI immer).

**Starten über einen expliziten Treiber**

**c**


    ist die Nummer des zu verwendenden Controllers, beginnend mit 0. Also z. B. 0 für den ersten IDE-Kanal. Es zählen dabei nur die Controller, die von dem jeweiligen Treiber unterstützt werden.

**Starten über einen expliziten Treiber**

**d**


    ist die ID der Festplatte. Bei IDE: 0 = Master, 1 = Slave, bei SCSI: SCSI-ID.

**Starten über einen expliziten Treiber**

**l**


    ist die LUN (Logical Unit Number) – normalerweise 0

**Starten über einen expliziten Treiber**

**p**


    und alles Weitere ist identisch mit der multi-Syntax oben.

### Die wichtigsten Optionen

**/FastDetect**


    schaltet die Hardwareerkennung von NTDETECT.COM aus, welche noch in Windows NT 4.0 gebraucht wurde.

**/NoGUIBoot**


    startet Windows ohne grafische Ausgabe. Während des Bootvorgangs werden keine Meldungen angezeigt.

**/BootLogo**


    in Verbindung mit /NoGUIBoot kann man den Bootscreen ohne spezielle Tools ändern; dieser muss dazu in folgender Form im Windows-Verzeichnis vorhanden sein: BOOT.BMP; 640 × 480 Pixel; 16 Farben.

**/SOS**


    zeigt alle Treiber während des Ladevorgangs an; danach erscheint ein Startbildschirm analog zu Windows NT; Das bedeutet nicht, dass diese Treiber auch unbedingt von Windows gestartet werden. Dies kann zur Fehleranalyse nützlich sein.

## Einzelnachweise und Quellen

* ↑ Windows NT Resource Kit - Chapter 19 - What Happens When You Start Your Computer. Abgerufen am 8. Juni 2012. Vorlage:Cite web/temporär
* ↑ Microsoft Knowledge Base - BOOT.INI and ARC Path Naming Conventions and Usage. Abgerufen am 4. März 2013. Vorlage:Cite web/temporär
