PXE+kickstart网络安装CentOS7.4系统及过程中各种报错
环境:关闭防火墙、selinux
注意:虚拟机进行网络安装的话,7.3以后的系统是需要2G以上的内存
[root@kickstart ~]# cat /etc/redhat-release CentOS Linux release 7.4.1708 (Core) [root@kickstart ~]# uname -r 3.10.0-693.el7.x86_64 [root@kickstart ~]# getenforce Disabled [root@kickstart ~]# systemctl status firewalld.service ● firewalld.service - firewalld - dynamic firewall daemon Loaded: loaded (/usr/lib/systemd/system/firewalld.service; disabled; vendor preset: enabled) Active: inactive (dead) Docs: man:firewalld(1) [root@kickstart ~]# hostname -I 10.0.0.201 172.16.1.201
博主使用的是虚拟机搭建
此篇博主在搭建中的每一步都列出了会出现的错误和解决方式,如果出错了,不要着急,耐心看。
有错、排错是提升的最快方式。
kickstart的原理及组件
首先安装DHCP
yum install dhcp -y
配置DHCP配置文件
cat >>/etc/dhcp/dhcpd.conf<<EOF subnet 172.16.1.0 netmask 255.255.255.0 { ## 指定网段 range 172.16.1.100 172.16.1.199; ## 地址范围 option subnet-mask 255.255.255.0; ## 分配的掩码 default-lease-time 21600; ## 地址租约 max-lease-time 43200; ## 最大租约 next-server 172.16.1.201; ## 下一步找什么 filename "/pxelinux.0"; ## 要下载的文件(请求下载启动文件) } EOF
启动dhcp查看日志
systemctl start dhcpd --- 启动 systemctl status dhcpd --- 查看状态 tailf /var/log/messages --- 查看日志
dhcp相关错误须知
然后安装TFTP
yum install tftp-server -y
启动服务
[root@kickstart ~]# systemctl start tftp.socket [root@kickstart ~]# systemctl status tftp.socket ● tftp.socket - Tftp Server Activation Socket Loaded: loaded (/usr/lib/systemd/system/tftp.socket; disabled; vendor preset: disabled) Active: active (listening) since 二 2017-11-14 10:09:55 CST; 25s ago Listen: [::]:69 (Datagram) 11月 14 10:09:55 kickstart systemd[1]: Listening on Tftp Server Activation ...t. 11月 14 10:09:55 kickstart systemd[1]: Starting Tftp Server Activation Socket. Hint: Some lines were ellipsized, use -l to show in full.
tftp相关错误须知
报错是在TFTP服务的根目录找不到启动文件pxelinux.0
解决:下载安装syslinux
安装syslinux,生成/pxelinux.0文件
[root@kickstart tftpboot]# yum install syslinux -y [root@kickstart tftpboot]# cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/ [root@kickstart tftpboot]# ll 总用量 28 -rw-r--r-- 1 root root 26764 11月 14 10:16 pxelinux.0
错误须知
首先排除最简单故障原因:selinux是否关闭,防火墙是否关闭
上面的错误是因为pxelinux.0这个小系统的配置文件(default)不存在,或者文件名不对
然后进行镜像挂载
检查一下虚拟机是否使用了镜像
然后进行挂载
[root@kickstart tftpboot]# mkdir -p /var/www/html/CentOS7 [root@kickstart tftpboot]# mount /dev/cdrom /var/www/html/CentOS7/ mount: /dev/sr0 写保护,将以只读方式挂载 [root@kickstart tftpboot]# df -h 文件系统 容量 已用 可用 已用% 挂载点 /dev/sda3 98G 1.5G 97G 2% / devtmpfs 479M 0 479M 0% /dev tmpfs 489M 0 489M 0% /dev/shm tmpfs 489M 6.8M 482M 2% /run tmpfs 489M 0 489M 0% /sys/fs/cgroup /dev/sda1 1014M 120M 895M 12% /boot tmpfs 98M 0 98M 0% /run/user/0 /dev/sr0 4.3G 4.3G 0 100% /var/www/html/CentOS7
从镜像中找到相关的配置文件
[root@kickstart tftpboot]# cp -a /var/www/html/CentOS7/isolinux/* /var/lib/tftpboot/ [root@kickstart tftpboot]# mkdir -p /var/lib/tftpboot/pxelinux.cfg [root@kickstart tftpboot]# cp /var/www/html/CentOS7/isolinux/isolinux.cfg /var/lib/tftpboot/pxelinux.cfg/default
安装http
作用1:提供自动应答文件下载
作用2:提供安装系统所需的所有rpm包下载
下载安装 [root@kickstart tftpboot]# yum install httpd -y 启动服务 [root@kickstart tftpboot]# systemctl start httpd.service 检测 [root@kickstart tftpboot]# curl http://172.16.1.201/CentOS7/
编辑default配置文件
[root@kickstart ks_config]# cat /var/lib/tftpboot/pxelinux.cfg/default default ks prompt 0 label ks kernel vmlinuz append initrd=initrd.img ks=http://172.16.1.201/ks_config/CentOS7-ks.cfg net.ifnames=0 biosdevname=0 ksdevice=eth1
自动安装(编写ks文件)
命令段
install开头,到%pre
包组段
以%packages开头,以%end结束
脚本段
以%post开头,以%end结束,在安装完系统之后执行的相关Linux命令、脚本
以%pre开头,以%end结束,在安装完系统之前执行的相关Linux命令、脚本
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
低级错误
报错原因:selinux没关
解决:关闭selinux
CentOS7.4网络安装
安装过程的常见报错
原因:CentOS6和7的default文件中的append这一行不同
解决方法:改append这一行
我们想要去的地方,永远没有捷径,只有脚踏实地,一步一个脚印的才能走向诗和远方!
还是那句话,学习,记录,分享。啊,我多快乐!!!