PXE 安装 CentOS 的详细步骤
准备工作
1、硬件和软件需求:
两台虚拟机,一台作为服务端(PXE Server),另一台作为客户端。
CentOS 7.6 ISO 镜像文件。
每台虚拟机的内存应大于等于4GB,否则可能会导致 PXE 启动时黑屏或无法正常安装。
2、网络配置:
确保两台虚拟机在同一局域网内(例如使用“仅主机模式”)。
关闭虚拟网络编辑器中的 DHCP 服务,避免与 PXE 服务冲突。
服务端环境搭建
1、设置静态IP地址:
编辑服务端的网口配置文件(如ifcfgens33
),设置静态 IP 地址并确保开机自动启动。
示例如下:
```bash
IPADDR=192.168.10.1
NETMASK=255.255.255.0
GATEWAY=192.168.10.1
ONBOOT=yes
```
2、配置 YUM 源:
挂载 CentOS 7.6 ISO 镜像到/mnt/cdrom
目录,并配置本地 YUM 源。
示例如下:
```bash
mkdir p /mnt/cdrom
mount o loop /path/to/CentOS7.6.iso /mnt/cdrom
yum install createrepo
createrepo /mnt/cdrom
```
3、安装 DHCP 和 TFTP 服务:
在服务端上执行以下命令安装 DHCP 和 TFTP 服务:
```bash
yum install y dhcp tftpserver xinetd syslinux
```
4、配置 DHCP:
编辑 DHCP 配置文件/etc/dhcp/dhcpd.conf
,添加以下内容:
```plaintext
subnet 192.168.10.0 netmask 255.255.255.0 {
range 192.168.10.2 192.168.10.250;
option routers 192.168.10.1;
nextserver 192.168.10.1;
filename "pxelinux.0";
}
```
启动并启用 DHCP 服务:
```bash
systemctl start dhcpd
systemctl enable dhcpd
```
5、配置 TFTP:
修改/etc/xinetd.d/tftp
文件,将disable
参数改为no
:
```plaintext
service tftp
{
socket_type = dgram
protocol = udp
wait = yes
user = root
server = /usr/sbin/in.tftpd
server_args = s /var/lib/tftpboot
disable = no
}
```
启动并启用 TFTP 服务:
```bash
systemctl restart xinetd
systemctl enable xinetd
```
6、准备引导文件:
将pxelinux.0
文件复制到/var/lib/tftpboot
目录:
```bash
cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/
```
创建pxelinux.cfg
文件夹,并将默认的default
文件拷贝到该目录:
```bash
mkdir p /var/lib/tftpboot/pxelinux.cfg
cp /mnt/cdrom/isolinux/isolinux.cfg /var/lib/tftpboot/pxelinux.cfg/default
```
客户端启动及安装
1、启动客户端:
启动客户端虚拟机,它会通过 PXE 从服务端获取 IP 地址和引导文件,进入 iPXE 菜单。
如果一切正常,客户端会显示一个包含多个选项的菜单,选择第一个选项即可开始安装 CentOS。
2、安装操作系统:
按照屏幕上的提示进行操作系统的安装,具体步骤可以参考 CentOS 官方文档或其他在线教程。
相关问答FAQs
Q1: PXE 安装过程中遇到“找不到 pxelinux.0 文件”的错误怎么办?
A1: 这种错误通常是由于 DHCP 配置文件中没有正确指定 pxelinux.0 文件的路径导致的,请确保在/etc/dhcp/dhcpd.conf
文件中正确配置了filename "pxelinux.0"
,并且该文件已经复制到了/var/lib/tftpboot
目录中,如果问题依旧存在,检查防火墙和服务状态,确保相关服务已启动且防火墙未阻止相应端口。
Q2: 如何配置无人值守安装(Unattended Installation)?
A2: 要配置无人值守安装,需要创建一个自动应答文件(通常命名为ks.cfg
),并将其放置在 HTTP、FTP 或 NFS 服务器上,在客户端的 PXE 引导菜单中指定该文件的位置,可以在default
文件中添加类似以下的内容:
```plaintext
kernel vmlinuz
append initrd=initrd.img method=http://192.168.10.1/CentOS7 ks=http://192.168.10.1/ks.cfg
```
这样,系统在启动时会自动读取ks.cfg
文件并进行自动化安装。