Skip to content
Klowner edited this page Sep 13, 2010 · 3 revisions

What does it do? I suppose showing the results of what fuse_pxebootfs does would make the most sense.

fuse_pxebootfs is mounted on your tftpd server’s pxelinux.cfg directory and serves up a custom-built PXE config file after initializing a new AUFS branch of a specified root directory for PXE clients. This essentially auto-provisions a new root directory for new PXE network boot clients without the need for multiple copies of an nfsroot.

Prior to PXE client making config request, fuse_pxebootfs is mounted on /netboot/root/boot/pxelinux.cfg/ and the tftpd root is /netboot/root/boot

# ls -l /netboot/root/boot/pxelinux.cfg/
total 4
drwxr-xr-x 2 root root 4096 2009-10-13 12:00 by-ip
#

Now a PXE client will make a request for a config file. The DHCP server assigns the IP address of 192.168.1.124 to the client, so fuse_pxebootfs will respond to C0A8017C (192.168.1.124 in hex). It returns the following PXE config.

default rendernode
label rendernode
kernel vmlinuz26
append hostname=C0A8017C initrd=kernel26.img rootfstype=nfs root=/dev/nfs nfsroot=192.168.1.1:/netboot/node/C0A8017C,v3,rsize=16384,wsize=16384 ip=dhcp
prompt 0 

Notice that nfsroot=192.168.1.1:/netboot/node/<NODE> from the pxelinux.cfg.template is translated to nfsroot=192.168.1.1:/netboot/node/C0A8017C.

Now if we look at the fuse_pxebootfs structure, we’ll notice some changes.

# ls -l /netboot/root/boot/pxelinux.cfg
total 5
drwxr-xr-x 2 root root 4096 2009-10-13 12:44 by-ip
-rw-rw-rw- 1 root root  215 2009-10-13 12:44 C0A8017C
# ls -l /netboot/root/boot/pxelinux.cfg/by-ip
total 4
lrwxr-xr-x 2 root root 4096 2009-10-13 12:44 192.168.1.124 -> /netboot/node/C0A8017C

The auto-generated PXE config exists in the mountpoint, as well as a by-ip directory which holds symbolic links to each node’s respective root partition.

Clone this wiki locally