In the RHEL documentation (Chapter 4. "Diskless Environments", item #4) there is an in-accuracy in the rsync syntax usage.
rsync -a -e ssh golden_client:/ /diskless/whatever/root/
Use the following syntax which does not produce error messages:
rsync -v -a -e ssh --exclude='/sys/*' --exclude='/proc/*' golden_client:/ /diskless/whatever/root/
Other comments (that I find critial in my experience):
1) Make sure the following RPM is installed in the client: busybox-anaconda
(In my CentOS4.4 case it is: busybox-anaconda-1.00.rc1-5.x86_64.rpm)
2) Make sure there are no active NFS mounted partitions on the client before executing 'rsync'.
3) Make sure that the following 2 directories exist:
and that in the tftp definition file under /etc/xinted.d/tftp the following line is set correctly:
server_args = -s /tftpboot/linux-install
4) If pxelinux.0 does not exist under /tftp/linux-install copy it:
cp /usr/lib/syslinux/pxelinux.0 /tftpboot/linux-install/.
5) Pay attention to the directory hirarchy:
if under /etc/xinetd.d/tftp appears a line, as we wrote above: server_args = -s /tftpboot/linux-install
then in /etc/dhcpd.conf the reference to pxelinux.0 should be:
filename "linux-install/pxelinux.0"; or any other variation of it. which will make a failure in booting the diskless nodes.