MosNis Automatisierung/Installationsautomatisierung von Windows mit Unattended

Aus Linupedia.org
Wechseln zu: Navigation, Suche
Höhe=24px
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"

Mit dem Suchbegriff 'unattend.txt' wird man auf der Microsoftheimatseite auch noch mehr mögliche Parameter finden, normalerweise genügen die Beispiele von [unattend.sf.net] aber. Für Windows 2000 habe ich keinen Produktschlüssel angegeben, da wir das hier nicht benötigen für die Unternehmensversion. Grundsätzlich gilt: Alles, was nicht in der unattend.txt definiert ist, wird während der Installation abgefragt, insbesondere eben Produktschlüssel, Rechnernamen, Adminpasswort...


Starten des Computers