Startvorgang von Windows XP

Der Start beginnt

  • POST (Power On Self Test) ... wieviel Speicher, welche Hardwarekomponenten

  • BIOS (Basic Input / Output System) Hardeware konfigurieren

  • Master-Boot-Record (MBR) = der Sektor mit der Partitionstabelle und der aktiven Partition, Hinweis auf Bootloader (NTLDR)

  • NTLDR startet und schaltet das System in den Protected Mode und lädt einen enthaltenen minimalen Dateisystemtreiber.

  • Anschließend wertet NTLDR die BOOT.INI-Datei aus - ARC (Advanced RISC Computing)

Die Startdateien (BOOT.INI, NTLDR und NTDETECT.COM) liegen stets auf der ersten primären Partition (Systempartition).
In seltenen Fällen spielt eine weitere Datei eine Rolle. NTBOOTDD.SYS enthält den Treiber, den das System braucht, um auf die Festplatte(n) ohne BIOS-Hilfe (SCSI) überhaupt zugreifen zu können.

  TIPP: Generell ist es eine gute Idee, alle Startdateien zu sichern - Sie können das auf einer Diskette erledigen.

  • NTLDR lädt eine Hardware-Erkennung "NTDETECT.COM", startet sie und schreibt unter HKEY_LOCAL_MACHINE den Schlüssel HARWARE in der Registry.
    Deren Erkenntnisse, in der BOOT.INI vorgegebene Parameter sowie Daten, die der Loader aus der Registry liest, zum Beispiel zu etwaigen Hardwareprofilen, gibt er an NTOSKRNL.EXE weiter, also den eigentlichen Betriebssystemkern von XP, 2000 und NT


Jetzt erscheint auf dem Bildschirm das XP-Logo mit dem bunten Laufbalken

  • NTOSKRNL.EXE wird geladen, aber nicht inizialisiert

  • NTLDR  lädt auch HAL.DLL (Hardware Abstraction Layer) und einige für den Systemstart unverzichtbare Treiber.

  •   TIPP: Bei der Installation (Zeitpunkt wo F6 für zuzätzliche Treiber drücken) F5 für Auswahl der HAL

  • NTLDR schreibt jetzt unter HKEY_LOCAL_MACHINE den Schlüssel SYSTEM in der Registry.

  • Die Registrierung enthält mindestens zwei Steuerungssätze - ControlSet001 und ControlSet002

  • Treiber die HAL.DLL gefunden hat, stehen unter dem Steuerungssatz HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet.

  • Jeder Eintrag dort im Unterschlüssel Services beschreibt einen Treiber oder Dienst, den das System kennt. Je Eintrag beschreibt der Wert namens „Start“, wann ein Treiber zu laden ist. In dieser frühen Startphase gilt das für alle, bei denen 0 eingetragen ist, sowie für Dateisystemtreiber, für die der Wert „Type“ in der Registry auf 2 gesetzt ist.

    Weitere Werte je Treiber oder Dienst regeln, für wie wichtig das System sie erachtet.
    Ist „ErrorControl“ auf:

    0 = im Fehlerfall macht das System stillschweigend weiter
    1 = gibt es im Fehlerfall eine Warnung
    2 = zwingt das System zu einem Neustart mit der zuletzt erfolgreich gestarteten Konfiguration (LastKnownGood), schlägt der Ladeversuch auch hier fehl, macht das System weiter.
    3 = hält das System im Fehlerfall an
    • Während der Kernenlinitialisierungssequenz des Startvorgangs kopiert der Kernel die Information aus CurrentControlSet in den Steuerungssatz Clone.

    • CloneControlSet ... ein Duplikat der Standardkonfiguration (Default) bzw. der letzten funktionierenden Konfiguration (LastKnowGood), die zur Initialisierung des Computers verwendet wurde.
      Dieser Steuerungssatz steht nach einer erfolgreichen Anmeldung nicht mehr zur Verfügung.

    • Zeiger auf die einzelnen Steuerungssätze legen fest, wann die Steuerungssätze verwendet werden. Diese Zeiger werden als "Konfigurationen" bezeichnet und im Schlüssel HKEY_LOCAL_MACHINE\SYSTEM\Select gespeichert. So zeigt beispielsweise die Konfiguration LastKnowGood auf den Steuerungssatz, über den der Computer zuletzt erfolgreich gestartet wurde.

    • Nach der erfolgreichen Anmeldung werden Information aus CloneControlSet in die letzte als funktionierende Konfiguration (LastKnowGood) kopiert.

      ACHTUNG - Der Unterschlüssel Select darf nicht bearbeitet werden !!


       
    HKEY_LOCAL_MACHINE
    HARDWARE
    SYSTEM
    ControlSet001
    ControlSet002

    Legende

    CloneControlSet
    Schlüssel
    Steuerungssatz
    Unterschlüssel
    Wert
    CurrentControlSet
    Services
      ErrorControl
      Start
      Type
      DependOnGroup
      DependOnService
    Select
      Currrent
      Default
      Failed
      LastKnowGood