LINUX.ORG.RU
ФорумAdmin

PXE, UEFI и secure boot

 , ,


1

1

А собственно есть что-то где про это нормально разжевано? Поднял я у себя PXE, думал поставлю через него и оффтопик и Ubuntu, а не тут то было. Секьюр бут ругается на Ubuntu, оно и понятно что будет ругаться. А как сделать правильно? Поиск по гуглу всякую дичь выдаёт и сильно старые штуки.

PS

Нашел как делали раньше

https://shebangthedolphins.net/gnulinux_lubuntu_pxeinstall.html

А нынче модно-молодёжно

https://c-nergy.be/blog/?p=13334

Вопрос в том какой аналог есть в /etc/dhcp/dhcpd.conf того что делают в /etc/dnsmasq.conf в виде:

dhcp-match=set:efi-x86_64,option:client-arch,7 
dhcp-boot=tag:efi-x86_64,grub/bootx64.efi
Или такое только с помощью Dnsmasq можно, а через dhcpd никак?

★★★★★

Последнее исправление: peregrine (всего исправлений: 1)

Ответ на: комментарий от anonymous2

Мда, совсем туго идёт. Вроде всё сделал, а в логе каша

journalctl -b (кусочек который как я думаю проблемный)

апр 02 18:58:53 codemonkey-PC dhcpd[431672]: ^[[0;1;39mNo subnet declaration for docker0 (172.17.0.1).
апр 02 18:58:53 codemonkey-PC dhcpd[431672]: ^[[0;1;39m** Ignoring requests on docker0.  If this is not what
апр 02 18:58:53 codemonkey-PC dhcpd[431672]: ^[[0;1;39m   you want, please write a subnet declaration
апр 02 18:58:53 codemonkey-PC dhcpd[431672]: ^[[0;1;39m   in your dhcpd.conf file for the network segment
апр 02 18:58:53 codemonkey-PC dhcpd[431672]: ^[[0;1;39m   to which interface docker0 is attached. **
Фиг знает откуда этот docker0 вылез, ifconfig его показывает конечно, но вообще реальный физический интерфейс у меня enp3s0. Хотя я явно его не прописывал в /etc/dhcp/dhcpd.conf
option domain-name "example.org";
option domain-name-servers ns1.example.org, ns2.example.org;

default-lease-time 600;
max-lease-time 7200;
ddns-update-style none;
option client-system-arch code 93 = unsigned integer 16;
subnet 192.168.1.0 netmask 255.255.255.0 {
        range 192.168.1.34 192.168.1.200;
        option routers 192.168.1.1;
        option domain-name-servers 192.168.1.1;
        class "pxeclients" {
                if option client-system-arch = 00:07 or option client-system-arch = 00:09 {
                        filename "bootx64.efi";
                } else {
                        filename "pxelinux.0";
                }
        }
}
Внимание вопрос - где я накосячил? UEFI зависает на этапе поиска dhcp (была бы возможность лог оттуда вытащить - вытащил бы, но что с UEFI взять то) В логе на компе при попытке запуска загрузки по сети наблюдаю следующую картину:
апр 02 19:08:47 codemonkey-PC dhcpd[431672]: DHCPDISCOVER from мак_адрес_устройства via enp3s0
апр 02 19:08:48 codemonkey-PC dhcpd[431672]: DHCPOFFER on 192.168.1.34 to мак_адрес_устройства via enp3s0
апр 02 19:08:51 codemonkey-PC dhcpd[431672]: DHCPDISCOVER from мак_адрес_устройства via enp3s0
апр 02 19:08:51 codemonkey-PC dhcpd[431672]: DHCPOFFER on 192.168.1.34 to мак_адрес_устройства via enp3s0
апр 02 19:08:59 codemonkey-PC dhcpd[431672]: DHCPDISCOVER from мак_адрес_устройства via enp3s0
апр 02 19:08:59 codemonkey-PC dhcpd[431672]: DHCPOFFER on 192.168.1.34 to мак_адрес_устройства via enp3s0
апр 02 19:09:15 codemonkey-PC dhcpd[431672]: DHCPDISCOVER from мак_адрес_устройства via enp3s0
апр 02 19:09:15 codemonkey-PC dhcpd[431672]: DHCPOFFER on 192.168.1.34 to мак_адрес_устройства via enp3s0

peregrine ★★★★★
() автор топика
Ответ на: комментарий от peregrine

апр 02 18:58:53 codemonkey-PC dhcpd[431672]: No subnet declaration for docker0 (172.17.0.1).

Добавь в конфиг

  subnet 172.17.0.0 netmask 255.255.255.0 {
       option subnet-mask 255.255.255.0;
       deny unknown-clients;
       not authoritative;
  }
(маску посмотри на интерфейсе)

И он не будет ругаться. Другой вариант - при запуске dhcpd указать параметром enp3s0 и он не будет трогать другие интерфейсы.

добавь перед subnet

class "uefi" {
 match option client-system-arch = 00:07 or option client-system-arch = 00:09;
 filename "bootx64.efi";
 log (info, concat("Query from uefi client ",binary-to-ascii(16, 8, "-", substring(hardware, 1, 6));));
}
Хотя бы будет понятно матчится оно или нет.

vel ★★★★★
()