HCRM博客

如何通过PXE安装CentOS?

使用PXE安装CentOS

什么是PXE?

PXE(Preboot Execution Environment,预启动执行环境)是由Intel公司开发的一种技术,允许计算机通过网络启动,它主要用于在没有本地存储设备的情况下,通过网络从服务器加载操作系统进行安装或运行,PXE广泛应用于大规模部署和系统恢复等场景。

如何通过PXE安装CentOS?-图1
(图片来源网络,侵权删除)

PXE的工作原理

1、初始化阶段:客户端计算机通过其网络接口发送广播请求,寻找可以提供PXE服务的DHCP服务器。

2、获取IP地址和引导文件位置:DHCP服务器响应请求,分配一个IP地址给客户端,并告知PXE引导文件的位置。

3、下载引导文件:客户端根据DHCP提供的地址信息,向TFTP服务器请求下载pxelinux.0文件。

4、执行引导程序:pxelinux.0文件被下载到内存中并执行,它负责加载Linux内核和初始的RAM盘映像(initrd.img)。

5安装过程:一旦内核和initrd.img被加载,系统进入实际的安装或运行阶段,此时可以通过HTTP、FTP等方式获取所需的操作系统镜像和软件包。

配置步骤

1. 准备环境

如何通过PXE安装CentOS?-图2
(图片来源网络,侵权删除)

两台虚拟机,一台作为服务端,一台作为客户端。

CentOS 7.6的ISO镜像文件。

2. 服务端配置

2.1 设置静态IP地址

编辑/etc/sysconfig/networkscripts/ifcfgens33文件,设置静态IP地址。

  • BOOTPROTO=static
  • ONBOOT=yes
  • IPADDR=192.168.1.10
  • NETMASK=255.255.255.0
  • GATEWAY=192.168.1.1
  • DNS1=192.168.1.1
  • DNS2=114.114.114.114

2.2 关闭防火墙和SELinux

如何通过PXE安装CentOS?-图3
(图片来源网络,侵权删除)
  • systemctl stop firewalld.service
  • systemctl disable firewalld.service
  • sed i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config
  • setenforce 0

2.3 安装必要的软件包

  • yum install y dhcp xinetd tftpserver httpd syslinux

2.4 配置DHCP服务

创建/etc/dhcp/dhcpd.conf文件,添加以下内容:

  • subnet 192.168.1.0 netmask 255.255.255.0 {
  • range 192.168.1.10 192.168.1.100;
  • option routers 192.168.1.1;
  • option broadcastaddress 192.168.1.255;
  • nextserver 192.168.1.10;
  • filename "pxelinux.0";
  • }

启动DHCP服务:

  • systemctl start dhcpd.service
  • systemctl enable dhcpd.service

2.5 配置TFTP服务

编辑/etc/xinetd.d/tftp文件,取消注释并修改为:

  • disable = no
  • per_source = 11
  • server_args = s /var/lib/tftpboot

创建目录并复制文件:

  • mkdir p /var/lib/tftpboot
  • cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/

启动TFTP服务:

  • systemctl restart xinetd.service
  • systemctl enable xinetd.service

2.6 配置HTTP服务

将CentOS ISO镜像挂载到/mnt目录下,并将ISO中的文件复制到/var/www/html下:

  • mount o loop /root/CentOS7x86_64DVD1511.iso /mnt
  • cp r /mnt/* /var/www/html/

编辑/var/www/html/isolinux/isolinux.cfg文件,添加以下内容到label centos部分:

  • kernel vmlinuz initrd=initrd.img repo=http://192.168.1.10/centos7.repo

启动HTTP服务:

  • systemctl start httpd.service
  • systemctl enable httpd.service

2.7 配置PXE引导菜单

编辑/var/lib/tftpboot/pxelinux.cfg/default文件,添加以下内容:

  • DEFAULT centos
  • LABEL centos
  • MENU LABEL ^Install CentOS 7^
  • KERNEL vmlinuz
  • APPEND /initrd.img

常见问题解答(FAQs)

Q1: 为什么客户端无法获取IP地址?

A1: 确保DHCP服务器已启动,并且配置文件中的范围与客户端的MAC地址匹配,同时检查网络连接是否正常。

Q2: TFTP服务器无法提供文件怎么办?

A2: 确保TFTP服务已启动,并且/var/lib/tftpboot目录下包含正确的pxelinux.0文件,如果问题仍然存在,请检查TFTP服务的日志文件以获取更多错误信息。

本站部分图片及内容来源网络,版权归原作者所有,转载目的为传递知识,不代表本站立场。若侵权或违规联系Email:zjx77377423@163.com 核实后第一时间删除。 转载请注明出处:https://blog.huochengrm.cn/pc/18178.html

分享:
扫描分享到社交APP
上一篇
下一篇