TechnikTeam Forum  

Zurück   TechnikTeam Forum > FAQ > Windows

Windows Fragen und Antworten zum Thema Windows

Antwort
 
Themen-Optionen Bewertung: Bewertung: 2 Stimmen, 3,00 durchschnittlich. Ansicht
Alt 10.03.2007, 12:41   #1
Herthaner

Moderator
 
Benutzerbild von Herthaner
 
Registriert seit: 6.01.2000
Ort: Berlin
Beiträge: 1.432
Herthaner befindet sich auf einem aufstrebenden Ast
Aufbau der Boot.ini

Windows 2000 und XP bringen einen Bootmanager mit, der einiges mehr kann als nur die Bootpartition zu wählen. Mit den richtigen Kniffen hilft er auch bei der Lösung schwieriger Konfigurationsprobleme.
Bei Veränderungen an der Festplatten-Partitionierung ist der Adrenalinstoß vorprogrammiert:
Windows NT/2000/XP meldet sich beim Booten mit "NTOSKRNL not found", das System steht.
Manch einer weiß sich am Ende nur noch mit einer kompletten Windows-Neuinstallation zu helfen. Dabei hätte es genügt, die Konfigurationsdatei boot.ini des Windows-Bootmanagers minimal anzupassen.
Der integrierte Bootmanager von Windows wird oft unterschätzt. Er enthält jedoch einige Funktionen, die externe Bootmanager nicht bieten können. Eine davon ist die Auswahl der HAL, mit der Windows startet.
Ohne Zutun ermittelt Windows selbstständig, welches Basis-Set aus Kernel und HAL installiert wird. Bei einem ACPI-fähigen System nutzt es auch den entsprechenden Kernel samt HAL.
Das kann aber zu einem instabilen System führen, denn Windows 2000 vergibt bei der ACPI-HAL an alle PCI-Karten nur einen einzigen Interrupt. Dieser wird dann über das IRQ-Steering unter den Karten aufgeteilt.
Allerdings gibt es Steckkarten, die damit Probleme haben, beispielsweise die TV-Karte Studio PCTV von Pinnaclesys, die mit der ACPI-HAL das ganze System einfriert.
Aber auch beim Harddisk-Recording kann es zu Problemen kommen, weil es sehr anfällig für Verzögerungen ist.
Deshalb hat Microsoft, ganz versteckt, die Möglichkeit eingebaut, bei der Installation die HAL auszuwählen.
Dazu muss man lediglich bei der Aufforderung zur Installation zusätzlicher Speichertreiber die Taste F5 drücken. Dann erhält man ein Auswahlmenü, in dem die Setup-Routine die verschiedenen Kernel- (Single- und Multiprozessor) und HAL-Varianten (ACPI, Standard-PC) auflistet.
Will man aber nicht auf die Annehmlichkeiten von ACPI verzichten, nur weil eine Komponente damit nicht läuft, bietet die boot.ini eine interessante Möglichkeit.
Windows lässt sich auch mit mehreren parallelen HALs installieren. Bei einer entsprechend angepassten boot.ini kann beim Start der gewünschte Kernel gewählt werden.

Der Aufbau der BOOT.INI
Die als Hidden, System und Read-only markierte Bootkonfigurationsdatei boot.ini liegt normalerweise im Root-Verzeichnis der ersten Partition auf der ersten Festplatte. Man kann sie mit einem normalen Texteditor öffnen und bearbeiten. Um die Änderungen allerdings wieder speichern zu können, müssen Sie zunächst das Read-Only-Flag entfernen.

Die Datei ist wie eine normale INI-Datei von Windows aufgebaut.
Sie besteht aus den beiden Sektionen [boot loader] und [operating systems]. Unter Letzterer sind alle verfügbaren Betriebssysteme aufgeführt.
Der prinzipielle Aufbau jedes Eintrags ist: Partitionsangabe="Anzeige" <Parameter>

Aufbau eines ARC-Pfades
Die Partitionsangabe erfolgt nach den so genannten Advanced RISC Computing (ARC) Spezifikationen und kann drei verschiedene Formate haben:

