之前搭建了PXE自动化安装操作系统,现搭建一个PXE无盘工作站,跟PXE安装系统类似,只是PXE安装操作系统是客户端通过访问http或者ftp的方式,下载安装所需要的系统文件,而PXE无盘工作站是提供已安装好的操作系统文件,用挂载的方式,把整个操作系统挂载到远程服务器上,让其运行挂载盘上的操作系统。

环境介绍:

1、一台1c2g的VMware虚拟机,操作系统为CentOS7.9,IP地址为192.168.1.11。

2、需要准备好已安装好的系统文件,这里就拿CentOS7.9版本来举例子。

3、需要搭建DHCP、TFTP、NFS等服务。

4、准备好系统内核文件vmlinuz(系统镜像里有)、镜像文件initrd.img(系统镜像里有)、pxe引导文件pxelinux.0(安装syslinux,在/usr/share/syslinux下)。

5、这里只介绍单个工作站,如果你需要多个工作站,那么你可以配置多个nfs目录,把每个系统隔离开来。

 

环境搭建

1、安装DHCP和TFTP,这里不多做介绍,请参考PXE装机服务搭建(安装CentOS7),配置、文件存放位置都一样,这里配置tftp服务的根目录为/var/lib/tftpboot/netboot。

     1.1、把vmlinuz、initrd.img、pxelinux.0文件复制到/var/lib/tftpboot/netboot下。

     1.2、创建启动菜单



mkdir  /var/lib/tftpboot/netboot/pxelinux.cfg
cat <<EOF > /var/lib/tftpboot/netboot/pxelinux.cfg/default
default auto
prompt 0
label auto
kernel vmlinuz
append initrd=initrd.img root=nfs:192.168.1.11:/nfs selinux=0 ip=dhcp rw nomodeset vga=0x0314
EOF


参数介绍:

prompt 0 表示工作站立即启动,1 表示工作站等待选择

kernel 指定内核文件

initrd 指定镜像文件

root 指定nfs路径

selinux 设置selinux

rw 设置工作站系统为可读写

nomodeset 这个参数是配合后面的vga=参数一起使用,设置分辨率

vga  这个参数值是设置分辨率,0x 表示十六进制,0314 表示800*600 16 位色;若无特殊需求,建议删除这2个参数


 


2、准备nfs服务的共享目录。



mkdir /netboot


 

3、安装、配置、启动nfs,并设置为开机启动。



yum -y install nfs-utils
vim /etc/exports
#加入以下配置,其意思是让192.168.1.0/24这个网段能访问/nfs这个目录
/netboot 192.168.1.0/24(rw,async,no_root_squash)

systemctl start nfs
systemctl enable nfs


 

4、把系统复制到/nfs目录下,用--exclude参数去除不需要的目录。



rsync -a --exclude='/proc' --exclude='/sys' --exclude='/tmp' --exclude='/var/tmp' --exclude='/etc/mtab' --exclude='/nfs' --exclude='/var/lib/tftpboot' /* /netboot


 

5、创建之前去除的目录,保证系统结构完整性,如果你有其他的目录是系统默认不需要的,可以不用创建。



cd /netboot
mkdir proc sys tmp var/tmp


 

6、配置系统启动挂载项,删掉所有本地的挂载,配置nfs挂载。



vim /netboot/etc/fstab
#删除其他挂载,配置上以下挂载信息
192.168.1.11:/netboot / nfs defaults 0 0


 

7、删除ifcfg-lo以外的网卡配置文件,可以先配置好你所需要的系统的基本信息,比如主机名,selinux的开关情况等,这类不多做介绍。



rm -f /netboot/etc/sysconfig/network-scripts/ifcfg-eth*


 

8、到这里配置就完成了,可以启动无盘服务器了,在启动无盘服务器前,确认一下问题。

     8.1、确保dhcp、tftp、nfs的服务为启动状态。

     8.2、防火墙为关闭状态。

     8.3、网段中不存在其他dhcp服务。