系统城装机大师 - 固镇县祥瑞电脑科技销售部宣传站!

当前位置:首页 > 系统教程 > Linux教程 > 详细页面

PXE——无人值守自动安装Linux操作系统(踩坑记录)

时间:2020-04-23来源:电脑系统城作者:电脑系统城

 

在这里插入图片描述

DHCP服务#

DHCP服务器主要实现在企业内部网络为客户端分配IP地址等网络参数。

在无人值守环境中,当客户端选择从网络启动后,就会通过发送广播数据包的形式寻找DHCP服务器,从DHCP获得IP地址等参数后才可以通过TFTP共享读取启动文件。

(1)安装DHCP服务操作 yum install -y dhcp
(2)修改配置文件以实现为客户端分配网络参数


 
Copy
[root@python ~]# vim /etc/dhcp/dhcp.conf #dhcpd.conf # # Sample configuration file for ISC dhcpd log-facility local7; # A slightly different configuration for an internal subnet. subnet 192.168.213.0 netmask 255.255.255.0 { range 192.168.213.3 192.168.213.254; option domain-name-servers 192.168.213.163; option subnet-mask 255.255.255.0; option routers 192.168.213.2; default-lease-time 600; max-lease-time 7200; next-server 192.168.213.163; filename "pxelinux.0"; } [root@python ~]# systemctl start dhcpd [root@python ~]# systemctl enable dhcpd [root@python ~]# netstat -tunpl|grep 67 udp 0 0 0.0.0.0:67 0.0.0.0:* 5440/dhcpd udp 0 0 0.0.0.0:67 0.0.0.0:* 1506/dnsmasq

TFTP服务#

TFTP服务为客户端提供一种简单的文件共享,他不具备向FTP那样丰富的功能,不过由于简单的设计,TFTP非常适用于传输小且简单的PXE启动文件。


 
Copy
#安装TFTP [root@python ~]# yum install -y tftp-server #修改配置文件 [root@python ~]# cat /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 }

安装tftp的动态管理工具
tfpt是被xinetd动态管理的服务,启动服务,只需要启动xinetd即可


 
Copy
[root@python ~]# yum install xinetd #将客户端所需要的启动引导文件复制到TFTP服务器 [root@python ~]# yum install -y syslinux #通过该软件包获取引导文件 [root@python ~]# cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/ [root@python ~]# mount -o loop -t iso9660 /iso/CentOS-7-x86_64-DVD-1908.iso /var/ftp/centos7u7 [root@python ~]# cp /var/ftp/centos7u7/isolinux/vmlinuz /var/lib/tftpboot/centos7u7/ [root@python ~]# cp /var/ftp/centos7u7/isolinux/vesamenu.c32 /var/lib/tftpboot [root@python ~]# cp /var/ftp/centos7u7/isolinux/initrd.img /var/lib/tftpboot/centos7u7/ [root@python ~]# mkdir /var/lib/tftpboot/pxelinux.cfg [root@python ~]# cp /var/ftp/centos7u7/isolinux/isolinux.cfg /var/lib/tftpboot/pxelinux.cfg/default [root@python ~]# cd /var/lib/tftpboot/pxelinux.cfg/ [root@python pxelinux.cfg]# chmod 644 default [root@python ~]# vim /var/lib/tftpboot/pxelinux.cfg/default default vesamenu.c32 timeout 60 display boot.msg menu background splash.jpg menu title CentOS X of Zhao label centos7 64 <Auto Installation> menu label Install CentOS Linux ^7 x86_64 <Auto> kernel centos7u7/vmlinuz append initrd=centos7u7/initrd.img inst.stage2=ftp://192.168.213.163/centos7u7 inst.repo=ftp://192.168.213.163/centos7u7 inst.ks=ftp://192.168.213.163/centos-7-ks.cfg label local menu default menu label Boot from ^local drive localboot 0xffff menu end #准备图片 [root@python ~]# cp splash.jpg /var/lib/tftpboot/splash.jpg [root@python ~]# systemctl start xinetd [root@python ~]# systemctl enable xinetd [root@python ~]# ss -nutlp|grep 69 udp UNCONN 0 0 *:69 *:* users:(("xinetd",pid=14264,fd=5))

FTP服务#