multi(X)disk(Y)rdisk(Z)partition(W)\
scsi(X)disk(Y)rdisk(Z)partition(W)\
signature(X)disk(Y)rdisk(Z)partition(W)\

Für den Typ des Bootmediums steht das erste Wort des ARC-Pfades (multi, scsi oder signature).
Das Schlüsselwort multi gibt an, dass der Bootloader sich auf das BIOS des Rechners verlassen kann, um die Systemdateien zu laden. Windows verwendet dazu den Interrupt 13. Es kann sich dabei um IDE-, ESDI-, aber auch um SCSI-Platten handeln.
Wichtig ist nur, dass die angeschlossene Platte vom Interrupt 13 angesprochen werden kann.
Der Wert X steht dabei für die Nummer des Controllers.
Y ist normalerweise 0 und Z steht für die Nummer des Laufwerks.
Nummer 0 ist Master und 1 Slave am ersten IDE-Channel, 2 ist Master und 3 Slave am zweiten IDE-Channel.
Mit der Angabe scsi als erstes Schlüsselwort veranlassen Sie Windows, den Treiber NTBOOTDD.SYS aus dem Root-Verzeichnis des Bootmediums zu laden. Das muss übrigens nicht unbedingt ein SCSI-Gerät sein. Es kann sich dabei beispielsweise auch um einen speziellen IDE-Controller handeln, der nicht durch den Interrupt 13 des BIOS behandelt wird.
X steht dabei für die Nummer des Adapters, wie sie von NTBOOTDD.SYS zurückgeliefert wird.
Y ist die SCSI-ID des Laufwerks und Z die logical unit number (LUN). In den allermeisten Fällen ist die LUN 0.
Das Schlüsselwort signature wird nur eingesetzt, wenn das BIOS die INT13-Erweiterungen nicht unterstützt und die Systempartition größer als 7,8 GByte ist oder das Partitionsende nach dem Zylinder 1024 liegt, das BIOS des SCSI-Hostadapters ausgeschaltet ist, so dass die Systempartition nicht per INT-13-Aufruf angesprochen werden kann oder bei signature die Signatur des Bootlaufwerks X ist, wie sie im MBR steht. Ntldr durchsucht dann alle Platten unabhängig vom Controller, an den sie angeschlossen sind.
Für alle drei Verfahren gleich ist die Partitionszählung, die im nächsten Abschnitt beschrieben wird.

ARC-Pfade Partitionszählung
Windows nummeriert die Partitionen auf einer Festplatte nicht sequenziell, sondern nach Typ - erst die primären Partitionen und dann die logischen. Wenn Sie also beispielsweise zunächst eine primäre und zwei logische Partitionen haben, bekommt die primäre Partition die Nummer eins, die beiden anderen Nummer zwei und drei.
Befindet sich nun auf der ersten logischen Partition eine Windows-Installation, sieht der Eintrag in der boot.ini so aus:

multi(0)disk(0)rdisk(0)partition(2)\WINNT="Windows" /fastdetect

Wenn Sie noch freien Platz auf der Platte haben und eine neue primäre Partition anlegen, bekommt diese die Nummer zwei und die beiden logischen wandern auf die Plätze drei und vier. Folge: Der ARC-Pfad verweist jetzt auf die neue primäre Partition, die kein Betriebssystem enthält, und beim Booten kommt es zum berüchtigten "NTOSKRNL not found"
Der Diskmanager von Windows 2000/XP ist so intelligent, das zumindest zu erkennen und eine Warnung auszugeben. Er kann allerdings die boot.ini nicht automatisch anpassen.
Das sollten Sie unbedingt vornehmen, bevor das System neu startet. Arbeiten Sie mit einem anderen Partitionierungs-Tool, passen Sie den Pfad in der boot.ini am besten vorher an. Liegt die boot.ini auf einer NTFS-Partition, ist das nachträgliche Editieren im Fehlerfall nur mit vielen Klimmzügen und Spezial-Tools möglich.

