用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的交换设备可供使用了,如果有本地硬盘作交换设备性能会更好些。
五、注意事项