AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / server / 问题 / 810083
Accepted
ianc1215
ianc1215
Asked: 2016-10-20 11:38:03 +0800 CST2016-10-20 11:38:03 +0800 CST 2016-10-20 11:38:03 +0800 CST

设置 PXELinux 时为 syslinux 配置文件定义新位置

  • 772

我正在为我工​​作的地方制作一个 PXE 服务器的模型。我正在尝试将图像文件和配置文件放在使事情更有条理的地方。即使我dhcpd.conf指定了告诉 PXELinux 在哪里查找配置文件所需的配置选项,它仍然找不到所述文件。

这是我的 /etc/dhcp/dhcpd.conf 的样子,这就是我想象的问题所在。

option space PXE;
option PXE.mtftp-ip             code 1 = ip-address;
option PXE.mtftp-cport          code 2 = unsigned integer 16;
option PXE.mtftp-sport          code 3 = unsigned integer 16;
option PXE.mtftp-tmout          code 4 = unsigned integer 8;
option PXE.mtftp-delay          code 5 = unsigned integer 8;
option arch                     code 93 = unsigned integer 16;

option space pxelinux;
option pxelinux.magic                   code 208 = string;
option pxelinux.configfile              code 209 = text;
option pxelinux.pathprefix              code 210 = text;
option pxelinux.reboottime              code 211 = unsigned integer 32;

ddns-update-style none;

option domain-name "lab.solignis.com";
option domain-name-servers ns01.lab.solignis.com;

default-lease-time 600;
max-lease-time 7200;

authoritative;
log-facility local7;

subnet 192.168.147.0 netmask 255.255.255.0 {
        range 192.168.147.100 192.168.147.254;
        option subnet-mask 255.255.255.0;
        option routers 192.168.147.2;
        option broadcast-address 192.168.147.255;
        default-lease-time 600;
        max-lease-time 7200;

        class "pxeclients" {

                match if substring (option vendor-class-identifier, 0, 9) = "PXEClient";
                next-server 192.168.147.10;

                if option arch = 00:00 {
                        option pxelinux.configfile "common.cfg";
                        option pxelinux.pathprefix "/configs/";
                        filename "/pxelinux/images/BIOS/pxelinux.0";
                } elsif option arch = 00:06 {
                        #option pathprefix "/configs/";
                        #option configfile "/EFIx64/default";
                        filename "/images/EFIx64/syslinux.efi";
                } elsif option arch = 00:07 {
                        #option pathprefix "/configs/";
                        #option configfile "/EFIx64/default";
                        filename "/images/EFIx64/syslinux.efi";
                } elsif option arch = 00:09 {
                        #option pathprefix "/configs/";
                        #option configfile "/EFIx64/default";
                        filename "/images/EFIia32/syslinux.efi";
                }
        }

}

配置的一部分是从文档的各个部分编译而来的,被注释掉的部分是我尚未修复但忽略那些的旧部分。现在我只想让标准 BIOS 正常工作(arch = 00:00)。

这是我的 tftpboot 目录的文件结构。

server01@server01:/var/lib/tftpboot$ tree
.
└── pxelinux
    ├── configs
    │   └── common.cfg
    └── images
        ├── BIOS
        │   ├── ldlinux.c32
        │   └── pxelinux.0
        ├── EFIia32
        │   └── syslinux.efi
        └── EFIx64
            └── syslinux.efi

6 directories, 5 files

我很确定我已经为 pxelinux 设置了正确的设置,但它没有看到配置文件,因此配置不正确。谁能提供我错误配置的想法?我整天都在敲我的头。

linux pxe-boot isc-dhcp syslinux
  • 2 2 个回答
  • 1485 Views

2 个回答

  • Voted
  1. Best Answer
    Pat
    2016-10-20T13:52:47+08:002016-10-20T13:52:47+08:00

    请注意,configfile相对于pathprefix:

                if option arch = 00:00 {
                        option pxelinux.configfile "common.cfg";
                        option pxelinux.pathprefix "/pxelinux/configs/";
                        filename "/pxelinux/images/BIOS/pxelinux.0";
    

    这将在 TFTP 服务器上查找名为 /pxelinux/configs/common.cfg 的配置文件。

    如果失败,只需获取 Wireshark 流量捕获并查看 TFTP 文件请求以及它们指向的位置。

    • 2
  2. uli42
    2020-06-17T08:07:38+08:002020-06-17T08:07:38+08:00

    我今天与之抗争,终于让它发挥作用。关键是PXELINUX wiki中的这个小部分(我在 CentOS 7.8 上有 ISC dhcp-4.2.5-79.el7.centos.x86_64):

    在大于 3.0 的 ISC dhcp 版本中,站点本地选项空间从 224 开始,而不是 128(为了符合 RFC 3942),因此您应该将 PXELINUX 选项 208-211 定义为常规 DHCP 选项,而不是站点本地选项。例如:

     option magic      code 208 = string;
     option configfile code 209 = text;
     option pathprefix code 210 = text;
     option reboottime code 211 = unsigned integer 32;
    

    在您的 PXELINUX 引导组或类中(无论您有与 PXELINUX 相关的选项,例如“文件名”选项),您都可以添加,例如:

     # Always include the following lines for all PXELINUX clients
     option magic f1:00:74:7e;
     if exists dhcp-parameter-request-list {
      # Always send the PXELINUX options (specified in hexadecimal, ie: 208 = 0xd0, 209 = 0xd1, etc.)
      option dhcp-parameter-request-list = concat(option dhcp-parameter-request-list,d0,d1,d2,d3);
     }
     # These lines should be customized to your setup
     option configfile "configs/common";
     option pathprefix "/tftpboot/pxelinux/files/";
     option reboottime 30;
     filename "/tftpboot/pxelinux/pxelinux.bin";
    
    • 0

相关问题

  • 多操作系统环境的首选电子邮件客户端

  • 你最喜欢的 Linux 发行版是什么?[关闭]

  • 更改 PHP 的默认配置设置?

  • 保护新的 Ubuntu 服务器 [关闭]

  • (软)Ubuntu 7.10 上的 RAID 6,我应该迁移到 8.10 吗?

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    新安装后 postgres 的默认超级用户用户名/密码是什么?

    • 5 个回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

    命令行列出 Windows Active Directory 组中的用户?

    • 9 个回答
  • Marko Smith

    什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同?

    • 3 个回答
  • Marko Smith

    如何确定bash变量是否为空?

    • 15 个回答
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    Noah Goodrich 什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent 如何确定bash变量是否为空? 2009-05-13 09:54:48 +0800 CST
  • Martin Hope
    cletus 您如何找到在 Windows 中打开文件的进程? 2009-05-01 16:47:16 +0800 CST

热门标签

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve