UOS操作系统如何实现自动安装(一)UOS操作系统如何实现自动安装(二)

================================================================
PXE工作原理这里就不多说了,网上有很多介绍。

这里说一下实验过程:
     1、配置nfs服务,把镜像文件共享出去。
     2、配置tftp服务,并把pxe启动引导文件共享出去,还有内核文件。
     3、修改grub文件,指定系统镜像位置。
     4、配置dhcp服务,指定tftp路径,pxe启动文件的位置。

实验环境:
     1、两个vmware虚拟机:PXE server、client
     2、虚拟机一块网卡,网络选择NAT
     3、client虚拟机的固件类型改为:UEFI

实验过程:
################################################################
1、安装NFS
     # apt -y install nfs-kernel-server
     # systemctl restart nfs-server
     # systemctl enable nfs-server

     创建NFS目录
     # mkdir /var/nfs
     # echo “/var/nfs *(rw,sync,no_subtree_check)” >> /etc/exports
     # exportfs -arv

     复制镜像内容到NFS目录
     # mkdir /var/nfs/amd64
     # mount xxx.iso /mnt
     # cp -r /mnt/* /var/nfs/amd64/
     # cp -r /mnt/.disk /var/nfs/amd64/

     修改settings.ini文件
     # vi /var/nfs/amd64/oem/settings.ini
         DI_FULLDISK_MULTIDISK_DEVICE=“/dev/sda” #根据个人磁盘情况来

     # chown -R root /var/nfs
     # chmod -R 755 /var/nfs
################################################################
2、配置TFTP(DNS附带这个功能)
     创建tftp目录
     # mkdir -p /var/tftp/amd64

     获取网络安装文件:vmlinuz、initrd.lz
     # apt install debian-installer-10-netboot-amd64
     # cp -r /usr/lib/debian-installer/images/10/amd64/text/debian-installer /var/tftp

     修改grub
     # vi /var/tftp/amd64/debian-installer/amd64/grub/grub.cfg
     set default=0      #默认选择第一个
     set timeout=3      #等待超时3秒
     set menu_color_normal=white/black
     set menu_color_highlight=black/light-gray

     insmod gzio

     menuentry “Install uos” {
     set gfxpayload=keep
     linux /debian-installer/amd64/live/vmlinuz console=tty boot=live netboot=nfs nfsroot=192.168.0.1:/var/nfs/amd64/ components union=overlay locales=zh_CN.UTF-8 livecd-installer –
     initrd /debian-installer/amd64/live/initrd.lz
     }
     menuentry “Try uos without installing” {
     set gfxpayload=keep
     linux /debian-installer/amd64/live/vmlinuz console=tty boot=live union=overlay quiet splash –
     initrd /debian-installer/amd64/live/initrd.lz
     }

     拷贝内核文件到TFTP,并修改权限
     # cp -ar /var/nfs/amd64/live/ /var/tftp/amd64/debian-installer/amd64/
     # cp /var/tftp/debian-installer/amd64/grubx64.efi /var/tftp/amd64/
     # chown -R dnsmasq. /var/tftp
################################################################
3、虚拟机网卡设置静态IP(因为一会儿vmware要关闭自带的dhcp功能)
     # vi /etc/network/interfaces
     allow-hotplug ens33 //根据自己的网卡名称来
     iface ens33 inet static //根据自己的网卡名称来
     address 192.168.0.1
     netmask 255.255.255.0
     gateway 192.168.0.1

     # systemctl restart networking
     # systemctl restart NetworkManager
################################################################
4、配置DHCP(安装dnsmasq)
     # apt -y install dnsmasq

     # vi /etc/dnsmasq.conf
         log-queries #开启日志
         log-facility=/var/log/dnsmasq/dnsmasq.log    &nbsp ;#日志文件路径
         listen-address=192.168.0.1      #监听IP地址:本机IP
         dhcp-boot=/debian-installer/amd64/bootnetx64.efi     #指定pxe启动引导文件
         interface=ens33     #绑定的网卡
         bind-interfaces
         dhcp-range=10.10.10.100,10.10.10.150,1h     #dhcp地址池,租期1小时
         dhcp-option=3,10.10.10.10      #网关
         dhcp-option=6,10.10.10.10      #DNS
         server=114.114.114.114      #dns请求到上级服务器
         dhcp-option=28,10.10.10.255      #广播地址
         dhcp-option=42,0.0.0.0      #NTP地址
         enable-tftp      #启动dnsmasq内置tftp服务
         tftp-root=/tftp      #tftp根目录

     # systemctl restart dnsmasq.service
     # systemctl status dnsmasq.service

OK了,最后client使用pxe启动即可。(不要忘记关闭vmware的DHCP功能,还有固件选择:UEFI)