Win2000, WinXP

Treiber und Updates auf die Windows CD integrieren

Wer hat sich noch nicht geärgert, wenn die Installationsroutine von Windows 2k/XP den Festplatten-Controller wiedermal nicht erkennt und "gütigerweise" anbietet, den Treiber durch Drücken von F6 per Diskette einzulesen... ganz zuschweigen davon, daß Disketten als Datenspeicher längst überholt sind, da sie allzugerne unlesbar werden. Graphikkarten-Treiber o.ä. lassen sich ja notfalls auch später noch von CD oder einer anderen Partition installieren, wenn das Betriebssystem dann läuft, aber ohne Festplatten-Controller erkennt die Installationsroutine nun mal leider die Platten nicht, und es kann garkeine Installation des Betriebssystems stattfinden.

Hier soll nun gezeigt werden, wie man sich eine Installations-CD erstellt, auf der die Treiber für den Festplatten-Controller - und bei Bedarf natürlich noch weitere, wie z.B. Soundkarte, Graphikkarte, Netzwerkkarte, Intel-Chipsatz, SCSI-Controller, USB 2.0 usw. - bereits integriert sind. Auch der Windows Media Player v9.0 und DirectX v9.0a und diverse Patches können direkt integriert werden.

1. Controller-Treiber einbinden
2. weitere Treiber einbinden
  2.1   Erstellen einer Antwort Datei für die unbeaufsichtigte Installation (Unattended)
3. Einbinden aktueller Updates
4. Herstellen einer bootfähigen Windows-CD


1. Controller-Treiber einbinden
Als erstes muß die komplette Windows 2000/XP CD auf die Festplatte kopiert werden. Das aktuelle ServicePack sollte bei dieser Gelegenheit auch gleich in die zukünftige Installations-CD integriert werden. Anleitung dazu finden Sie ebenfalls links im Menü-Baum unter "Sonstiges".

