Какова эквивалентность конфигурации pxelinux.0 и pxelinux.cfg/default для UEFI?
Я использую Pxe для серверов с BIOS(устаревший режим), который работает отлично.
Установите режим Legacy и загрузите серверы из PXE, он загрузит pxelinux.0 и прочитает меню конфигурации через TFTP из /var/lib/tftpboot/pxelinux.cfg/default.
Вот tcpdump
для наследства
Vendor-Class Option 60, length 32: "PXEClient:Arch:00000:UNDI:002001"
END Option 255, length 0
PAD Option 0, length 0, occurs 188
18:38:42.626709 00:0c:29:c6:72:77 > Broadcast, ethertype IPv4 (0x0800), length 342: (tos 0x10, ttl 128, id 0, offset 0, flags [none], proto UDP (17), length 328)
172.16.234.112.bootps > 255.255.255.255.bootpc: [udp sum ok] BOOTP/DHCP, Reply, length 300, xid 0x90d61ab8, secs 6, Flags [Broadcast] (0x8000)
Your-IP 172.16.235.94
Server-IP 172.16.234.112
Client-Ethernet-Address 00:25:90:d6:1a:b8
file "/pxelinux.0"[|bootp]
18:38:42.628329 00:25:90:d6:1a:b8 > 00:0c:29:c6:72:77, ethertype IPv4 (0x0800), length 70: (tos 0x0, ttl 20, id 3, offset 0, flags [none], proto UDP (17), length 56)
172.16.235.94.ah-esp-encap > 172.16.234.112.tftp: [udp sum ok] 28 RRQ "/pxelinux.0" octet tsize 0
172.16.235.94.49152 > 172.16.234.112.tftp: [udp sum ok] 80 RRQ "/pxelinux.cfg/002590d6-1ab8-0607-0025-90d61ab80e0f" octet tsize 0 blksize 1408
Мы можем видеть, что DHCP предложил IP и получил tftp pxelinux.0
и файлы из /pxelinux.cfg/
Я могу настроить загрузочное меню на default
, установка Centos или что-то еще.
Еще недавно я столкнулся с проблемой, что новые серверы с UEFI. Я знаю, что мне могут сказать, является ли это наследием или UEFI dhcpd.conf
ddns-update-style none;
default-lease-time 3600;
max-lease-time 3600;
ignore client-updates;
allow booting;
allow bootp;
option client-system-arch code 93 = unsigned integer 16;
class "pxeclients" {
match if substring(option vendor-class-identifier, 0, 9) = "PXEClient";
next-server 172.16.234.112;
if option client-system-arch = 00:00 {
filename = "/pxelinux.0";
}
if option client-system-arch = 00:07 or option client-system-arch = 00:09{
filename = "/BOOTX64.EFI";
}
}
subnet 172.16.232.0 netmask 255.255.248.0 {
option routers 172.17.232.1;
option subnet-mask 255.255.248.0;
option domain-name-servers 202.106.0.20;
range dynamic-bootp 172.16.235.2 172.16.239.253;
}
BOOTX64.EFI из Centos7.5 ISO.
Все в порядке, когда это Legacy, но он висит на
start PXE Over IPV4
Экран мигает и переключается из другого окна (не видно, что это, невероятно быстро).
Видя из messages
Хранил DHCP Request и предложение.
Mar 8 19:32:36 ks dhcpd: DHCPREQUEST for 172.16.235.95 (172.16.234.112) from 5c:b9:01:92:f6:34 via ens192
Mar 8 19:32:36 ks dhcpd: DHCPACK on 172.16.235.95 to 5c:b9:01:92:f6:34 via ens192
Mar 8 19:32:36 ks dhcpd: DHCPDISCOVER from 5c:b9:01:92:f6:34 via ens192
Mar 8 19:32:36 ks dhcpd: DHCPOFFER on 172.16.235.95 to 5c:b9:01:92:f6:34 via ens192
Mar 8 19:32:40 ks dhcpd: DHCPREQUEST for 172.16.235.95 (172.16.234.112) from 5c:b9:01:92:f6:34 via ens192
Mar 8 19:32:40 ks dhcpd: DHCPACK on 172.16.235.95 to 5c:b9:01:92:f6:34 via ens192
Mar 8 19:32:40 ks dhcpd: DHCPDISCOVER from 5c:b9:01:92:f6:34 via ens192
Mar 8 19:32:40 ks dhcpd: DHCPOFFER on 172.16.235.95 to 5c:b9:01:92:f6:34 via ens192
Mar 8 19:32:44 ks dhcpd: DHCPREQUEST for 172.16.235.95 (172.16.234.112) from 5c:b9:01:92:f6:34 via ens192
Mar 8 19:32:44 ks dhcpd: DHCPACK on 172.16.235.95 to 5c:b9:01:92:f6:34 via ens192
Mar 8 19:32:44 ks dhcpd: DHCPDISCOVER from 5c:b9:01:92:f6:34 via ens192
Mar 8 19:32:44 ks dhcpd: DHCPOFFER on 172.16.235.95 to 5c:b9:01:92:f6:34 via ens192
......
Вот tcpdump от DHCP-серверов port 67
,
0.0.0.0.bootpc > 255.255.255.255.bootps: [udp sum ok] BOOTP/DHCP, Request from 5c:b9:01:92:f6:34, length 359, xid 0xe8ffad6f, Flags [Broadcast] (0x8000)
Client-Ethernet-Address 5c:b9:01:92:f6:34
Vendor-rfc1048 Extensions
Magic Cookie 0x63825363
DHCP-Message Option 53, length 1: Request
Server-ID Option 54, length 4: 172.16.234.112
Requested-IP Option 50, length 4: 172.16.235.95
......
GUID Option 97, length 17: 0.55.53.53.50.53.56.54.67.85.53.52.49.88.52.75.88
NDI Option 94, length 3: 1.3.16
ARCH Option 93, length 2: 7
Vendor-Class Option 60, length 32: "PXEClient:Arch:00007:UNDI:003016"
END Option 255, length 0
19:32:28.031210 00:0c:29:c6:72:77 > Broadcast, ethertype IPv4 (0x0800), length 342: (tos 0x10, ttl 128, id 0, offset 0, flags [none], proto UDP (17), length 328)
172.16.234.112.bootps > 255.255.255.255.bootpc: [udp sum ok] BOOTP/DHCP, Reply, length 300, xid 0xe8ffad6f, Flags [Broadcast] (0x8000)
Your-IP 172.16.235.95
Server-IP 172.16.234.112
Client-Ethernet-Address 5c:b9:01:92:f6:34
file "BOOTX64.EFI"[|bootp]
Кажется сервер предлагал BOOTX64.EFI
но клиент не принял, так как tcpdump 'port 69` ничего не вернул.
В традиционном режиме, порт 69 tcpdump, файлы загружаются клиентом.
Видя сверху сообщение, идентификация сервера
PXEClient:Arch:00007:UNDI:003016
который должен соответствовать else
и загрузить BOOTX64.EFI
Так что я в замешательстве, что не так?
Что эквивалентно конфигурации UEFI, он должен соответствовать клиенту (чтобы определить его UEFI или Legacy) и должен быть файл, который совпадает с pxelinux.0
как загрузчик, и файл для чтения загрузочных меню. Любое предложение приветствуется.
Я гуглил весь день, ничего полезного не нашлось, включая Redhat Docs.
Explore1, видя с этой страницы, сказано syslinux.efi
тот, который так же, как pxelinux.0
, Я меняю dhcpd.conf
и перезагрузка, тоже не работает.
1 ответ
- pxelinux.0 предлагает вам PXE-меню для загрузки устаревших целей
- BOOTX64.EFI поможет вам загрузить конкретный дистрибутив Linux, но у вас не будет меню с различными ресурсами загрузки PXE
pxelinux.efisyslinux.efi предлагает вам PXE-меню для загрузки целей UEFI
Печально то, что я ввожу неверный ip-адресoption routers 172.17.232.1;
должно быть 172,16, а не 172,17
Всем спасибо.