Benutzer:PoC/Debian-Live Netzbootserver

Aus Knowledgebase
Zur Navigation springen Zur Suche springen

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