Jetzt in das Verzeichnis der Windows CD wechseln und hier in den Ordner i386. Hier die Datei TXTSETUP.SIF öffnen. Dann den Treiber für den Festplatten-Controller herbeischaffen (notfalls entpacken) und die xyz.sys-Datei in den i386-Ordner kopieren. (Die Datei heißt natürlich nicht wirklich "xyz.sys", sondern hat irgendeinen anderen Namen... aber auf jeden Fall *.sys!
Dann muß die Datei TXTSETUP.SIF angepaßt werden. Zuerst muß man die Zeile

[SourceDisksFiles.x86]

suchen und gleich darunter folgende neue Zeile einfügen:

xyz.sys = 1,,,,,,4_,4,1,,,1,4

wobei "xyz.sys" natürlich durch den tatsächlichen Namen der Treiber-Datei zu ersetzen ist, die man zuvor in den i386-Ordner kopiert hat.
Als nächstes muß man die Zeile

PCI\VEN_105A&DEV_4D33 = "ultra"

suchen. Eine ähnliche Zeile findet sich auch in der *.inf-Datei des eigentlichen Treibers. Diese muß dann direkt unter der gesuchten Zeile eingefügt werden, allerdings in "ergänzter" Form... zum Beispiel müßte die Zeile

PCI\VEN_9005&DEV_0285&SUBSYS_02871028 aus der eigentlichen Treiber-INF-Datei
in der Form
PCI\VEN_9005&DEV_0285&SUBSYS_02871028 = "xyz" in die TXTSETUP.SIF übernommen werden, wobei "xyz" natürlich wieder für den eigentlichen Namen der *.sys-Datei steht, die oben kopiert wurde, aber ohne die Endung ".sys"

Jetzt nach der Zeile

ultra = ultra.sys,4

suchen und gleich darunter eine neue Zeile einfügen. Hier muß man (entsprechend natürlich wie oben stellvertretenderweise)

xyz = xyz.sys,4

einfügen. Jetzt nach

[SCSI]

suchen und folgenden Eintrag darunter einfügen:

xyz = "Name des Adapters"

Den genauen Namen des Adapters findet man in der *.inf-Datei. Die Datei TXTSETUP.SIF kann nun gespeichert werden und muss wieder ins i386-Verzeichnis kopiert werden.

2. weitere Treiber einbinden
Um weitere Treiber (z.B. den aktuellen Treiber für die Graphik-Karte etc.) in die Installations-CD einzubinden, erstellt man im Root-Verzeichnis der künftigen CD einen Ordner mit dem Namen $OEM$ und in diesem einen Unterordner mit dem Namen $1. Darin dann einen weiteren Unterordner erstellen, der für eine Windows-2000-CD WINNT, für eine Windows-XP-CD WINDOWS heißen muß. In diesem wiederum muß dann ein Ordner Drivers erstellt werden.
CD-Baum   In diesen können jetzt Unterordner für eigene Treiber angelegt werden, z.B. Graphik, Sound ect.

Wichtig: Die Treiber dürfen nicht gepackt sein! Es muß das Verzeichnis der Treiber verwendet werden, in dem die xxxx.inf-Datei zu finden ist! Bei den Treibern für eine Soundblaster Live ist dies z.B. der Ordner
CD-ROM:\treiber\AUD2DRVL11021217\Drivers\WIN2K_XP
auf der mitgelieferten Treiber-CD.

Im Ordner Drivers können beliebig viele Unterordner erstellt werden. Die Treiber können aber ebensogut direkt ins Drivers-Verzeichnis kopiert werden.

Treiber, die während des Abschnitts "Geräteinstallation" der GUI-Modus-Installation installiert werden, müssen in bestimmten Verzeichnisen gefunden werden. An diesem Punkt installiert Setup die Geräte (unter Verwendung von Plug&Play-Kennungen), die von Windows-Plug&Play aufgelistet werden. Setup durchsucht einen vordefinierten Pfad auf dem Laufwerk und sucht in den INF-Dateien nach der besten Übereinstimmung mit der Plug&Play-Kennung des jeweiligen Gerätes. Dieser Pfad ist an der folgenden Stelle in der Registrierung definiert und ist standardmäßig auf %SystemRoot%\Inf gesetzt:

HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\DevicePath
REG_EXPAND_SZ:%SystemRoot%\Inf

Setup verwendet diesen Pfad, um INF-Dateien für die Geräteinstallation zu finden. Nach der Ausführung von Setup wird dieser Pfad auch für neue Hardware verwendet, die gefunden und installiert wurde. Wenn dieser Schlüssel während der Ausführung von Setup unter Verwendung einer Antwortdatei für die unbeaufsichtigte Installation geändert wird, wird der Wert gespeichert und auch nach der Ausführung von Setup verwendet.

Wenn das System während der GUI-Modus-Installation die INF-Dateien nach Plug&Play-Kennungen durchsucht, sucht es auch unter den Pfaden, die im Eintrag OemPnPDriversPath aufgeführt sind, sowie unter dem Standardpfad %WinDir%\Inf. Der Pfad %WinDir%\Inf steht zwar an erster Stelle der Suchreihenfolge, will man jedoch ein Gerät installieren, das von mehr als einer INF-Datei unterstützt wird (Windows enthält möglicherweise einen Treiber mit generischer Funktionalität), durchsucht Setup danach auch alle Pfade, die im Eintrag OemPnPDriversPath angegeben sind. Dabei werden zwar eventuell mehrere Entsprechungen gefunden, Plug&Play verwendet jedoch die INF-Datei, die am besten passt, und installiert dann den zugehörigen Gerätetreiber, um das Gerät zu unterstützen.

Windows verwendet, egal ob man andere Treiber einbindet, falls vorhanden die eigenen Treiber. Grade bei Grafikkarten-Treibern ist das aber oft unerwünscht, da die auf der Windows-CD vorhanden nicht für aktuelle Grafikkarten oder DirectX Version erstellt wurden. Hier muß man die Treiber, welche auf der Windows-CD sind, entfernen und somit im Setup die Treiber verwendet werden, die man selber auf der CD eingebunden hat. Dazu müssen drei Dateien im i386-Ordner geändert werden:

TXTSETUP.SIF
DOSNET.INF
und
DRVINDEX.INF

Dateien öffnen und im Fall der nVidia-Treiber nach "nv4" suchen lassen. Alle Einträge löschen. Bei nVidia-Treibern sind das folgende Einträge:

DOSNET.INF
d1,nv4.dll
d1,nv4.inf
d1,nv4.sys

DRVINDEX.INF
d1,nv4_disp.dll
d1,nv4_disp.inf
d1,nv4_mini.sys

TXTSETUP.SIF
nv4.dll = 1,,,,,,,,3,3
nv4.inf = 1,,,,,,,20,0,0
nv4.sys = 1,,,,,,,,3,3


Für andere Grafikkarten verfährt man ähnlich, z.B. muß man für ATI-Grafikkarten die Einträge mit "ATI" anstelle "nv4" löschen.
Dann müssen alle inf Dateien von der CD entfernt werden, die oben aufgeführt werden, allerdings haben sie die Endung *.in_ statt *.inf, da dies gepackte Versionen der Dateien sind.

Jetzt kann der entpackte neue Treiber in den Ordner Drivers kopiert werden und das Setup wird diesen verwenden.


2.1 Erstellen einer Antwort Datei für die unbeaufsichtigte Installation (Unattended)
Um den Vorgang etwas zu vereinfachen, erstellt man sich als Vorlage eine Textdatei mit folgendem Inhalt:
    ;SetupMgrTag
    [Data]
        AutoPartition=0
        MsDosInitiated="0"
        UnattendedInstall="Yes"
    
    [Unattended]
        UnattendMode=FullUnattended
        OemPreinstall=Yes
        TargetPath=\WINDOWS
        OemSkipEula=Yes
        DriverSigningPolicy = Ignore
        OemPnPDriversPath = WINDOWS\Drivers
    
    [GuiUnattended]
        AdminPassword=
        EncryptedAdminPassword=Yes
        OEMSkipRegional=1
        TimeZone=110
        OemSkipWelcome=1
    
    [UserData]
        ProductID=xxxxx-xxxxx-xxxxx-xxxxx-xxxxx
        FullName="Benutzername"
        OrgName="Firmenname"
        ComputerName=master
    
    [Display]
        BitsPerPel=24
        Xresolution=1280
        YResolution=1024
        Vrefresh=75
    
    [TapiLocation]
        CountryCode=49
        Dialing=Tone
        AreaCode=0351
    
    [RegionalSettings]
        LanguageGroup=1
        Language=00000407
    
    [Identification]
        JoinWorkgroup=Arbeitsgruppenbezeichnung
    
    [Networking]
        InstallDefaultComponents=Yes
    
    [Branding]
        BrandIEUsingUnattended=Yes
    
    [URL]
        Home_Page=http://www.procompsys.de
        Help_Page=http://www.procompsys.de
        Search_Page=http://www.google.de
    
    [Proxy]
        Proxy_Enable=0
        Use_Same_Proxy=0
...und speichert sie unter dem Namen WINNT.SIF ab. Die orange markierten Einträge können oder sollten bei Bedarf angepaßt werden.

Auf der Windows-CD befindet sich im Ordner \SUPPORT\TOOLS die Datei DEPLOY.CAB. Diese muß man in ein beliebiges Verzeichnis entpacken und dort die Datei setupmgr.exe ausführen.

Die eben erstellte WINNT.SIF jetzt mit dem SetupMgr öffnen und anpassen. Notwendige Einstellungen sind Zeitzonen, Netzwerkeinstellungen... Wenn alle Einstellungen gemacht sind, die Datei wieder speichern und jetzt mit dem Windows Editor öffnen.

Sollten jetzt folgende Zeilen vorhanden sein,
[SetupMgr]
DistFolder=
DistShare=
so löscht man diese einfach wieder heraus. Unbedingt sicherstellen, daß der Eintrag AutoPartition auf 0 (Null) steht, denn nur so läßt sich später beeinflussen, auf welche Partition Windows installiert werden soll. Jetzt bitte prüfen ob unter [Unattended] folgende Einträge zu finden sind:
UnattendMode=FullUnattended
OemPreinstall=Yes
DriverSigningPolicy = Ignore
OemPnPDriversPath = WINDOWS\Drivers
Hier muss jetzt noch der Eintrag OemPreinstall (muss auf YES stehen) und OemPnPDriversPath angepasst werden. Hier den Pfad zu den Treiber-Ordnern eintragen. Für Windows 2000 muß WINNT und für Windows XP WINDOWS eingetragen werden. Es können auch mehrere Pfade angegeben werden, die dann durch Semikola getrennt angegeben werden müssen:
[Unattended]
OemPnPDriversPath = WINDOWS\Drivers\NIC;WINDOWS\Drivers\Graphik;WINDOWS\Drivers\Netzwerk;WINDOWS\Drivers\Sound

Der Wert DriverSigningPolicy = Ignore muss so übernommen werden, damit Treiber, die nicht digital signiert sind, verwendet werden können. Die Datei WINNT.SIF jetzt in das Verzeichnis i386 der Windows-CD kopieren. Wenn nun das Setup gestartet wird, läd das Setup diese Datei und paßt den DevicePath entsprechend den Eintragungen an und sucht in den angegebenen Ordnern nach *.inf-Dateien und installiert diese Treiber.


3. Einbinden aktueller Updates
Damit aktuelle Updates eingebunden werdenkönnen, muß wie oben beschrieben eine unbeaufsichtigte Installation (Unattended) verwendet werden.

Man erstellt im oben beschriebenen Ordner $OEM$\$1\WINDOWS einen weiteren Ordner namens hotfixes, in den man alle gewünschten Updates hineinkopiert, z.B. den Windows Mediaplayer 9.0 und DirectX 9.0. Aktuelle Updates findet man auf Winhelpline.info unter "Windows-Updates". Dort findet sich auch der von Winhelpline erstellte "Microsoft Windows Post-SP Updater", mit dem alle wichtigen Einzel-Updates, die nach dem letzten Service-Pack erschienen sind, in einem Rutsch installieren lassen. Somit sind dann auch alle Patches seit dem letzten SP eingebunden.

Beim Windows-XP-Updater besteht jetzt die Möglichkeit, Updates wie Windows Movie Maker, WMP9 ... direkt vom Updater installieren zu lassen.

Windows 2000 PostService Pack Updater
Windows XP     PostService Pack Updater

Wichtig: die Dateien müssen im 8.3-Namensformat vorliegen.

Jetzt eine Datei CMDLINES.TXT erstellen und folgende Zeilen einfügen:
[Commands]
; Prefix a line with a semi-colon to insert a comment
"C:\WINDOWS\hotfixes\postsp1 -s"
"C:\WINDOWS\hotfixes\dxsetup"
"C:\WINDOWS\hotfixes\mm20deu /q"
"C:\WINDOWS\hotfixes\wmp9 /q"
"C:\WINDOWS\hotfixes\wmbonus /q"
"C:\WINDOWS\hotfixes\wmenc /q"

Hinweise:
C:\ gibt das Laufwerk an auf welches Windows installiert werden soll. Für Windows XP muß der Ordner "Windows" heißen, für Windows 2000 "WINNT".
  • postsp1 = Windows PostService Pack Updater, hier muß beachtet werden, daß alle Module im selben Ordner gespeichert werden!! Der Name der Starter-Datei kann sich ändern. Beim XP-Updater ist es hier die "starter.exe", beim Windows-2000-Updater ist es die "W2KpostSP3update-xxxxxx_setup.exe".
  • dxsetup = DirectX 9.0a, hier muss die DirectX_v9.0a-Redist-Version verwendet werden (gibt es auch bei Winhelpline: DirectX Redist-Version). Die dx90a_redist.exe muß direkt ins Verzeichnis "hotfixes" entpackt werden, sodaß die "dxsetup.exe" direkt in diesem gespeichert wird, einschließlich aller anderen Dateien, die dazu gehören.
  • mm20deu = Die Deutsche Version des Windows-Movie-Maker. Dieser kann nur für Windows XP verwendet werden. Für Windows 2000 muß dieser Punkt entfernt werden!
  • wmp9 = Windows Media Player 9.0
  • wmbonus = Windows Media Bonux Pack
  • wmenc = Windows Media Encoder
Die Datei CMDLINES.TXT muß jetzt im Ordner $OEM$ abgespeichert werden.
Und nicht vergessen alle notwendigen Dateien in den Ordner hotfixes zu kopieren!

Warnmeldungen während der Installation:
  • Wenn der MediaPlayer installiert wird, kommt eine Warnmeldung, daß die Systemwiederherstellung deaktiviert ist. Einfach mit "OK" bestätigen. (Zu diesem Zeitpunkt der Installation ist die Systemwiederherstellung noch nicht aktiviert.)
  • Für die Installation von DirectX muß die EULA (EndUser License Agreement = Endbenutzer-Lizenzvereinbarung) akzeptiert werden. Hier gibt es leider keinen Schalter um dies zu automatisieren.

4. Herstellen einer bootfähigen Windows-CD
Eine Anlietung hierzu findet sich im Menü links unter den Punkten

Win2k mit integriertem SP 3
und
WinXP mit integriertem SP 1
- UAP -








Suchbegriffe für diese Seite:
Treiber, Updates, Windows CD, Windows-CD, Installation, InstallationsCD, Installations-CD, integrieren, einbinden, bootfähig, bootfähige CD erstellen