MosNis Automatisierung/Installationsautomatisierung von Windows mit Unattended
Achtung dieser Artikel ist noch in Arbeit und dient vorläufig nur als Vorlage. Dieser Beitrag zu Linux oder der Abschnitt ist in Bearbeitung. Weitere Informationen findest du hier. Der Ersteller arbeitet an dem Beitrag oder Abschnitt und entsorgt den Wartungsbaustein spätestens 3 Tage nach der letzten Bearbeitung. Änderungen außer Rechtschreibkorrekturen ohne Absprache mit dem Urspungsautor sind möglichst zu vermeiden, solange dieser Baustein noch innerhalb der genannten Frist aktiviert ist. |
Die Installation von Windows, hier entweder 2000 oder XP, teilt sich in drei Abschnitte, das Starten des zu installierenden Computers mittels BootCD oder Bootdisketten oder Neboot, die Beantwortung wesentlicher Fragen für die Windowsinstallation sowie eventuell die Auswahl zusätzlicher Software und zuletzt die automatisierte Installation gewünschter Software und die Einrichtung des Systems.
Das Ganze basiert auf den Perlskripten von [unattended.sf.net]. Dort findet sich auch eine ausführliche, leider nur englischsprachige, Hilfe mit Beispielen.
Da bei mir nur ältere Rechner zum Einsatz kamen, die größtenteils nicht per PXE booten können, habe ich mit der LinuxbootCD von unattended gearbeitet. Die hat gegenüber den DOS-Disketten bzw. der DOS-CD den Vorteil, daß die Hardwareunterstützung für Netzwerkchips besser und einfacher integriert ist.
Vorarbeiten
Wir benötigen einen lauffähigen DHCP-Server wie für den Rest von MosNis auch. Dazu kommt ein DNS-Server, der den Namen 'ntinstall' immer auf den Installationsserver auflöst. Ich habe das mit dem kleinen Server 'dnsmasq' mittels der Option
address=/ntinstall/AAA.BBB.CCC.DDD
erledigt. Nun muß noch der DHCP-Server den DNS-Server bekanntmachen:
option domain-name-servers AAA.BBB.CCC.DDD;
Sollte man nur einen Windowsinstallationsserver aufsetzen wollen, kann man dnsmasq auch gleich als DHCP-Server betreiben. Unter openSuSE 10.2 funktioniert das bestens, unter Fedora Core 6 hatte ich Probleme mit den Besonderheiten von dnsmasq, die zu lösen zu lange gedauert hätte. Gehen müßte es aber eigentlich. Sodann erstellen wir eine Freigabe im Sambaserver mit Namen 'install':
[install] # Beschreibung in der Netzwerkumgebung comment = Unattended # verhindert schreibende Zugriffe auf die Freigabe writable = no # erlaubt mehrere gleichzeitige Zugriffe auf die Dateien locking = no # absoluter Pfad zum freigegebenen Verzeichnis path = /samba/unattended/install # erlaubt Gastzugriffe auf die Freigabe guest ok = yes
Zuletzt müssen wir unseren Sambaserver noch zum WINS-Server machen, da es einen Moment in der Windowsinstallation gibt, zu dem die Namensauflösung per NetBIOS stattfindet und nicht per DNS. Dazu tragen wir in die smb.conf folgende Zeile ein:
wins support = yes
In die dhcpd.conf:
option netbios-name-servers AAA.BBB.CCC.DDD;
In die /etc/hosts:
AAA.BBB.CCC.DDD ntinstall
Dabei ist es unerheblich, ob die IP in der /etc/hosts schon vergeben ist, eine zweite Definition hat sich hier nicht als störend erwiesen. Nun besorgen wir uns die Pakete von unattended und entpacken die entsprechend der dortigen Anleitung. Unter /PFAD/install/scripts finden wir dann viele Batchdateien, von denen wir erst einmal alle löschen, die wir nicht benötigen. Weitere Batchfiles sind auf den unattended-Seiten verlinkt, findet man die benötigten dort nicht, muß man sie selber bauen. Dazu später mehr. Unter /PFAD/install/os legen wir nun zwei Verzeichnisse beliebigen Namens an, am schönsten, da kurz und prägnant, '200' und 'XP'. Dort hinein kopieren wir jeweils das 'i386' Verzeichnis von den Windowsscheiben. Jetzt sollten wir erst einmal alles haben, was wir benötigen.
Definitionen für unattended
Jetzt müssen wir definieren, wie die Windowsinstallation stattfinden soll. Dazu gibt es die Datei /PFAD/install/lib/unattend.txt. In dieser können beinahe beliebig viele Parameter vordefiniert werden. Als Anhaltspunkt die von mir verwandte:
; General user information [UserData] ; Definiert den Namen des Anwenders FullName="admin" ; Definiert dessen Organisation OrgName="XYZ" ; Definiert den Namen des zu installierenden Rechner, hier auskommentiert, damit bei der Installation eine Abfrage danach kommt ; ComputerName=lurinstall ; Lizenznummer von Windows XP ProductKey=12345-67890-12345-67890-12345 [GuiUnattended] ; See <http://unattended.sourceforge.net/timezones.html> ; Definiert die Zeitzone des zu installiernden Rechners TimeZone=110 ; überspringt die Regionenabfrage OEMSkipRegional=1 ; übersprint den Willkommensbildschirm OemSkipWelcome=1 ; Definiert das Administratorenpasswort AdminPassword=XYZ [Identification] ; Beitritt zu folgender Arbeitsgruppe JoinWorkgroup=XYZ [Shell] ; Use classic start menu DefaultStartPanelOff=Yes ; Use classic visual style DefaultThemesOff=Yes [Unattended] ; ignoriert die Nichtsignierung von Treibern DriverSigningPolicy=Ignore UnattendMode=DefaultHide ; konvertiert das Dateisystem zu NTFS FileSystem=ConvertNTFS ; erweitert dasselbe auf die gewünschte Größe ExtendOemPartition=1 ; unterdrückt die EULA-Annahmeabfrage OemSkipEula=Yes OemPreinstall=Yes ; Needed for XP - see <http://support.microsoft.com/?kbid=294801>. UnattendSwitch=Yes [Components] ; Install IIS by default iis_common=Off iis_inetmgr=Off iis_www=Off ; Docs suggest iis_pwmgr only works on Win2k, but include it ; anyway iis_pwmgr=Off ; Include docs iis_doc=Off [Data] AutoPartition=1 MsDosInitiated="0" UnattendedInstall=Yes [Display] BitsPerPel=32 Xresolution=1024 YResolution=768 Vrefresh=75 [LicenseFilePrintData] AutoMode=PerServer AutoUsers=5 [Networking] InstallDefaultComponents=Yes [NetOptionalComponents] ; Install Print Services for UNIX ; auskommentiert ;LPDSVC=1 [_meta] ;top=base.bat ; definiert den Zeitserver ntp_servers="ntp1.fau.de"