之前搭建了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服务。