FTP(file Transfer Protocol)文件传输协议,vsftp就是一种利用FTP协议进行数据共享的软件,vsftp主要特色就是提供一种安全的数据共享服务。

使用vsftp作为Centos系统文件的共享服务平台,当客户端从网络从网络启动正式进入到安装界面后,还需要读取Centos光盘中的系统文件,以完成最后的安装,这些文件就通过vsftp共享给网络用户。


 
Copy
[root@python ~]# yum install -y vsftpd [root@python ~]# systemctl start vsftpd [root@python ~]# systemctl enable vsftpd

自动化安装实例#

初始化系统环境#


 
Copy
[root@python ~]# systemctl stop firewalld [root@python ~]# systemctl disable firewalld [root@python ~]# sed -i.bak 's/=enforcing/=disabled/' /etc/sysconfig/selinux [root@python ~]# sed -i.bak 's/=enforcing/=disabled/' /etc/selinux/config [root@python ~]# setenforce 0 [root@python ~]# cd /var/ftp/

创建安装目录结构#


 
Copy
[root@python ftp]# mkdir centos6u8 [root@python ftp]# mkdir centos7u7 [root@python ftp]# cd /var/lib/tftpboot/ [root@python tftpboot]# mkdir centos6u8 [root@python tftpboot]# mkdir centos7u7

配置启动DHCP#

配置启动TFTP#

创建自动应答文件#


 
Copy
[root@python ~]# yum install system-config-kickstart [root@python ~]# system-config-kickstart #检查有无语法错误 [root@python ~]# ksvalidator ks.cfg [root@python ~]# mv ks.cfg /var/ftp/centos-7-ks.cfg

自动安装虚拟机测试#

踩坑#

(1)引导装载程序选项
在这里插入图片描述


 
Copy
# System bootloader configuration bootloader --location=mbr #在主引导记录(MBR)中安装引导装载程序 # Partition clearing information clearpart --all

若不安装引导装载程序(如下),开机会黑屏,卡在booting from local disk


 
Copy
# System bootloader configuration bootloader --location=none

内核参数添加 net.ifnames=0 biosdevname=0,会修改网卡名称为eth0


 
Copy
# System bootloader configuration bootloader --append="net.ifnames=0 biosdevname=0" --location=mbr

(2)安装方法
在这里插入图片描述FTP目录也可在配置文件centos-7-ks.cfg中修改

(3)记得挂载镜像
mount -o loop -t iso9660 /iso/CentOS-7-x86_64-DVD-1908.iso /var/ftp/centos7u7

若不挂载,会报错 can't find installer maininage path in .treeinfo


 
Copy
Warning: can't find installer maininage path in .treeinfo Warning: Downloading 'ftp://192.168.213.163/centos7u7/Live0S/squashfs.img' failed! Warning anaconda: failed to fetch stage2 from ftp://192.168.213.163/centos7u7

(4)导出ks.cfg文件后,要修改名称,在最后添加如下内容


 
Copy
%packages @^minimal @core %end

(5)装机图片有尺寸(640像素*480像素)要求,不符合要求的可能图片会显示失败
(6)不正确的镜像可能会使操作系统安装失败

测试CentOS-6.10-x86_64-minimal.iso无法全自动安装
在这里插入图片描述
(7)报错 failed to fetch kickstat from ftp
可能是selinux没关或ftp未设置匿名模式
(8)VMware Workstation 与 Device/Credential Guard 不兼容
以管理员身份运行Windows Powershell (管理员)(Windows键+X),运行命令bcdedit /set hypervisorlaunchtype off,重启电脑

此问题应该与windows的系统版本有关,是在windows 10自动更新后出现的

分享到:

相关信息

  • linux 文件权限怎么解析

    常用权限linux系统内有档案有三种身份 u:拥有者 g:群组 o:其他人这些身份对于文档常用的有下面权限:r:读权限,用户可以读取文档的内容,如用cat,more查看w:写权限,用户可以编辑文档x...

    2024-07-07

  • 如何使用WPSeku找出 WordPress 安全问题?

    然而,如果我们遵循通常的 WordPress 最佳实践,这些安全问题可以避免。在本篇中,我们会向你展示如何使用 WPSeku,一个 Linux 中的 WordPress 漏洞扫描器,它可以被用来找出你安装...

    2024-07-03

系统教程栏目

栏目热门教程

人气教程排行

站长推荐

热门系统下载