Debian Diskless Terminals Howto
Installing packages on the serverYou'll need a nfs server, a dhcp server, a tftp server and pxelinux. Assuming everything will be on the same server: # apt-get install syslinux nfs-kernel-server tftpd-hpa Setting up the chrootCreate the chroot with debootstrap: # cd /opt # mkdir nfsroot # debootstrap -v testing /opt/nfsroot http://ftp.debian.org/main Now configure the minimalistic chroot: # cp /etc/resolv.conf /opt/nfsroot/etc/ # chroot /opt/nfsroot # apt-get update Install a debian kernel and useful tools in the chroot # apt-get install vim less procps passwd dhcp3-client nfsbooted module-init-tools net-tools Setup nfsbootedCopy the content of /etc/nfsbooted/fstab into /etc/fstab cat /etc/nfsbooted/fstab >> /etc/fstab Edit it to suit your needs. Add an entry to /etc/fstab to mount the / filesystem readonly so that nfsbooted's mountfix script can fix permissions at startup: / /.nfsroot none bind,ro 0 0 Create the .nfsroot dir mkdir /.nfsroot Configure inittab to start an xchooserreplace a tty entry in /etc/inittab by 1:2345:respawn:/sbin/getty 38400 tty1 -n -l /root/xchooser where /root/xchooser is a small script that runs X in -indirect mode on the XDMCP server: #!/bin/sh while true; do X -layout `hostname` -indirect xdmserver.mydomain dialog --yesno "shutdown `hostname` ?" 5 23 if [ $? = 0 ] ; then break; fi done shutdown -h now sleep 5 Xorg configurationInstall xorg: # apt-get install xserver-xorg xfonts-base Configure xorg: XXX TODO Configure pxelinux and the kerneltftpd comes configured to provide files from /var/lib/tftpboot on the server: # cd /var/lib/tftpboot # # symlink won't work if you keep the default -s option from tftpd : # cp /usr/lib/syslinux/pxelinux.0 . # mkdir pxelinux.cfg Create a pxelinux configuration : edit /var/lib/tftpboot/pxelinux.cfg/default: LABEL netboot kernel vmlinuz append rw ip=all and go read nfsroot.txt in kernel sources for more info about the parameters that could be usefully passed to the kernel. |