用Linux作服务器安装Ubuntu PXE无盘站的的文章很多,我是用FreeBSD作服务器来安装的。FreeBSD的一些必要的网络服务设置比较容易,而且FreeBSD是十分稳定高效的操作系统。
一、服务器的安装和配置
1 、安装服务器操作系统 
安装FreeBSD 7.0,为求简洁不必安装有关X的东西,但ports要装上。 
以下操作都需要root权限。 
2、执行以下命令安装DHCP服务: 
cd /usr/ports/net/isc-dhcp3-server 
make install 
安装完成后,执行以下命令配置服务: 
cd /usr/local/etc 
cp dhcpd.conf.sample dhcpd.conf 
编辑/usr/local/etc/dhcpd.conf,内容如下:(每行#后面的不要输入,仅是说明) 
authoritative; 
ddns-update-style none; 
subnet 192.168.1.0 netmask 255.255.255.0 { # 网络和子网掩码,按照你自己的网络参数修改 
range 192.168.1.100 192.168.1.120; # 分配给无盘客户机的地址范围 
option domain-name-servers 192.168.1.1; # 指定客户机的域名解析服务器地址 
option routers 192.168.1.1; # 指定客户机的网关 
option broadcast-address 192.168.1.255; # 广播地址 
default-lease-time 600; 
max-lease-time 7200; 
} 
host ubuntu { # ubuntu是客户机器名 
hardware ethernet 00:0C:29:4A:D5:EE; # 客户机启动网卡MAC地址, 
filename "pxelinux.0"; # 客户机启动文件名 
server-name "192.168.1.5"; # TFTP服务器地址,无此行即默认是本机 
} # 如有多个无盘站,可参照以上五行添加它们。 
3、配置TFTP服务 
编辑文件/etc/inetd.conf,删除包含tftp的两行前面的注释符号# 
创建TFTP服务目录 
mkdir /tftpboot 
mkdir /tftpboot/pxelinux.cfg 
准备启动文件 
下载syslinux-3.71.tar.gz 
解压到/root/ 
tar xvzf syslinux-3.71.tar.gz -C /root/ 
把启动文件pxelinux.0拷贝到/tftpboot下 
cp /root/syslinux-3.71/core/pxelinux.0 /tftpboot/ 
创建pxelinux.0的配置文件/tftpboot/pxelinux.cfg/default,内容如下: 
DEFAULT Ubuntu 
LABEL Ubuntu 
kernel vmlinuz 
append initrd=initrd.img root=/dev/nfs nfsroot=192.168.1.5:/exports ip=dhcp rw 
PROMPT 1 
TIMEOUT 3 
4、配置NFS服务 
创建NFS服务目录 
mkdir /exports 
这个目录要保证有足够的空间,以便容纳无盘站的所有文件,最好是把单独一块磁盘挂载到这个目录。 
编辑NFS服务配置文件/etc/exports, 内容如下: 
/exports -maproot=0 -network 192.168.1.0 -mask 255.255.255.0 
5、设置以上服务在开机时自动运行 
编辑/etc/rc.conf文件,内容如下: 
defaultrouter="192.168.1.1" 
hostname="FB7.mydomain" 
ifconfig_em0="inet 192.168.1.5 netmask 255.255.255.0" 
dhcpd_enable="YES" 
inetd_enable="YES" 
rpcbind_enable="YES" 
nfs_server_enable="YES" 
至此,服务器配置完成,把服务器重新启动一次。 
二、工作站的设置
1、安装系统 
安装一台有盘的Ubuntu 8.04 Desktop,配置好网络,使用DHCP或固定IP地址均可,用新立得软件管理程序安装好需要的软件,配置汉语支持等,特别要安装NFS客户端软件nfs-common以便用来把工作站系统文件上传到服务器,安装initramfs-tools以便生成initrd.img文件。 
2、生成适合网络启动的initrd.img 
首先配置/etc/initramfs-tools/initramfs.conf, 文件内容如下: 
MODULES=netboot 
BUSYBOX=y 
BOOT=nfs 
DEVICE=eth0 
NFSROOT=auto 
存盘后执行下面命令: 
mkinitramfs -o /root/initrd.img 
这样在/root目录下生成了适合网络启动的initrd.img。 
3、把 工作站系统文件上传到服务器 
服务器开机后 ,在工作站端执行以下命令挂载网络文件系统: 
mount 192.168.1.5:/exports /mnt 
把工作站系统文件上传到服务器 
cp -ax /. /mnt/. 
cp -ax /dev/. /mnt/dev/. 
4、修改网络卡的设置 
编辑 /mnt/etc/network/interfaces,内容如下: 
auto lo 
iface lo inet loopback 
iface eth0 inet manual 
5、修改文件挂载表 
编辑/mnt/etc/fstab, 内容如下: 
# /etc/fstab: static file system information. 
# <file system> <mount point> <type> <options> <dump> <pass> 
proc /proc proc defaults 0 0 
/dev/nfs / nfs defaults 1 1 
然后执行下面命令卸载网络文件系统: 
umount /mnt 
三、服务器端的最后设置
在服务器上用root帐户登录,执行以下命令: 
cp /exports/vmlinuz /tftpboot/ 
cp /exports/root/initrd.img /tftpboot/ 
重新启动服务器,摘掉工作站的硬盘,开机后设置bios为PXE启动,工作站应该启动到图形登录界面。 
四、交换设备的设置
以上启动成功的无盘工作站是没有交换设备的,运行某些大型程序时会有问题,可按如下方法添加交换设备: 
在终端上执行下列命令: 
dd if=/dev/zero of=$HOME/swapfile bs=1024 count=512000 
sudo losetup /dev/loop0 $HOME/swapfile 
sudo mkswap /dev/loop0 
sudo swapon /dev/loop0 
swapon -s 
应该看到有512M的交换设备可供使用了,如果有本地硬盘作交换设备性能会更好些。 
五、注意事项
