pxe

1.需要的安装包
system-config-kickstart        ##自动应答脚本制作工具
syslinux                               ##获得pxelinux.0文件安装包
dhcp                                    ##分配ip给客户机的服务
tftp-server                           ##提供tftp协议的服务
httpd                                   ##安装源共享服务

2.配置dhcp
vim   /etc/dhcpd/dhcpd.conf

option domain-name "example.com";                   ##域名
option domain-name-servers 192.168.0.79;       ##dns
default-lease-time 600;                                       ##默认租约期
max-lease-time 7200;                                         ##最长租约期
log-facility local7;                                                ##日志级别
subnet 192.168.0.0 netmask 255.255.255.0 {    ##网段,子网掩码
  range 192.168.0.102 192.168.0.111;               ##地址范围
  option routers 192.168.0.254;                          ##网关
  filename "pxelinux.0";                                       ##pxe启动程序
  next-server 192.168.0.79;                               ##tftp主机地址
}
systemctl restart dhcpd
systemctl stop firewalld

3.配置 TFTP
config /etc/xinetd.d/tftp like this:
service tftp
{
        socket_type        = dgram
        protocol              = udp
        wait                     = yes
        user                    = root
        server                 = /usr/sbin/in.tftpd
        server_args        = -s /var/lib/tftpboot
        disable                = <<<<<<<<<yes--->no>>>>>>
        per_source         = 11
        cps                     = 100 2
        flags                   = IPv4
}
systemctl restart xinetd

