Benutzer:PoC/Debian-Live Netzbootserver
Der Artikel beschreibt die notwendigen Schritte, Debian-Live als Netzbootsystem unter Debian Linux 6.0 (Squeeze) aufzusetzen. Unter anderen Linuxvarianten heißen die Pakete anders oder es sind andere Schritte zur Installation notwendig. Die grundlegenden Ggeebenheiten sind allerdings gleich.
Benötigte Komponenten
- Die Archivdatei von http://live.debian.net/ aus dem net-Unterverzeichnis (mit den benötigten Komponenten),
- DHCP-Server (für die Zuweisung grundlegender Netzwerkparameter),
- TFTP-Server (für den initialen Zugriff auf Kernel und Initrd),
- NFS-Server (für den Zugriff auf das komprimierte Root-Dateisystem),
Archiv
Für eine i386-Installation z. B.:
cd /tmp wget http://cdimage.debian.org/cdimage/release/current-live/i386/net/debian-live-6.0.1-i386-rescue.tar.gz
Durch Auspacken des oben genannten Archives in /var/ werden die Verzeichnisse debian-live/ und tftpboot/ erzeugt.
cd /var tar xzf /tmp/debian-live-6.0.1-i386-rescue.tar.gz
DHCP-Konfiguration
Dazu muss ein DHCP-Server installiert und konfiguriert werden. In diesem Falle der isc-dhcp-server:
apt-get install isc-dhcp-server
In der DHCP-Konfigurationsdatei /etc/dhcp/dhcpd.conf sollten dann die globalen Parameter gesetzt werden:
option domain-name "beispieldomain.de"; option domain-name-servers 192.168.1.1; log-facility daemon; authoritative;
Für das lokal verwendete Subnet muss ein Block eingefügt werden, exemplarisch als Beispiel:
subnet 192.168.1.0 netmask 255.255.255.0 { range 192.168.1.30 192.168.1.39; next-server 192.168.1.1; filename "pxelinux.0"; option subnet-mask 255.255.255.0; option broadcast-address 192.168.59.255; option routers 192.168.1.1; }
Nach einem Neustart des DHCP-Servers steht dieser zu Verfügung:
/etc/init.d/isc-dhcp-server restart
In /var/log/daemon.log stehen ggfs. hilfreiche Einträge. Falls das Syslog nicht umgestellt wird mit log-facility, ggfs. auch in /var/log/syslog bzw. /var/log/messages gucken.
Achtung, in einem LAN-Segment sollte nur ein DHCP-Server aktiv sein, um Fehlfunktionen zu vermeiden!
TFTP-Server
apt-get install atftpd tftp
Das Installtionsscript fügt normalerweise einen passenden Eintrag zur /etc/inetd.conf hinzu. Trotzdem sollte der Pfad angepasst werden. Siehe Beispieleintrag:
tftp dgram udp wait nobody.nogroup /usr/sbin/atftpd atftpd /var/tftpboot
Nach einem Konfigurationsneuladen steht der Server zu Verfügung. Testen kann man dies mit:
cd /tmp tftp 192.168.1.1 get pxelinux.0
Schlägt dies fehl, kann dies daran liegen, dass kein inetd installiert ist, oder ein xinetd, der eine andere Art der Konfiguration verlangt. In diesem Falle bitte die zugehörige Dokumentation konsultieren.
In /var/log/daemon.log stehen ggfs. hilfreiche Einträge.
NFS-Server
apt-get install nfs-kernel-server
Ggfs. wird an dieser Stelle noch der Portmapper nachinstalliert. Die Frage, ob der Portmapper nur an localhost gebunden werden soll, muss mit nein beantwortet werden. Falls der Portmapper bereits installiert ist, kann die Frage nach localhost durch eine Rekonfiguration erneut gestellt werden:
dpkg-reconfigure portmap
In der /etc/exports wird nun ein passender NFS-Export konfiguriert:
/var/debian-live 192.168.1.0/24(ro,nohide,no_root_squash,no_subtree_check,insecure)
Die Konfiguration kann nun neu eingelesen werden:
exportfs -r
Test
Wenn nichts falsch gemacht wurde, so bezieht der Client nun beim Netzboot eine IP-Adresse vom DHCP-Server und lädt die PXE-Dateien, um ein Menü anzuzeigen, was gestartet werden soll. Nach der Auswahl eines Punktes werden Kernel und Initrd per TFTP übermittelt und der Kernel gestartet. Per erneuter DHCP-Anfrage erhält der Kernel gültige Netzparameter und kann nun das per NFS zugängliche Squashfs mounten und als Root verwenden. Ab dann ist das Debian-Live-System aktiv.
Weblinks
- Debian-Live Projektseite
- Doku zur live-initramfs (Manpage im HTML-Format, englisch.)
- Netzboot mit Fokus auf Koexistenz von amd64 und i386