一、准备工作 Centos 8.0(图形化界面) 虚拟机1台,内存最少2G。 软件:Vmware Workstation 15 dhcp、tftp、Apache都通过YUM安装。 dhcp 服务器用来提供IP信息,以及tftp(存放有pxelinux.0引导程序以及内核文件、参数文件)服务器地址。 Apache 服务器用来存放安装源和应答文件。 可以把这几个服务安装在不同的服务器上,也可以装在同一台服务器。 本次实验是将这些服务安装在同一台服务器上。 二、配置DHCP 安装dhcp yum install dhcp-server -y rpm -ql dhcp-server |grep example 查找dhcp的实例配置文件cat /usr/share/doc/dhcp-server/dhcpd.conf.example >/etc/dhcp/dhcpd.conf 把实例配置文件内容写到dhcp的配置文件,因为/etc/dhcp/dhcpd.conf 装好是没有内容的。
vim /etc/dhcp/dhcp.conf 删除注释行,只保留最多的那一个subnet
systemctl start dhcpd systemctl enable dhcpd 三、安装并配置tftp yum install tftp tftp-server xinetd -y vim /etc/xinetd.d/tftp service tftp { socket_type = dgram protocol = udp wait = yes user = root server = /usr/sbin/in.tftpd server_args = -s /var/lib/tftpboot disable = no per_source = 11 cps = 100 2 flags = IPv4 }
systemctl start tftp systemctl restart xinetd systemctl enable tftp systemctl enable xinetd
四、拷贝引导程序、内核文件到tftp 根目录下。 4.1、引导程序 yum install syslinux -y cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/ 4.2、内核文件 vmlinuz initrd.img 这两个文件在光盘里面有,直接挂载,拷贝。
![]()
这个文件夹是用来存放pxe的配置文件的,而且必须是这个名字。
vim /var/lib/tftpboot/pxelinux.cfg/default
![]()
![]()
保存退出。 4.3、其他文件 引导菜单配置文件: isolinux.cfg 系统自带的两种窗口模块之一:vesamenu.c32 窗口提示信息文件:boot.msg 窗口背景图片:splash.png
![]()
![]()
![]()
其他辅助文件:
五、安装Apache yum install httpd -y mkdir -p /var/www/html/dvd 把光盘内容拷贝到这个文件夹下面 cd /var/www/html/dvd cp -r /mnt/cdrom/* . mv EFI images isolinux media.repo TRANS.TBL BaseOS/ 修改httpd.conf vim /etc/httpd/conf/httpd.conf
![]()
![]()
保存退出,启动服务,设置开机启动。 systemctl start httpd systemctl enable httpd 六、拷贝安装centos8.0 生成的自动应答文件到/var/www/html/ 并测试能否访问。 cp /root/anaconda-ks.cfg /var/www/html/ks.cfg chmod 644 /var/www/html/ks.cfg
七、修改ks.cfg vim /var/www/html/ks.cfg 7.1、把原来标准分区,改为LVS分区,按百分比来分配空间。 修改成下面内容:
7.2、添加安装完成后的脚本。(可以忽略) vim /var/www/html/ks.cfg
ks.cfg全部内容 #version=RHEL8 ignoredisk --only-use=nvme0n1 # Partition clearing information clearpart --none --initlabel # Use graphical install graphical # System bootloader configuration bootloader --append=" net.ifnames=0 biosdevname=0 crashkernel=auto" --location=mbr # Network information network --bootproto=dhcp --device=eth0 --noipv6 # Use network installation url --url="http://192.168.189.230/dvd/BaseOS/" # Keyboard layouts keyboard --vckeymap=cn --xlayouts='cn' # System language lang zh_CN.UTF-8 # SELinux configuration selinux --disabled # Firewall configuration firewall --disabled # Do not configure the X Window System skipx #system timezone timezone Asia/Shanghai --isUtc reboot # Root password rootpw --iscrypted $6$tZGVeUZuphQGb7zB$nLVFZfBJtDNlJNq911S5gtFhgXtQOBJ/lNAfs4Rrup8eUpYDX/Hjhe9ar5hN3YjcI4pZLjCNsDGLH1v4hi8S/. # Partition clearing information clearpart --all --initlabel # Disk partitioning information part /boot --fstype="xfs" --size=512 part pv.01 --size=1 --grow volgroup vg01 pv.01 logvol / --vgname=vg01 --percent=90 --name=lv01 logvol swap --vgname=vg01 --percent=10 --name=lv02 # Run the Setup Agent on first boot firstboot --enable # System services services --enabled="chronyd" %packages @^minimal-environment %end %addon com_redhat_kdump --disable --reserve-mb='auto' %end %anaconda pwpolicy root --minlen=6 --minquality=1 --notstrict --nochanges --notempty pwpolicy user --minlen=6 --minquality=1 --notstrict --nochanges --emptyok pwpolicy luks --minlen=6 --minquality=1 --notstrict --nochanges --notempty %end %post useradd tom echo tom.com123 | passwd --stdin tom yum install vim lrzsz wget syslog gcc gcc-c++ network-scripts net-tools -y GRUPF='/etc/default/grub' IP=`ifconfig ens160 | awk -F'[: ]+' 'NR==2{print $3}'` Netm=`ifconfig ens160 | awk -F'[: ]+' 'NR==2{print $5}'` Gw=`route -n | awk -F'[: ]+' 'NR==3{print $2}'` DN=`cat /etc/resolv.conf |grep "nameserver"|awk -F' ' 'NR==1{print $2}'` cp /etc/resolv.conf /etc/resolv.conf.bak cd /etc/sysconfig/network-scripts/ cat >ifcfg-eth0 <<EOF TYPE=Ethernet PROXY_METHOD=none BROWSER_ONLY=no BOOTPROTO=static DEFROUTE=yes IPV4_FAILURE_FATAL=no NAME=eth0 DEVICE=eth0 ONBOOT=yes IPADDR=$IP NETMASK=$Netm GATEWAY=$Gw DNS1=$DN EOF rm -rf /etc/sysconfig/network-scripts/ifcfg-ens160 systemctl restart network sed -i 's/GRUB_CMDLINE_LINUX="/GRUB_CMDLINE_LINUX="ipv6.disable=1 /g' $GRUPF grub2-mkconfig -o /boot/grub2/grub.cfg %end 八、测试,vmware workstation 15 虚拟机,自动安装系统。 需要把虚Vmware 对应的网卡的DHCP关掉。本实验用的是Net8(NAT)
![]()
![]()
![]()
![]()
![]()
![]()
自动重新启动
![]()
![]()
![]()
![]()
![]()
![]()
—————————————END————————————