Signs of Triviality

Opinions, mostly my own, on the importance of being and other things.
[homepage] [index] [jschauma@netmeister.org] [@jschauma] [RSS]

Solaris pxeboot with pxelinux

Apparently solaris pxebooting is usually done via pxegrub. Trying to use pxelinux, I ran into the same problems as outlined here.

That is, after using a pxelinux menu entry like the following:

LABEL solaris
MENU DEFAULT
        MENU LABEL Solaris Jumpstart
        KERNEL mboot.c32
        APPEND boot/multiboot kernel/unix -v install -B console=ttya ---
boot/x86.miniroot
        IPAPPEND=3
the host would boot properly, but then not be able to determine its network configuration and drop into the shell.

After searching for a solution to the problem, I finally decided to just make use of pxelinux's IPAPPEND and change the install script in the miniroot. So, I did something along the following (on a FreeBSD 6.x system):

cp x86.miniroot x86.miniroot.not
gzip -d -c x86.miniroot > miniroot.img      # uncompress the miniroot
mdconfig -a -t vnode -u 0 -f  miniroot.img  # configure image as a memory
disk
mount /dev/md0 /mnt                         # mount the memory disk
cd /mnt/sbin
patch </tmp/install-discovery.diff          # see changes below
umount /mnt
mdconfig -d -u 0
gzip -9 miniroot.img
mv miniroot.img.gz x86.miniroot

The changes to the install-discovery script are here; they are just small changes to extract the network information from the boot arguments passed in via IPAPPEND=3.

After this, the client appears to netboot and enter jumpstart normally.

July 25, 2007


[Brilliant Ideas (I)] [index] [Google blocking certain User-Agents]