Bootdisketten und versteckte Installationen
Der NT-Bootloader kann nur Installationen ansprechen, die auch in der boot.ini verzeichnet sind. Damit kann ein Systemadministrator beispielsweise auf allen Arbeitsrechnern eine Service-Installation einrichten, die von den normalen Benutzern nicht gesehen wird.
Um die spezielle Installation zu verstecken, muss der Administrator nur auf der Arbeitsstation den Eintrag aus der boot.ini löschen. Für den Zugriff benötigt er eine Boot-Diskette mit der richtigen boot.ini.
Um die Boot-Diskette zu erstellen, sind nur wenige Schritte notwendig:
  • Formatieren Sie die Diskette unter Windows NT/2000/XP. Damit ist auf der Diskette automatisch der richtige Bootsektor.
  • Kopieren Sie die Dateien Ntldr, Ntdetect.com und boot.ini auf die Diskette.
  • Passen Sie die boot.ini so an, dass sie auch die "versteckte" Installation enthält.
  • Wenn Sie SCSI-Treiber benötigen, kopieren Sie den Treiber (etwa AIC78XX.SYS für den Adaptec 2940) unter dem Namen ntbootdd.sys auf die Diskette. Mit dieser Diskette können Sie dann auch die Service-Installation des Rechners starten.

Diskettenboot als Menüeintrag
Eine versehentlich im Laufwerk vergessene Diskette kann fatale Folgen haben, wenn diese mit einem Bootsektor-Virus verseucht ist.
Die einfachste Lösung ist eine Änderung der Boot-Reihenfolge im BIOS, so dass nicht vom Disketten-Laufwerk gestartet werden kann.
Der Nachteil: Müssen Sie dennoch von Diskette booten, ist zunächst eine Änderung in den BIOS-Einstellungen notwendig. Mit dem NT-Bootloader gibt es jedoch auch die Möglichkeit, den Systemstart von Diskette per Menü einzuleiten.

Verschiedene Kernels und HALs booten
Wie bereits eingangs beschrieben, kann es durchaus wünschenswert sein, auch einen ACPI-fähigen Rechner als Standard-PC zu booten.

Geteilter IRQ
Die ACPI-HAL von Windows 2000 hat die unangenehme Angewohnheit, Interrupts zu sharen, obwohl noch genügend andere frei sind.
Um eine andere Kombination aus HAL und Kernel zu starten als die Default-Installation, müssen Sie in der boot.ini lediglich die Dateinamen von Kernel und HAL als zusätzliche Parameter übergeben, indem Sie den folgenden Eintrag an die entsprechende Zeile in der Sektion [operating systems] anfügen:

/HAL=meinehal.dll /KERNEL=meinkernel.exe

Die Default-Namen für HAL und Kernel sind hal.dll und ntoskrnl.exe.
Auf der Windows-CD finden Sie die entsprechenden Dateien im Ordner i386. Von dort kopieren Sie die gewünschte Version ins System32-Verzeichnis von Windows und entpacken sie.
Um also beispielsweise die HAL für einen Standard-PC mit ACPI zu kopieren, verwenden Sie die Befehle:

copy halacpi.dl_ c:\winxp\system32\meinehal.dl_
expand meinehal.dl_ meinehal.dll

Dasselbe Verfahren führen Sie mit dem NT-Kernel durch. Welche Varianten von HAL und Kernel es gibt, zeigt die Tabelle.

Kernel- und HAL-Varianten
Im Verzeichnis i386 der Windows-CD finden sich unter anderem die folgenden HAL- und Kernel-Versionen.
Bei der Installation wird jeweils die von Windows ausgewählte unter dem Namen hal.dll beziehungsweise ntoskrnl.exe in das System32-Verzeichnis von Windows kopiert.

Standard-HAL
Wenn man auf ACPI verzichtet, verteilt Windows die Interrupts auf die Geräte.