4.配置pxe
1)
cd /var/lib/tftpboot/
mkdir pxelinux.cfg
2)
mount the iso of the rhel7
cp isolinux/* /var/lib/tftpboot
3)
cp /var/lib/tftpboot/isolinux.cfg   /var/lib/tftpboot/pxelinux.cfg/default
cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/
4)
make a userfully install source and kickstart,my of this is in the ftp's pub
ftp://192.168.0.252/pub/rhel6
ftp://192.168.0.252/pub/ks.cfg
5)
vim  /var/lib/tftpboot/pxelinux.cfg/default
default vesamenu.c32
timeout 600                        ##等待时间

display boot.msg

# Clear the screen when exiting the menu, instead of leaving the menu displayed.
# For vesamenu, this means the graphical background is still displayed without
# the menu itself for as long as the screen remains in graphics mode.
menu clear
menu background splash.png
menu title Red Hat Enterprise Linux 7.0            ##大标题

label linux
  menu label ^Install Red Hat Enterprise Linux 7.0            ##小标题
   menu default                                                                 ##默认标题设定
  kernel vmlinuz
  append initrd=initrd.img repo=http://172.25.254.100/soucre ks=http://172.25.254.100/ks.cfg    ##安装源和ks

06-08
<think>嗯……用户这次在询问PXE启动配置与故障排除的问题。从对话历史来看,用户对技术细节的需求很明确,而且引用了多篇关于PXE的技术文档,包括PXE的基本原理、PXELINUX实现、以及具体部署步骤等。用户应该是个系统管理员或网络工程师,正在搭建PXE环境时遇到了问题。用户引用的资料质量参差不齐:引用[1]是英特尔的官方技术说明,很权威;引用[2]提到PXELINUX的实现;引用[3]是具体的CentOS部署命令;引用[4]则总结了必要组件但表述有些混乱。需要帮用户整合这些信息,特别是要注意[4]里提到的“HTTP,DHCP,TFTP服务器”这个说法不够准确——实际上PXE只需要DHCP和TFTP,HTTP/NFS是后续安装才需要的。上次我给出过完整的PXE部署流程图,这次用户特别提到“配置与故障排除”,说明可能卡在了某个具体环节。需要突出排查逻辑:从DHCP握手开始,到TFTP文件传输,再到启动加载程序执行。每个环节都要给出可操作的检查点,比如用tcpdump抓包验证DHCPOffer报文,用tftp命令手动测试文件下载。注意到用户提到CentOS环境(引用[3]的yum命令),所以具体路径示例应该用/var/lib/tftpboot这种标准位置。但也要提醒路径可能因发行版不同而变化(比如Ubuntu用/srv/tftp)。故障树那里要特别标注“pxelinux.0未找到”的解决方案,因为这是新手最容易出错的地方——很多人会忘记syslinux安装后需要手动复制这个文件。</think> 以下是关于PXE启动的配置和故障排除的详细指南,整合了关键技术和实践要点: --- ### **一、PXE启动核心配置步骤** #### 1. **服务器端准备** - **DHCP服务器** 配置选项(以ISC DHCP为例): ```plaintext subnet 192.168.1.0 netmask 255.255.255.0 { range 192.168.1.100 192.168.1.200; option routers 192.168.1.1; next-server 192.168.1.10; # TFTP服务器IP filename "pxelinux.0"; # 引导文件路径 } ``` - **TFTP服务器** 部署引导文件: ```bash yum install tftp-server -y cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/ cp /path/to/kernel/vmlinuz /var/lib/tftpboot/ cp /path/to/initrd.img /var/lib/tftpboot/ mkdir /var/lib/tftpboot/pxelinux.cfg ``` 配置文件示例(`/var/lib/tftpboot/pxelinux.cfg/default`): ```plaintext DEFAULT menu.c32 PROMPT 0 LABEL Install CentOS KERNEL vmlinuz APPEND initrd=initrd.img inst.repo=http://192.168.1.10/os/ ``` - **文件服务器(HTTP/NFS)** 提供操作系统安装源: ```bash yum install httpd -y mkdir -p /var/www/html/os cp -r /mnt/iso/* /var/www/html/os/ # 挂载ISO并复制内容 ``` #### 2. **客户端配置** - 启用BIOS/UEFI中的`Network Boot`选项 - 将`PXE Boot`设为第一启动项 --- ### **二、故障排除清单** #### 1. **客户端无法获取IP地址** - ✅ **检查DHCP服务** ```bash systemctl status dhcpd # 确认服务运行 tail -f /var/log/messages # 查看DHCP日志 ``` - ✅ **验证网络连通性** 使用另一设备测试同网段DHCP请求 #### 2. **TFTP文件传输失败** - ✅ **防火墙规则** ```bash firewall-cmd --add-service=tftp --permanent firewall-cmd --reload ``` - ✅ **文件权限测试** ```bash tftp 192.168.1.10 # 手动测试下载 tftp> get pxelinux.0 # 检查文件可访问性 ``` #### 3. **引导加载后卡住** - ✅ **验证内核/initrd路径** 确保文件名与`pxelinux.cfg`配置一致 - ✅ **检查安装源URL** 在浏览器直接访问`http://192.168.1.10/os/`验证可用性 - ✅ **引导参数调试** 在`APPEND`行添加`debug shell`进入调试Shell #### 4. **PXELINUX报错** - `PXE-E11: ARP timeout` → 检查TFTP服务器ARP可达性 - `PXE-E32: TFTP open timeout` → 确认`/var/lib/tftpboot`目录包含`pxelinux.0`且权限为644 --- ### **三、关键逻辑拓扑** ```mermaid graph LR Client[客户端] -->|1.DHCP Discover| DHCP DHCP -->|2.Offer+TFTP IP| Client Client -->|3.TFTP Request| TFTP[TFTP Server] TFTP -->|4. pxelinux.0/kernel| Client Client -->|5. HTTP Boot| Web[HTTP Server] ``` --- ### **四、深入优化方案** 1. **安全增强** - DHCP使用Option 60标识PXE客户端 - TFTP目录设置`chroot`环境 2. **多系统引导** 使用`pxelinux.cfg`定义多菜单: ```plaintext LABEL Ubuntu KERNEL ubuntu/vmlinuz APPEND initrd=ubuntu/initrd.img url=http://192.168.1.10/ubuntu/ ``` **引用来源** 以上内容综合了PXE协议标准文档[^1]、SYSLINUX官方配置指南[^2]、Linux网络部署最佳实践[^3][^4]。 --- **
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值