Wieder mal VMware
Wieder einmal hatte ich Lust, einfach andere Systeme auszuprobieren und so habe ich mir wieder eine Evaluationskopie von VMware besorgt. FreeBSD läuft wunderbar, incl. X & Co. Bei der Installation gab es absolut kein Problem. Von Solaris finde ich leider die erste CD nicht mehr an. Und zum Schluss habe ich noch Debian installiert (bzw bin immer noch dabei). Das mache ich komplett ohne Installationsmedium völlig automatisch per Netboot.
Warum?
Ich habe auf meinem Notebook gerade VMware installiert und nachdem ich bereits FreeBSD installiert habe, wollte ich auch noch Debian installieren. Aber komplett vom Web. Da ich keine CD brennen wollte und auch kein Floppy hatte, beschloss ich, das ganze per Netzwerk zu machen. Irgendwie faszinierend: Installation eines Systems, komplett ohne Bootmedium.
Szenario
Ich beschreibe hier den Verlauf für: Vorhandener Debian woody Server mit IP Adresse 192.168.200.121, WindowsXP Notebook 192.168.200.131 und VMware mit Ethernetbridging.
Ablauf
- Installation der benötigten Dienste am Server (192.168.200.121)
- Konfigurieren dieser Dienste
- Erstellen einer VMware Sitzung
- Booten & Installieren
Installation der benötigten Dienste am Server
Es sollte nun durch apt alles basis-konfiguriert werden.
Da ich xinetd verwende, habe ich noch folgendes zur /etc/xinetd.conf hinzugefügt:
service tftp { socket_type = dgram protocol = udp wait = yes user = root server = /usr/sbin/in.tftpd server_args = -v -s /home/system/tftpd bind = 192.168.200.121 disable = no }
Ich binde Das Service zusätzlich noch an das lokale Interface, damit TFTP nur im lokalen Netz erreichbar ist.
Konfigurieren der Dienste
Konfigurieren des TFTP Servers
Ich verwende als TFTP-Exportverzeichnis /home/system/tftpd. Entsprechend ist der Pfad in /etc/inetd.conf bzw /etc/xinetd.conf (wie oben beschrieben) zu ändern. Ich empfehle ausserdem, in.ftpd das “-v”-Flag hinzuzufügen, um mehr Logmeldungen zu erhalten. Das “-s” Flag macht ein chroot ins Datenverzeichnis und sorgt so für mehr Sicherheit bzw. kürzere Dateinamen. Leider ist es nicht möglich, den Server als unpriveligierten Benutzer per inetd zu starten (Fehler: “Could not find group for user nobody” oder so ähnlich) Ich beschreibe hier die Installation per PXE, d.h. es wird ein Bootloader geladen anstatt eines Images (erst danach das Kernelimage). Dazu in den root des TFTP Servers wechseln (z.B. /home/system/tfpd) und die benötigte Datei herunterladen:
wget url
Wobei url z.B. durch http://ftp.debian.org/debian/dists/sarge/main/ installer-i386/current//images/netboot/netboot.tar.gz bzw. einen lokalen Mirror zu ersetzen ist.
Danach einfach entpacken:
tar xvzf netboot.tar.gz
Fertig! Der TFTP Server ist fertig konfiguriert und alle benötigten Dateien können verwendet werden.
Konfigurieren des DHCP Servers
Die Konfigurationsdatei befindet sich in bei debian in /etc/dhcp3/dhcp3.conf
Meine Datei sieht so aus (dient nicht nur für die Installation per Netzwerk ;-):
option netbios-node-type 8; option netbios-name-servers 192.168.200.121;
ddns-update-style interim; authoritative; default-lease-time 60000; max-lease-time 72000; allow bootp; subnet 192.168.200.0 netmask 255.255.255.0 { range 192.168.200.200 192.168.200.254; option domain-name "nobaq.lan"; option domain-name-servers 192.168.200.121; option routers 192.168.200.121; option subnet-mask 255.255.255.0; option broadcast-address 192.168.0.255; filename "/pxelinux.0"; server-name "nobaq"; next-server 192.168.200.121; }
Wichtig sind hier die folgendes Sachen:
- allow bootp;
- Damit wird bootp überhaupt erst möglich filename gibt den Pfad zur pxe-Datei an.
- server-name
- erklärt sich von selbst und
- next-server
- gibt den TFTP Server an, also die IP Adresse des Servers.
Das wars jetzt auch schon für den DHCP Server!
Installation
Ich empfehle, parallel die Meldungen per syslog mitzuvervolgen, um ggf. Fehler leicht zu finden:
tail -f /var/log/syslog | colorize
Das Erstellen einer VMware Session sollte kein Problem sein. Danach einfach einschalten. Das VMware BIOS durchsucht dann automatisch alle Medium nach einem Bootsektor und zum Schluss wird versucht, per Netzwerk zu booten. Das BIOS holt sich per DHCP eine Adresse vom DHCP Server und die benötigten Dateien vom TFTP Server. Schon bald sollte das Debianlogo und die Nachricht “Press F1 for help or ENTER to boot” sichtbar sein. Einmal ENTER drücken und warten! ACHTUNG: Bei mir hat sich für ca 5 Minuten nichts getan! Erst danach wurde der eigentliche Kernel und das initrd erfolgreich nachgeladen (linux und initrd.gz). Danach startet aber das normale Debiansetup und es kann normal über einen Debianmirror weiterinstalliert werden.