HAL-Varianten
HAL.DL_ Standard-PC, kein ACPI, kein APIC
HALACPI.DL_ ACPI PC, kein APIC
HALAPIC.DL_ Standard PC, kein APCI, mit APIC
HALAAPIC.DL_ Standard PC, mit ACPI, mit APIC
HALMACPI.DL_ Multi-Prozessor PC, mit ACPI
HALMPS.DL_ Multi-Prozessor PC, ohne ACPI

APIC steht für Advanced Programmable Interrupt Controller. Dieser Interrupt-Controller dient zur Steuerung von Interrupts in einem Multiprozessor-System.

Kernel-Varianten
ntoskrnl.ex_ Standard Single-Prozessor-Kernel
ntkrnlmp.ex_ Multi-Prozessor-Kernel

Achtung
Nach der Installation eines Servicepacks sollten Sie immer auch die alternativen HALs und Kernels durch Extrahieren und Kopieren aus den Servicepacks aktualisieren.
Dazu entpacken Sie das Servicepack, indem Sie es mit dem Parameter -x aufrufen.

Sonstige Optionen in der boot.ini
Neben den beschriebenen Parametern /HAL und /KERNEL kennt der NT-Bootloader noch eine Vielzahl weiterer Parameter. Die wichtigsten finden Sie in der folgenden Tabelle.

boot.ini Optionen

/NOGUIBOOT
Damit wird der VGA-Treiber abgeschaltet, der für die Anzeige des Grafikbildschirms mit der Fortschrittsanzeige während des Bootens zuständig ist.

/FASTDETECT
Dieser Parameter sollte für Windows 2000 und XP immer angegeben werden. Wenn er weggelassen wird, durchsucht der Bootloader das System nach seriellen und parallelen Ports und verlangsamt den Systemstart.
Für den Start von Windows NT darf er nicht angegeben werden, da sich NT darauf verlässt, dass der Bootloader die Schnittstellen auflistet.

/BOOTLOG
Wenn dieser Schalter angegeben ist, schreibt Windows eine Logdatei über den Bootvorgang. Diese heißt NTBTLOG.TXT und befindet sich dann im
Windows-Verzeichnis.

/SOS
Damit gibt Windows alle während des Systemstarts geladenen Treiber auf die Konsole aus.

/3GB
Microsoft Windows unterscheidet in seiner Architektur (bislang?) zwischen dem USER- und dem Kernelmode.
Beiden wird durch das OS entsprechender Speicher reserviert, und das letztlich auch ersteinmal unabhängig vom tatsächlichem Speicherausbau, also auch wenn Sie nur 512 MB RAM verbaut haben, werden Anwendungen 2 GB Speicher reserviert
Standardmässig wird dem USER-Mode 2 GB Speicher zugewiesen.
Der Schalter /3GB weisst Windows an, statt der üblichen 2GB/2GB Arbeitsspeicherreservierung für User und Kernel, dem USER 3 GB zu reservieren, und dem Kernel auf 1 GB zu begrenzen.
Hinweis: Auch wenn dieser Schalter auf einem Server unter Microsoft Windows 2000 zu keinem Fehler führt, wird er jedoch bei Microsoft Windows 2000 nur in der Advanced Server- und der Datacenter-Version unterstützt!

/userva=xxxx
Bei Verwendung des 3GB-Schalters (Voraussetzung!) kommt häufig auch der /userva=xxxx -Schalter zum Einsatz.
Gültige Werte für xxxx sind alle dezimalen Werte zwischen 2048 (entspricht 2 GB) und 3072 (entspricht 3 GB).
Er ist für Computer gedacht, die mehr als 2 GB, aber weniger als 3 GB Speicher für den User-Mode benötigen - ermöglicht also eine Art Feintuning.
Dieser Schalter wird nur auf 32-Bit Systemen unterstützt!

/SAFEBOOT:Typ
Typ steht für MINIMAL, NETWORK oder DSREPAIR.
Zusätzlich kann nach Typ auch noch (ALTERNATESHELL) angegeben werden. Denselben Effekt können Sie erreichen, indem Sie im Bootmenü F8 drücken und dann eine der Safeboot-Varianten auswählen. Der zusätzliche Parameter sorgt dafür, dass nur ein Command-Prompt gestartet wird.

