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
上一篇
下一篇