Diskless SL6 Client


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



Requirements

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.


DHCP Server

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.


Create PXE bootable image

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).


TFTP Server

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

PXE Linux boot loader

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