FreeBSD无盘启动的详细情况,请看FreeBSD的手册,最好看英文手册,这部分中文手册更新有点慢,还没跟上:
http://www.freebsd.org/doc/en_US.ISO8859-1/books/handbook/network-diskless.html
实际使用中,要注意几点:
1、virtualbox 会提示: ignoring unsupported root path,如图:
这是个virtualbox的一个限制,默认使用了ipxe来启动,造成无法找到根文件。网上说可以用virtualbox的扩展包来实现pxe,下载安装扩展包后,如果不是intel的网卡,系统一样会卡在获取IP地址的地方,在真实的机器上用就没有问题:
2、NFS配置:
1)默认/etc里面没有export,需要自行创建一个。
2)不能使用ln的连接,否则后面会报错。
3)如果允许多个网段访问,则需要写多行:
# vi /etc/exports
/web/boot -ro -alldirs -network 192.168.60.0/24
/web/boot -ro -alldirs -network 10.72.6.0/24
3、dhcpd.conf中有两个路径:
# path of boot loader obtained via tftp
filename "FreeBSD/boot/pxeboot" ;
# pxeboot boot loader will try to NFS mount this directory for root FS
option root-path "192.168.60.1:/web/boot/FreeBSD/" ;
前一个filename是pxeboot的路径,相对于tftp,tftp的IP就是next-ip,所以前面需要加IP地址和协议名,直接从tftp的根目录开始写。
后一个是root的路径,这个一般是nfs,这个会跟next-ip不同,也有可能不是nfs,所以最好加上IP地址和协议号,甚至是这样完整的URL:
nfs://192.168.60.1/web/boot/FreeBSD/
4、手册中还提到用内存盘做/etc和/var:
# chroot ${NFSROOTDIR}
# mkdir -p conf/base
# tar -c -v -f conf/base/etc.cpio.gz --format cpio --gzip etc
# tar -c -v -f conf/base/var.cpio.gz --format cpio --gzip var
这方面要注意,如果你制作了这两个文件,一旦你修改了这两个目录中的任何文件,就需要重新制作这两个压缩文件,包括修改了用户名和密码,更改了IP配置等。