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.