Technische Details der I386 Installation
Wie funktioniert das Windows Setup von NT 4, 2000, XP oder Server 2003?
Die verschiedenen Setup's der NT Versionen bis Vista sind alle sehr ähnlich aufgebaut, es gibt (bis Vista mit dem Wim-Setup kam) beim alten I386 Setup kaum Änderungen zwischen den Versionen. Das Setup ist nicht offiziell "I386" genannt worden, aber da es fast alles vom Ordner namens I386 ausgeht, werde ich es so nennen. Grundlegend sind sie alle geteilt in den Textteil und den grafischen Teil, während der grafische nur Dateien kopiert, größtenteils (bis auf Basistreiber) unabhängig vom eigentlichen System, und der grafische Teil erst das System an das aktuelle System anpasst, spezielle Treiber installiert usw.
Text-Phase
Das Textsetup wird von der smss.exe (\I386\SYSTEM32 auf der CD) gestartet und gesteuert. Die Daten, die während der Textphase kopiert werden, stehen, mit Verzeichnissen, in der txtsetup.sif im I386 Ordner der CD. Die Texte, die während des dieser Phase angezeigt werden sind in der ntdll.dll (\I386\SYSTEM32).
Auszug und Erklärung aus der txtsetup.sif:
[WinntDirectories] 1 = "\" 2 = system32 3 = system32\config 4 = system32\drivers 5 = system
Dieser Abschnitt zeigt eine Zahl und den dazugehörigen Ordner an, 1 wäre z.B. das Stammlaufwerk (normalerweise C:), 2 ist System32 (C:\Windows\System32\) usw..
[SourceDisksFiles] bootvid.dll = 1,,,,,,3_,2,0,0,,1,2 kdcom.dll = 1,,,,,,3_,2,0,0,,1,2 c_1252.nls = 1,,,,,,3_,2,0,0,,1,2 c_437.nls = 1,,,,,,3_,2,0,0,,1,2
Als Auszug, ganz vorne steht der Dateiname, hinter dem Gleichheitszeichen steht eine 1 (heißt, es ist im I386 Verzeichnis) usw., und dann steht als letzte Nummer das Verzeichnis, in das es kopiert werden soll.
Grafische Phase
Während die Textphase nur von der CD läuft und von dort aus in den RAM geladen wird, läuft die grafische Installation von der Festplatte aus. Sie wird gesteuert von der winnt32.exe (Windows NT 32 Bit). Natürlich greift sie weiterhin auf die CD zu, um neue Daten zu kopieren. Um den Fortschritt während der Installation genauer zu sehen, muss man nur Shift und F11 drücken, dann bekommt man eine erweiterte Fortschrittsanzeige. Mit Shift und F10 startet man die CMD, das ist aber nicht zu empfehlen, weil man in dem Status mit Systemkontorechten (noch mehr Rechte als Administratoren) arbeitet, und theoretisch jetzt schon das System "zerschießen" kann. Die Grafiken und Werbetexte sind in den DLL Dateien winntbbu.dll und winntbba.dll (Windows NT Billboard (=Werbetafel)). Wenn aber kein Truecolor-Grafikkartentreiber installiert werden kann, ist die smss.exe (vom Textsetup) die Hauptdatei für grafische Resourcen mit wenigen Farben.
Welche Dateien in der grafischen Phase wohin kopiert werden, liegt an den Dateien dosnet.inf und txtsetup.sif.
Wieder einige Auszüge aus den Dateien und ihre Erklärungen:
[Directories] d1 = \I386 d2 = \cmpnents\tabletpc\I386 d3 = \cmpnents\mediactr\I386 d4 = \cmpnents\netfx\I386
Die Ordner zeigen an, wo auf den Windows CDs sich die Daten befinden, d1 (I386) ist sicher der meist genutzte Ordner, die anderen (\cmpnents) sind nur bei den Media Center und TabletPC Editions nutzbar, hier sind die Ordner normalerweise auch auf einer zweiten CD.
Der [Version] Abschnitt zeigt Versionen der aktuellen CD an, also Treiberversionen und die Signaturen.
[Directories] habe ich bereits besprochen.
[Miscellaneous] zeigt "Unterschiedliches" an, also die Version, den Produkttypen das Service Pack und den benötigten Mindestspeicher auf der Festplatte.
[FloppyFiles.x] (wobei x für die Nummern 1-3 steht) zeigt die Dateien, die auf Bootdisketten kopiert werden, wenn man welche erstellt.
[RootBootFiles] listet die Daten auf, die auf das Stammlaufwerk (C:\) kopiert werden, damit es bootbar wird.
[Files] sind die Setupdateien für das Textbasierte Setup.
[CmdConsFiles] listet die Dateien auf, die auf die Festplatte kopiert werden, wenn man die Wiederherstellungskonsole installiert (mit winnt32.exe /cmdcons)
[Strings] sind einige der Texte, die während des Textsetups gezeigt werden können.
[DiskSpaceRequirements] zeigt die benötigten Speicher an, die man auf der Festplatte braucht (auch alle temporären Speicher usw.).
[Files] zeigt dann endlich die Daten an, die kopiert werden.
Anhand dieser Dateien werden die komprimierten Dateien expandiert und auf die Festplatte an ihren Bestimmungsort kopiert,
Danke an KenOath für die grundlegende Erklärung der Setuproutine!
Kompression
Beinahe alle Dateien auf der Windows CD werden komprimiert. Die fertige Installation ist je nach System etwa 15 bis fast 2GB groß, die CD aber nur ca. 600MB, das geht dank der Kompression der meisten Systemdateien als CAB Datei (erkennbar entweder an der Dateiendung .CAB bei z.B. der Driver.cab, die ähnlich wie ein Zipordner aufgebaut ist, wenn man sie öffnet) oder daran, dass die Dateiendung einen Unterstrich anstatt des letzten Buchstaben hat, z.B. ntoskrnl.ex_ statt ntoskrnl.exe. Manuell komprimieren lassen sich Dateien mit der Konsolenanwendung auf Windows die man mit makecab aufrufen kann, erweitern (auch extrahieren oder expandieren genannt) geht mit dem Befehl expand, auch in der Konsole.
OOBE
Nach der eigentlichen Installation startet seit Windows XP die OOBE (Out of Box Experience), das ist der Teil des Setups, der nach weiteren Informationen (Automatische Updates, Benutzerkonten und Interneteinstellungen) fragt. Das wird von der msoobe.exe (liegt in %windir%\system32\oobe\) gesteuert, und es läuft alles im Systemkontenmodus.