linux pxe+tftp+vsftp+kickstart引导安装 TheStoneFish 2023-12-17 2025-04-21 pxe+tftp+vsftp+kickstart pxe流程
客户端从自己的pxe网卡启动,发送消息请求ip地址
dhcp分配给客户端地址,告诉它pxelinux.0的位置
客户端执行pxelinux.0
客户端加载内核(vmlinuz)和文件系统(initrd.img)
进入安装页面通过指定的方式(NFS,HTTP,FTP)进行安装
系统
centos8
一、配置dhcp服务器 1、安装dhcp 1 yum install dhcp-server -y
2、配置dhcp 复制模板文件
1 cp /usr/share/doc/dhcp-server/dhcpd.conf.example /etc/dhcp/dhcpd.conf
配置dhcp
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 # 网络号和掩码 subnet 10.10.70.0 netmask 255.255.255.0 { # dhcp地址池范围 range 10.10.70.1 10.10.70.100; # dns服务器 option domain-name-servers ns1.internal.example.org; option domain-name "internal.example.org"; # 网关 option routers 10.10.70.254; # 广播地址 option broadcast-address 10.10.70.255; # 默认租期,客户端没有指定租期时候使用 default-lease-time 600; # 最大租期 max-lease-time 7200; # tftp服务器的ip next-server 10.10.70.102; # pxelinux.0文件的位置,tftp服务器的结构 filename "pxelinux.0"; }
3、测试dhcp能否正常获取 启动一台虚拟机与dhcp服务器同网段,尝试能否获取ip
二、配置tftp服务器 1、安装tftp(客户端)和tftp-server(服务器)并启动tfp-server 1 2 yum install -y tftp tftp-server systemctl start tftp
2、准备pxelinux.0文件 1 2 yum install -y syslinux cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/
挂载iso文件
1 2 mkdir /pxeos mount /dev/sr0 /pxeos/
复制文件到ftpboot目录
1 cp /pxeos/isolinux/{vmlinuz,initrd.img,vesamenu.c32,ldlinux.c32,libcom32.c32,libutil.c32} /var/lib/tftpboot/
4、准备pxelinux配置文件 1 2 3 mkdir pxelinux.cfg cp /pxeos/isolinux/isolinux.cfg /var/lib/tftpboot/pxelinux.cfg/default chmod 744 /var/lib/tftpboot/pxelinux.cfg/default
5、 测试能否进入系统安装界面 三、配置vsftpd服务器 1、安装和配置 1 2 yum install -y vsftpd vim /etc/vsftpd/vsftpd.conf
开启匿名用户
2、创建ftp目录把镜像文件挂载上去 1 2 mkdir /var/ftp/centos mount /dev/sr0 /var/ftp/centos
四、配置pxelinux 1 vim /var/lib/tftpboot/pxelinux.cfg/default
添加引导菜单配置
1 2 3 4 label linux menu label ^Install CentOS Linux 8 kernel vmlinuz append initrd=initrd.img inst.stage2=ftp://10.10.70.102/centos ks=ftp://10.10.70.102/ks.cfg quiet
五、配置kickstart 默认安装完系统会在root目录下生成文件anaconda-ks.cfg,这个文件是当前系统安装时候做的配置
1、复制文件到ftp目录 1 2 cp /root/anaconda-ks.cfg /var/ftp/ks.cfg chmod 744 /var/ftp/ks.cfg
2、配置ks.cfg
添加从ftp下载镜像和自动重启
1 2 url --url=ftp://10.10.70.102/centos reboot