一、将centos6、7、8镜像依次连接到虚拟机上
二、关闭此虚拟机上SELinux和防火墙
三、下载http、rftp、dhcp服务并开启
[14:53:30 root@yp ~]#yum -y install http tftp-server dhcp-server syslinux-nonlinux
[14:55:49 root@yp ~]#systemctl enable --now httpd tftp dhcp
四、配置dhcp文件
[14:56:26 root@yp ~]#vi /etc/dhcp/dhcpd.conf
#
option domain-name "example.org"; # 域名自动补全
option domain-name-servers 180.76.76.76, 223.5.5.5; #DNS地址
default-lease-time 86400; #租期秒
max-lease-time 172800; #最长租期
log-facility local7;
subnet 10.0.0.0 netmask 255.255.255.0 {
range 10.0.0.100 10.0.0.150; #DHCP地址范围
option routers 10.0.0.2; #网关
next-server 10.0.0.18; #TFTP服务器地址
filename "pxelinux.0"; #bootloader启动文件名称
}
~
~
五、准备yum源和相关目录
[15:07:19 root@yp ~]#mkdir /var/www/html/centos/{6,7,8}/os/x86_64
[15:09:32 root@yp ~]#mount /dev/sr0 /var/www/html/centos/8/os/x86_64/
[15:09:32 root@yp ~]#mount /dev/sr1 /var/www/html/centos/7/os/x86_64/
[15:09:32 root@yp ~]#mount /dev/sr2 /var/www/html/centos/6/os/x86_64/
六、制作centos6、centos7、centos8的kickstart应答文件
制作方式参考之前文章
[16:28:38 root@yp ~]#ls /var/www/html/ksdir/
ks6.cfg ks7.cfg ks8.cfg
七、拷贝TFTP所需文件
cd /var/lib/tftpboot/
[15:58:52 root@yp tftpboot]#cp /misc/cd/isolinux/vmlinuz .
[15:58:52 root@yp tftpboot]#cp /misc/cd/isolinux/initrd.img .[15:52:58 root@yp ~]#cp /usr/share/syslinux/menu.c32 .
[15:58:52 root@yp tftpboot]#cd /misc/cd/isolinux/
[15:57:16 root@yp isolinux]#cp ldlinux.c32 libcom32.c32 libutil.c32 /var/lib/tftpboot/
[15:58:46 root@yp isolinux]#cd /var/lib/tftpboot/
[15:58:52 root@yp tftpboot]#mkdir pxelinux.cfg
[16:01:34 root@yp tftpboot]#cp /data/iso/isolinux/isolinux.cfg pxelinux.cfg/default
[16:15:08 root@yp ~]#tree /var/lib/tftpboot/
/var/lib/tftpboot/
├── centos6
│ ├── initrd.img
│ └── vmlinuz
├── centos7
│ ├── initrd.img
│ └── vmlinuz
├── centos8
│ ├── initrd.img
│ └── vmlinuz
├── ldlinux.c32
├── libcom32.c32
├── libutil.c32
├── menu.c32
├── pxelinux.0
└── pxelinux.cfg
└── default
八、修改启动菜单
[16:32:00 root@yp ~]#vi /var/lib/tftpboot/pxelinux.cfg/default
default menu.c32
timeout 60
menu title CentOS Linux 8.0.1905
label linux 6
menu label Auto Install CentOS Linux ^6
kernel centos6/vmlinuz
append initrd=centos6/initrd.img ks=http://10.0.0.18/ksdir/ks6.cfg
label linux 7
menu label Auto Install CentOS Linux ^7
kernel centos7/vmlinuz
append initrd=centos7/initrd.img ks=http://10.0.0.18/ksdir/ks7.cfg
label linux 8
menu label Auto Install CentOS Linux ^8
kernel centos8/vmlinuz
append initrd=centos8/initrd.img ks=http://10.0.0.18/ksdir/ks8.cfg
label rescue
menu label ^Rescue a CentOS Linux system 6
kernel centos6/vmlinuz
append initrd=centos6/initrd.img inst.repo=http://10.0.0.18/centos/6/os/x86_64/ rescue quiet
label rescue
menu label ^Rescue a CentOS Linux system 7
kernel centos7/vmlinuz
append initrd=centos7/initrd.img inst.repo=http://10.0.0.18/centos/7/os/x86_64/ rescue quiet
label rescue
menu label ^Rescue a CentOS Linux system 8
kernel centos8/vmlinuz
append initrd=centos8/initrd.img inst.repo=http://10.0.0.18/centos/8/os/x86_64/ rescue quiet
label local
munu default
menu label Boot from ^local drive
localboot 0xffff