Ist die Anleitung soweit verständlich? Es wird natürlich noch einiges folgen, fertig ist die noch lange nicht.
Hier mal eine aller erste, noch sehr unfertige Version der Anleitung:
Moin,
hier wie versprochen nun eine Anleitung, wie man eine VM für einen PXE-Bootserver einrichtet. Ziel soll es sein, häufig genutzte Betriebssysteminstaller, Livesysteme und Diagnosetools direkt über das Netzwerk starten zu können, ohne dafür bootbare CDs brennen zu müssen.
Benötigte Software
Was brauchen wir im Vorfeld?
- Einen Virtualisierer (ich verwende hier das kostenlose VirtualBox)
- Ubuntu Server Edition (Gibt es hier: http://www.ubuntu.com/download/server - einfach die ISO runterladen) - natürlich gehen auch andere Distributionen, dann heißt eventuell das eine oder andere Paket anders
Was müssen wir später im Linux installieren?
- dnsmasq (Alternativ tut es auch die Kombination aus dhcp3-server und tftpd-hpa, das ist Geschmackssache)
- syslinux
- samba (für die Windows-Installation)
- nfs-kernel-server (für das Rootfs des GRML-Systems) [wenn wir kein GRML wollen, können wir das weglassen]
Einrichten der VM
Als erstes richten wir uns eine VM in VirtualBox ein. Als Betriebssystem kann hier einfach Ubuntu gewählt werden. Bei der Frage nach der Größe des Festplattenimages sollte man die verschiedenen Systeme berücksichtigen, von denen man später Images hinterlegen will.
Nachdem die VM angelegt ist, wählen wir
ändern und stellen unter Netzwerk den Typ von
NAT auf
Netzwerkbrücke um. Dieser Schritt ist sehr wichtig.
Nun installieren wir Ubuntu Server in der VM. Dabei können wir wie gewohnt vorgehen. Wenn wir nachden zu verwendenden Serverdiensten gefragt werden, wählen wir nichts.
Installation der benötigten Pakete im Ubuntu
Nun müssen die oben genannten Pakete installiert werden:
sudo apt-get install dnsmasq samba nfs-kernel-server syslinux
Einrichten von dnsmasq:
Der Datei /etc/dnsmasq.conf fügen wir nun folgendes hinzu:
# TFTP
dhcp-boot=pxelinux.0
enable-tftp
tftp-root=/var/lib/tftpboot
tftp-secure
Einrichten von pxelinux
sudo mkdir -p /var/lib/tftpboot/
sudo mkdir -p /var/lib/tftpboot/pxelinux.cfg/
sudo cp /usr/lib/syslinux/pxelinux.0 /var/lib/tftpboot/
sudo cp /usr/lib/syslinux/vesamenu.c32 /var/lib/tftpboot/
rm syslinux-4.05.tar.gz
cd -
Nun schreiben wir uns eine rudimentäre Config. Die müssen wir erstmal anlegen.
sudo touch /var/lib/tftpboot/pxelinux.cfg/default
Nun schreiben wir folgendes in die gerade angelegte Datei:
DEFAULT vesamenu.c32
ALLOWOPTIONS 0
PROMPT 0
TIMEOUT 0
MENU TITLE Unser erster Bootserver
Wenn ein Hintergrundbild rein soll, ist das kein großes Problem. Dazu dann das Bild nach
/var/lib/tftpboot/ kopieren und folgendes mit in die /var/lib/tftpboot/pxelinux.cfg/default hinzufügen:
MENU BACKGROUND dateiname.jpg
Die bootbaren Images sowie die Config von pxelinux kommen von nun an in
/var/lib/tftpboot
Erster Test: Einbinden eines Debian-Installers
Als erstes System zum Testen nehmen wir jetzt mal den Installer von Debian, der ist schön klein. Bei Linuxsystemen braucht man nur den Kernel und eine angepasste initrd mit dem Installer.
Erstmal runterladen und ein extra Verzeichnis für ihn machen:
cd /var/lib/tftpboot/
mkdir debiantest
cd debiantest
sudo wget http://ftp.nl.debian.org/debian/dists/sq...i386/linux
sudo wget http://ftp.nl.debian.org/debian/dists/sq.../initrd.gz
cd ..
Nun fügen wir für den Debian Installer einen Eintrag in unser Menü hinzu. Also erstmal die Datei
/var/lib/tftpboot/pxelinux.cfg wieder in einem Editor öffnen und folgendes hinzufügen:
LABEL debiantest
MENU LABEL Debian Test
KERNEL debiantest/linux
APPEND initrd=debiantest/initrd.gz vga=788