我正在为我工作的地方模拟一个PXE服务器。 我正在尝试将图像文件和configuration文件放在保持一些更有条理的地方。 即使我的dhcpd.conf指定了需要告诉PXELinux在哪里查找configuration文件的configuration选项,它仍然没有find所述文件。
这是我的/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"; } } }
configuration的一部分是从文档的各个部分编译的,被注释掉的部分是旧的,我还没有修正,却忽略了这些。 现在我只想得到标准的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,但是没有看到configuration文件,所以没有configuration正确的东西。 任何人都可以提供我的configuration错误的想法? 我一整天都在b </s>我的脑袋。
请注意, 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的configuration文件。
如果这个失败只是获得Wiresharkstream量捕获,并看到TFTP文件请求,他们指向。