/MAXMEM=xx
Mit diesem Parameter können Sie den von Windows benutzten Hauptspeicher auf xx MByte begrenzen. Windows verhält sich dann so, als hätte es lediglich xx MByte RAM zur Verfügung.

/BASEVIDEO
Veranlasst Windows im VGA-Modus zu starten.

/ONECPU
Damit nutzt Windows auch auf einem Multiprozessor-System nur eine CPU. Allerdings werden trotzdem HAL und Kernel für ein MPS-System geladen. Um das zu verhindern, verwenden Sie die auf der vorigen Seite beschriebenen Verfahren zur Installation alternativer HALs und Kernels.

Speicher begrenzen
Gerade Arbeitsrechner, die zur Software-Entwicklung eingesetzt werden, sind oft mit viel RAM ausgestattet. Aber um die Anwendung auch unter realen Bedingungen zu testen, sollte man einen Rechner mit einer realitätsnahen RAM-Bestückung verwenden. Über den Schalter /MAXMEM in der boot.ini kann man das auch auf dem Entwicklungsrechner erledigen.

Standard
Normalerweise nimmt Windows sich allen im Rechner installierten Speicher.
Dazu muss man lediglich eine zusätzliche Zeile aufnehmen:

multi(0)disk(0)rdisk(0)partition(1)\WIN="Windows XP 128 RAM" /fastdetect /maxmem=128

Eingeschränkt
Für Testzwecke kann man Windows aber auch anweisen, nur eine bestimmte Menge RAM zu nutzen.
Damit startet Windows ganz normal, außer dass jetzt weniger Speicher zur Verfügung steht und das System deutlich häufiger Daten in die Swap-Datei auslagern muss. Damit bekommen die Entwickler immerhin ein Gefühl dafür, wie ihre Anwendungen sich auf schwach bestückten Rechnern verhalten.

Fazit
Die Möglichkeiten des NT-Bootloaders sind sehr vielfältig, leider aber nur ungenügend von Microsoft dokumentiert. Einige Schalter sind im DDK (Device Driver Developer Kit) dokumentiert, andere finden eine - eher zufällige - Erwähnung in der Knowledge-Base.
Auf der Website von Microsoft (http://msdn2.microsoft.com/en-us/library/ms791480.aspx) ist die derzeit ausführlichste Beschreibung aller (bekannten) Parameter erhältlich.
Eine Warnung zum Schluss: Bevor Sie jetzt anfangen, sich eine Unzahl verschiedener Boot-Konfigurationen für jede mögliche und unmögliche Gelegenheit in die boot.ini einzutragen:
Die maximale Anzahl von Betriebssystem-Einträgen ist auf zehn beschränkt.
Alle weiteren Einträge ignoriert Windows geflissentlich.
__________________
so genau kann man(n) das nie sagen - man(n) steckt ja nicht drin!

IT-EASY Berlin

Geändert von Herthaner (24.03.2007 um 09:40 Uhr).
Herthaner ist offline   Mit Zitat antworten
Antwort

Lesezeichen


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 
Themen-Optionen
Ansicht Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Boot.ini modifizieren... VincentVega Windows 2000/XP/Vista/Win7/Win8/Win10 7 15.11.2003 11:33
Boot.ini fehlt goodisadj Windows 2000/XP/Vista/Win7/Win8/Win10 7 18.11.2000 01:32
Boot.ini K2 Windows 2000/XP/Vista/Win7/Win8/Win10 11 21.12.1999 04:48


Alle Zeitangaben in WEZ +2. Es ist jetzt 10:23 Uhr.


Powered by vBulletin® Version 3.7.3 (Deutsch)
Copyright ©2000 - 2018, Jelsoft Enterprises Ltd.
Template-Modifikationen durch TMS
Design by TechnikTeam.de (Alle Rechte vorbehalten)
Besucher: 13732049 Online: 220