(先准备桌面版环境,方便生成kickstart配置文件,也可以从已经安装完成的linux里root目录下的anaconda-ks.cfg)
1.更新yum源
cd /etc/yum.repos.d/
yum install -y wget
wget http://mirrors.aliyun.com/repo/Centos-7.repo
yum clean all
yum makecache
yum install -y epel-release
yum clean all
yum makecache
2.安装dhcp
yum install dhcp* -y
3.修改dhcp配置文件,pxelinux.O,其实是pxelinux.0,应以为戒
#
# DHCP Server Configuration file.
# see /usr/share/doc/dhcp*/dhcpd.conf.example
# see dhcpd.conf(5) man page
#
ddns-update-style interim;
ignore client-updates;
next-server 192.168.174.134;
filename "pxelinux.O";
allow booting;
allow bootp;
subnet 192.168.174.0 netmask 255.255.255.0{
option routers 192.168.174.2;
option subnet-mask 255.255.255.0;
range dynamic-bootp 192.168.174.7 192.168.174.17;
}
4.可以先开一个虚机,如下图所示,先启动时候dhcp搜索,最后找不到文件,找不到系统
5.开启并设置开机自启服务
systemctl enable dhcpd
systemctl start dhcpd
6.dhcp服务起来后,再对之前的虚机查看,可以看到已经被分配了一个IP地址,下一个服务显示tftp打开超时,所以下一步安装tftp
7.安装tftp,xinetd是用来管理tftp的
yum install -y tftp-server xinetd
8。修改xinetd中tftp的配置文件,加上-u nobody 和改成no /var/lib/tftpboot就是tftp的工作目录
9.开启服务,关闭selinux和防火墙
systemctl enable tftp
systemctl enable xinetd
systemctl start xinetd
systemctl start tftp
systemctl stop firewalld
systemctl disable firewalld
setenforce 0
sed -i "s/SELINUX=enforcing/SELINUX=disabled/" /etc/selinux/config
10.可以看到到此步的时候,装系统的那个虚机tftp已经进来了,但是没有找到pxe引导文件
11.所以下一步先下载,然后将这个引导文件拷贝到tftp工作目录/var/lib/tftpboot里
yum install syslinux syslinux-devel -y
cd /usr/share/syslinux/
cp pxelinux.0 /var/lib/tftpboot/
mkdir -p /mnt/cdrom
mnt /dev/cdrom /mnt/cdrom
mount /dev/cdrom /mnt/cdrom
cd /mnt/cdrom
cd isolinux/
cp isolinux.cfg /var/lib/tftpboot/
cd /var/lib/tftpboot
mkdir pxelinux.cfg
mv isolinux.cfg pxelinux.cfg/default
12.根据提示进行文件添加,这个文件表示的是最开始的菜单
cd /var/lib/tftpboot
cp /mnt/cdrom/isolinux/vesamenu.c32 .
13.如下。此处只是一个菜单,实际点不进去,缺少内核文件,没有灵魂,文件清单其实都可以在isolinux.cfg里找到
12如文件中提到的vmlinuz,这个是内核文件,下面就从iso镜像里面拷过来
13如图
[root@localhost tftpboot]# cp /mnt/cdrom/images/pxeboot/vmlinuz .
[root@localhost tftpboot]# cp /mnt/cdrom/images/pxeboot/initrd.img .
[root@localhost tftpboot]# ls
initrd.img pxelinux.0 pxelinux.cfg vesamenu.c32 vmlinuz
[root@localhost tftpboot]#
14.继续修改default中iso镜像地址
15.现在没有创建http服务,所以还需要创建
yum install httpd httpd-devel -y
systemctl enable httpd
systemctl start httpd
cd /var/www/html/
mkdir centos7
umount /dev/cdrom
mount /dev/cdrom /var/www/html/centos7/
16.重启一下之前待安装的系统(虚拟机内存需大于1G,实体机需要大于2G,官方说明,本次为4G),然后就到了这里
17,将default文件精简一下,得到
[root@localhost html]# cat /var/lib/tftpboot/pxelinux.cfg/default
default vesamenu.c32
timeout 10
display boot.msg
menu clear
menu background splash.png
menu title CentOS Linux 7
label linux
menu label ^Install CentOS Linux 7
kernel vmlinuz
append initrd=initrd.img inst.repo=http://192.168.174.134/centos7 quiet
18.把使用的ks.cfg文件拷过来
cp anaconda-ks.cfg /var/www/html/
cd /var/www/html/
ls
rm ks.cfg
mv anaconda-ks.cfg ks.cfg
chmod 777 ks.cfg
ls
cd /var/lib/tftpboot/
ls
cd pxelinux.cfg/
19增加路径
[root@localhost pxelinux.cfg]# cat default
default linux
timeout 10
display boot.msg
menu clear
menu background splash.png
menu title CentOS Linux 7
label linux
menu label ^Install CentOS Linux 7
kernel vmlinuz
append initrd=initrd.img inst.repo=http://192.168.174.134/centos7 quiet ks=http://192.168.174.134/ks.cfg