Friday, April 30, 2010

Ubuntu {9.10 and 10.04} x64 Diskless Terminal Client Project


Current setting:

Terminal/NFS/DNS/DHCP server IP: 192.168.1.2
Router IP: 192.168.1.1
Kernel: 2.6.31-21-generic


Instructions:


A. Server side:

Blue item: Replace with your setting
Red item: Follow


# sudo apt-get install dhcp3-server tftpd-hpa syslinux nfs-kernel-server initramfs-tools
# sudo vi /etc/dhcp3/dhcpd.conf

allow booting;
allow bootp;
subnet 192.168.1.0 netmask 255.255.255.0 {
  range 192.168.1.10 192.168.2.15;
  option broadcast-address 192.168.1.255;
  option routers 192.168.1.1;
  option domain-name-servers 192.168.1.2;

  filename "/pxelinux.0";
}
 


# sudo /etc/init.d/dhcpd3 start
# sudo vi /etc/default/tftpd-hpa

9.10:

RUN_DAEMON="yes"
OPTIONS="-l -s /tftpboot"


10.04:

TFTP_DIRECTORY="/tftpboot"
TFTP_OPTIONS="--listen --secure"



# sudo mkdir -p /tftpboot/pxelinux.cfg
# sudo cp /usr/lib/syslinux/pxelinux.0 /tftpboot

# sudo vi /tftpboot/pxelinux.cfg/default

LABEL linux
KERNEL vmlinuz-2.6.31-21-generic
APPEND root=/dev/nfs initrd=initrd.img-2.6.31-21-generic nfsroot=192.168.1.2:/nfsroot ip=dhcp rw



# sudo chmod -R 777 /tftpboot
# sudo /etc/init.d/tftpd-hpa start
# sudo mkdir /nfsroot
# sudo vi /etc/exports

/nfsroot             192.168.1.*(rw,no_root_squash,async)


# sudo exportfs -rv
# sudo cp /boot/vmlinuz-`uname -r` ~
# sudo vi /etc/initramfs-tools/initramfs.conf

BOOT=nfs
MODULES=netboot
NFSROOT=
192.168.1.2:/nfsroot

# sudo mkinitramfs -o ~/initrd.img-`uname -r`
# sudo cp -axv /. /nfsroot/.
# for x in usr var home lib dev opt selinux mnt srv; do sudo mkdir /nfsroot/$x ; sudo cp -axv /$x/. /nfsroot/$x/. ; done

# sudo cp /nfsroot/home/`whoami`/*-`uname -r` /tftpboot/
# sudo vi /nfsroot/etc/network/interfaces

#auto eth0
iface eth0 inet manual



#sudo vi /nfsroot/etc/fstab

proc            /proc           proc    defaults        0       0
/dev/nfs       /               nfs    defaults          1       1
none            /tmp            tmpfs   defaults        0       0
none            /var/run        tmpfs   defaults        0       0
none            /var/lock       tmpfs   defaults        0       0
none            /var/tmp        tmpfs   defaults        0       0







# sudo vi /nfsroot/etc/dhcp3/dhcpd.conf

delete these lines:

allow booting;

allow bootp;
subnet 192.168.1.0 netmask 255.255.255.0 {
  range 192.168.1.10 192.168.2.15;
  option broadcast-address 192.168.1.255;
  option routers 192.168.1.1;
  option domain-name-servers 192.168.1.2;

  filename "/pxelinux.0";
}


# sudo vi /nfsroot/etc/exports

delete these line:

/nfsroot             192.168.1.*(rw,no_root_squash,async)


B. Client side:

1. Boot from LAN (PXE Boot)
2. To add swap later on:

# sudo apt-get install dphys-swapfile
# sudo losetup /dev/loop0 /var/swap
# sudo swapon /dev/loop0

Note on swap:
1. Swap will be auto 2x of your memory
2. Swap set is not permanent (cleared during re-boot, to set again --> re-run 2 items on the bottom)


General News - Play-Asia.com