IMPORTANT: This description is valid for SL6 only. For SL4 and SL5 please see Diskless SL4 and SL5 Client
BUG - Diskless Client is broken on SL64
It's possible to boot the LiveCD image over PXE. However, in contrast to SL4 and SL5 the whole LiveCD has to be loaded twice into RAM. PXE Client loads the LiveCD into the client RAM and the init script finds and loopback-mounts the ISO image into the client RAM again. Therefore the amount of required RAM is much higher. You need more than twice as much RAM as the size if the LiveCD iso file to successfully boot the LiveCD over PXE. As a rule of thumb use
Required RAM = 2 x "ISO image filesize" + 60MB
Further requirements are
You can either run all services (DHCP, TFTP) on one machine or you can use separate machines. More details about how to setup PXE/DHCP/TFTP can be found at the Syslinux - PXElinux Question page. Here I just give a brief overview.
The DHCP server points the client to the pxelinux boot loader (file: pxelinux.0). The Client will get pxelinux.0 over TFTP. Here's a sample entry for an ISC DHCP server:
next-server your.tftpserver.com; filename "/tftpboot/pxelinux.0";
Note that if your particular TFTP daemon runs under chroot, you almost certainly should not include the /tftpboot prefix in the filename statement
filename "pxelinux.0";
More information can be found here.
To create a PXE bootable image out of the LiveCD iso file run livecd-iso-to-pxeboot that is included in livecd-tools. First install livecd-tools
yum install livecd-tools
Now run livecd-iso-to-pxeboot, where in the example below SL-63-x86_64-2012-08-24-LiveCD.iso is the LiveCD iso file.
livecd-iso-to-pxeboot SL-63-x86_64-2012-08-24-LiveCD.iso
This will create a folder tftpboot with the following files
initrd0.img pxelinux.0 pxelinux.cfg/default vmlinuz0
Copy these files to the TFTP server into the folder /var/lib/tftpboot (see below).
Install the tftp-server
yum install tftp-server
Enable the TFTP server by changing in /etc/xinetd.d/tftp "disable = yes" to disable = no. Per default the TFTP directory on the server is set to /var/lib/tftpboot.
Start TFTP server by starting xinetd
/etc/init.d/xinetd start
The pxelinux configuration files are stored in the directory:
/var/lib/tftpboot/pxelinux.cfg/
where /var/lib/tftpboot/pxelinux.cfg/default is the default configuration file. For example:
DEFAULT sl6 TIMEOUT 20 PROMPT 0 LABEL sl6 KERNEL vmlinuz0 APPEND rootflags=loop initrd=initrd0.img root=live:/SL-63-x86_64-2012-08-24-LiveCD.iso rootfstype=auto ro liveimg quiet rhgb rd_NO_LUKS rd_NO_MD rd_NO_DM ONERROR LOCALBOOT 0
It's possible to have more than one PXE configuration file (depending on IP, subnet, MAC). For more info see the PXE Webpage at syslinux. The syntax of the pxelinux configuration files are equal to the one of syslinux configuration file. See How do I Configure SYSLINUX?.
The LABEL (in the above example "sl6") has to be typed on the client at boot prompt. Whereas DEFAULT defines the default boot label. The path to the KERNEL (vmlinuz0) and to initrd (initrd0.img) is given relatively to the /var/lib/tftpboot directory.
Kernel parameters can be passed with the APPEND option. After APPEND everything should be on the same line.
IMPORTANT:Remove from the APPEND line the option check to prevent the verification of the LiveCD image.
If you like, you can add more boot parameters (for example: pw=my_password, cups=mycupsserver, ..).
Last modified: Friday, 03-May-2013 21:31:23 CEST by Urs Beyerle