Login
Newsletter
Mi, 10. Dezember 2008, 15:39

grml-small 2008.11 via PXE booten ohne NFS

Ein Tipp für alle Administratoren, die mal eben schnell ein Rescue-System via PXE booten wollen, ohne dafür erst einen NFS-Server aufzusetzen.

Die Anleitung setzt an dieser Stelle voraus, dass bekannt ist wie eine PXE-Umgebung einrichtet wird, also DHCP-Server, TFTP-Server und pxelinux Config. Bei einem normalen Terminalserver-Setup, wie es in wiki.grml.org beschrieben wird, würde ein NFS-Verzeichnis gemountet und dann das darin enthaltene squashfs-Image via loopback gemountet. Da das squashfs-Image von grml-small aber relativ klein ist, spricht nichts dagegen, es via wget z.B. in ein tmpfs zu kopieren, bevor es gemountet wird.

Zunächst benötigt man das aktuelle grml-small ISO-Image, aus dem das squashfs-Image extrahiert wird: grml-small_2008.11.iso. Dann

mount grml-small_2008.11.iso /mnt -o loop
mkdir /var/www/html/grml
cp /mnt/live/grml-small.squashfs /var/www/html/grml
# bei RHEL-kompatiblem Apache Layout
umount /mnt

Jetzt wird noch ein passender PXE-Kernel samt initrd gebraucht. Den findet man am einfachsten auf der oben genannten Wiki-Seite in 32 Bit und 64 Bit.

Den darin enthaltenen Kernel und das initrd-Image kopiert man in sein tftproot-Verzeichnis, der Rest wird nicht benötigt.

tar xvjf grml_netboot_package*.tar.bz2
mkdir /tftpboot/grml
cp grml_netboot_package_grml-medium_2008.11-rc2/tftpboot/linux26 /tftpboot/grml
cp grml_netboot_package_grml-medium_2008.11-rc2/tftpboot/minirt26.gz /tftpboot/grml

Ein passender Eintrag in pxelinux.cfg/default sieht dann z.B. so aus:

LABEL grml-small-2008.11
 MENU LABEL grml-small 2008.11 (HTTP)
 kernel grml/2008.11/small-linux26
 append initrd=grml/2008.11/small-minirt26.gz \
 boot=live \
 fetch=http://grml.example.com/grml/grml-small.squashfs \
 nodhcp noeject vga=791 lang=de ssh=Str3ngG3h3im

Wichtig ist an dieser Stelle das Argument »boot=live«, damit im initrd-Startskript das richtige Skript zum Mounten des Live-Systems gestartet wird. Und natürlich »fetch=[URL]«. Das wird vom entsprechenden »live«-Skript ausgewertet und sorgt dafür, dass die Datei hinter [URL] in ein tmpfs geladen wird.

... und schon braucht Admin keine CDs mehr zu suchen...

Tipp am Rande: Seit 2008.11 verwendet grml squashfs 3.4 mit LZMA-Patch. Damit konnte mein CentOS aber nicht umgehen. Unter www.squashfs-lzma.org findet man alle Sourcen, um die Tools selber zu kompilieren. Damit kann man dann bequem das squashfs-Image entpacken, neue Software installieren und wieder zusammenpacken.

Pro-Linux
Pro-Linux @Facebook
Neue Nachrichten