hi, when saw dnsmasq maillist http://lists.thekelleys.org.uk/pipermail/dnsmasq-discuss/2017q2/011379.html
3q for https://github.com/openSUSE/kiwi/wiki/Setup-PXE-boot-with-EFI-using-grub2 & https://www.ibm.com/developerworks/community/blogs/a2674a1d-a968-4f17-998f-b8b38497c9f7/entry/uefi-grub2?lang=ru
the problem may not in dnsmasq, when update to version 2.76. uefi boot can see grub>
My env is all in VMware Workstation 12 Pro 12.0.0 build-2985596
NAT mode
192.168.136.200 to dhcp server centos7.3
192.168.136.226 to cobbler( tftpserver & dnsmasq ) centos7.3
dhcp to cobblerctos73(legacy bios)
dhcp to uefi(efi)
- 136.200 install dhcpd
conf file like blow
dns-update-style interim;
subnet 192.168.136.0 netmask 255.255.255.0 {
option routers 192.168.136.2;
option domain-name-servers 192.168.136.2;
option subnet-mask 255.255.255.0;
range dynamic-bootp 192.168.136.240 192.168.136.250;
default-lease-time 21600;
max-lease-time 43200;
}
- 136.226 install centosbase dnsmasq then upgrade to 2.76 from souce, see
https://wiki.fogproject.org/wiki/index.php?title=ProxyDHCP_with_dnsmasq#Compiling dnsmasq 2.76 if you need uefi support
#define HAVE_DBUS
#define HAVE_IDN
/*#define HAVE_IDN_STATIC*/??? this line not need? cuz my centos73 not support this when do make
#define HAVE_CONNTRACK
#define HAVE_DNSSEC
then dnsmasq conf file like blow
# Don't function as a DNS server:
port=0
# Log lots of extra information about DHCP transactions.
log-dhcp
# Set the root directory for files available via FTP.
tftp-root=/var/lib/tftpboot
# Disable re-use of the DHCP servername and filename fields as extra
# option space. That's to avoid confusing some old or broken DHCP clients.
dhcp-no-override
# inspect the vendor class string and match the text to set the tag
dhcp-vendorclass=BIOS,PXEClient:Arch:00000
dhcp-vendorclass=UEFI32,PXEClient:Arch:00006
dhcp-vendorclass=UEFI,PXEClient:Arch:00007
dhcp-vendorclass=UEFI64,PXEClient:Arch:00009
# Set the boot file name based on the matching tag from the vendor class (above)
#dhcp-boot=net:BIOS,pxelinux.0,,192.168.136.226
#dhcp-boot=net:UEFI32,grub/grub-x86.efi,,192.168.136.226
#dhcp-boot=net:UEFI,BOOTX64.efi,,192.168.136.226
#dhcp-boot=net:UEFI64,grub/grub-x86_64.efi,,192.168.136.226
# The boot filename, Server name, Server Ip Address
dhcp-boot=pxelinux.0,,192.168.136.226
# PXE menu. The first part is the text displayed to the user. The second is the timeout, in seconds.
pxe-prompt="Booting UAT Autoinstall Client", 1
dhcp-range=192.168.136.200,proxy
#legacy bios options
pxe-service=X86PC,"Legacy",pxelinux,192.168.136.226
#vmware workstation 12 EFI options
pxe-service=BC_EFI,"BC_EFI",bootx64.efi,192.168.136.226
- I find many other doc, all can’t work, till this two, see
https://github.com/openSUSE/kiwi/wiki/Setup-PXE-boot-with-EFI-using-grub2
https://www.ibm.com/developerworks/community/blogs/a2674a1d-a968-4f17-998f-b8b38497c9f7/entry/uefi-grub2?lang=ru
it’s use pxe to boot diskless linux, when finish 1&2, I can see grub>. So ….
Tftproot is /var/lib/tftpboot
-
Mkdir tftproot/boot/grub(in cobbler it already have)
-
Vim tftproot/boot/grub/grub.cfg blow this
set timeout=5
menuentry 'Linux diskless' --class os {
insmod net
insmod efinet
insmod tftp
insmod gzio
insmod part_gpt
insmod efi_gop
insmod efi_uga
# dhcp, tftp server in my network
set net_default_server=192.168.136.226
# auto dhcp setup did not work for me, no idea why
# net_bootp
# ok let's assign a static address for now
net_add_addr eno0 efinet0 192.168.136.246
echo 'Network status: '
net_ls_cards
net_ls_addr
net_ls_routes
echo 'Loading Linux ...'
linux (tftp)/boot/vmlinuz inst.ks=http://192.168.136.226/cblr/svc/op/ks/profile/rhel73-x86_64
echo 'Loading initial ramdisk ...'
initrd (tftp)/boot/initrd.img
}
- grub2-mkstandalone -d /usr/lib/grub/x86_64-efi/ -O x86_64-efi --fonts=“unicode” -o /var/lib/tftpboot/bootx64.efi boot/grub/grub.cfg
- systemctl restart dnsmasq.
Just power up uefi.
Dhcpd log blow
May 20 23:46:05 localhost.localdomain dhcpd[844]: DHCPDISCOVER from 00:0c:29:87:09:d5 via ens33
May 20 23:46:06 localhost.localdomain dhcpd[844]: DHCPOFFER on 192.168.136.246 to 00:0c:29:87:09:d5 via ens33
May 20 23:46:08 localhost.localdomain dhcpd[844]: DHCPREQUEST for 192.168.136.246 (192.168.136.200) from 00:0c:29:87:09:d5 via ens33
May 20 23:46:08 localhost.localdomain dhcpd[844]: DHCPACK on 192.168.136.246 to 00:0c:29:87:09:d5 via ens33
May 20 23:48:36 localhost.localdomain dhcpd[844]: DHCPDISCOVER from 00:0c:29:87:09:d5 via ens33
May 20 23:48:37 localhost.localdomain dhcpd[844]: DHCPOFFER on 192.168.136.246 to 00:0c:29:87:09:d5 via ens33
May 20 23:48:40 localhost.localdomain dhcpd[844]: DHCPREQUEST for 192.168.136.246 (192.168.136.200) from 00:0c:29:87:09:d5 via ens33
May 20 23:48:40 localhost.localdomain dhcpd[844]: DHCPACK on 192.168.136.246 to 00:0c:29:87:09:d5 via ens33
May 20 23:50:08 localhost.localdomain dhcpd[844]: DHCPDISCOVER from 00:0c:29:87:09:d5 via ens33
May 20 23:50:09 localhost.localdomain dhcpd[844]: DHCPOFFER on 192.168.136.246 to 00:0c:29:87:09:d5 via ens33
May 20 23:50:09 localhost.localdomain dhcpd[844]: DHCPREQUEST for 192.168.136.246 (192.168.136.200) from 00:0c:29:87:09:d5 via ens33
May 20 23:50:09 localhost.localdomain dhcpd[844]: DHCPACK on 192.168.136.246 to 00:0c:29:87:09:d5 via ens33
May 20 23:50:26 localhost.localdomain dhcpd[844]: DHCPREQUEST for 192.168.136.246 from 00:0c:29:87:09:d5 via ens33
May 20 23:50:26 localhost.localdomain dhcpd[844]: DHCPACK on 192.168.136.246 to 00:0c:29:87:09:d5 via ens33
Dnsmasq log blow
5月 20 23:46:05 cobbler dnsmasq-dhcp[1499]: 1607759066 available DHCP subnet: 192.168.136.200/255.255.255.0
5月 20 23:46:05 cobbler dnsmasq-dhcp[1499]: 1607759066 vendor class: PXEClient:Arch:00009:UNDI:003016
5月 20 23:46:05 cobbler dnsmasq-dhcp[1499]: 1607759066 PXE(ens33) 00:0c:29:87:09:d5 proxy
5月 20 23:46:05 cobbler dnsmasq-dhcp[1499]: 1607759066 tags: UEFI64, ens33
5月 20 23:46:05 cobbler dnsmasq-dhcp[1499]: 1607759066 next server: 192.168.136.226
5月 20 23:46:05 cobbler dnsmasq-dhcp[1499]: 1607759066 broadcast response
5月 20 23:46:05 cobbler dnsmasq-dhcp[1499]: 1607759066 sent size: 1 option: 53 message-type 2
5月 20 23:46:05 cobbler dnsmasq-dhcp[1499]: 1607759066 sent size: 4 option: 54 server-identifier 192.168.136.226
5月 20 23:46:05 cobbler dnsmasq-dhcp[1499]: 1607759066 sent size: 9 option: 60 vendor-class 50:58:45:43:6c:69:65:6e:74
5月 20 23:46:05 cobbler dnsmasq-dhcp[1499]: 1607759066 sent size: 17 option: 97 client-machine-id 00:56:4d:15:7a:51:36:e6:8f:fd:fe:4d:c4:27...
5月 20 23:46:08 cobbler dnsmasq-dhcp[1499]: 1607759066 available DHCP subnet: 192.168.136.200/255.255.255.0
5月 20 23:46:08 cobbler dnsmasq-dhcp[1499]: 1607759066 vendor class: PXEClient:Arch:00009:UNDI:003016
5月 20 23:46:08 cobbler dnsmasq-dhcp[1499]: 1726852750 available DHCP subnet: 192.168.136.200/255.255.255.0
5月 20 23:46:08 cobbler dnsmasq-dhcp[1499]: 1726852750 vendor class: PXEClient:Arch:00009:UNDI:003016
5月 20 23:46:08 cobbler dnsmasq-dhcp[1499]: 1726852750 PXE(ens33) 00:0c:29:87:09:d5 proxy
5月 20 23:46:08 cobbler dnsmasq-dhcp[1499]: 1726852750 tags: UEFI64, ens33
5月 20 23:46:08 cobbler dnsmasq-dhcp[1499]: 1726852750 bootfile name: bootx64.efi
5月 20 23:46:08 cobbler dnsmasq-dhcp[1499]: 1726852750 server name: 192.168.136.226
5月 20 23:46:08 cobbler dnsmasq-dhcp[1499]: 1726852750 next server: 192.168.136.226
5月 20 23:46:08 cobbler dnsmasq-dhcp[1499]: 1726852750 sent size: 1 option: 53 message-type 5
5月 20 23:46:08 cobbler dnsmasq-dhcp[1499]: 1726852750 sent size: 4 option: 54 server-identifier 192.168.136.226
5月 20 23:46:08 cobbler dnsmasq-dhcp[1499]: 1726852750 sent size: 9 option: 60 vendor-class 50:58:45:43:6c:69:65:6e:74
5月 20 23:46:08 cobbler dnsmasq-dhcp[1499]: 1726852750 sent size: 17 option: 97 client-machine-id 00:56:4d:15:7a:51:36:e6:8f:fd:fe:4d:c4:27...
5月 20 23:48:36 cobbler dnsmasq-dhcp[1499]: 430386701 available DHCP subnet: 192.168.136.200/255.255.255.0
5月 20 23:48:36 cobbler dnsmasq-dhcp[1499]: 430386701 vendor class: PXEClient:Arch:00009:UNDI:003016
5月 20 23:48:36 cobbler dnsmasq-dhcp[1499]: 430386701 PXE(ens33) 00:0c:29:87:09:d5 proxy
5月 20 23:48:36 cobbler dnsmasq-dhcp[1499]: 430386701 tags: UEFI64, ens33
5月 20 23:48:36 cobbler dnsmasq-dhcp[1499]: 430386701 next server: 192.168.136.226
5月 20 23:48:36 cobbler dnsmasq-dhcp[1499]: 430386701 broadcast response
5月 20 23:48:36 cobbler dnsmasq-dhcp[1499]: 430386701 sent size: 1 option: 53 message-type 2
5月 20 23:48:36 cobbler dnsmasq-dhcp[1499]: 430386701 sent size: 4 option: 54 server-identifier 192.168.136.226
5月 20 23:48:36 cobbler dnsmasq-dhcp[1499]: 430386701 sent size: 9 option: 60 vendor-class 50:58:45:43:6c:69:65:6e:74
5月 20 23:48:36 cobbler dnsmasq-dhcp[1499]: 430386701 sent size: 17 option: 97 client-machine-id 00:56:4d:15:7a:51:36:e6:8f:fd:fe:4d:c4:27...
5月 20 23:48:40 cobbler dnsmasq-dhcp[1499]: 430386701 available DHCP subnet: 192.168.136.200/255.255.255.0
5月 20 23:48:40 cobbler dnsmasq-dhcp[1499]: 430386701 vendor class: PXEClient:Arch:00009:UNDI:003016
5月 20 23:48:40 cobbler dnsmasq-dhcp[1499]: 549480385 available DHCP subnet: 192.168.136.200/255.255.255.0
5月 20 23:48:40 cobbler dnsmasq-dhcp[1499]: 549480385 vendor class: PXEClient:Arch:00009:UNDI:003016
5月 20 23:48:40 cobbler dnsmasq-dhcp[1499]: 549480385 PXE(ens33) 00:0c:29:87:09:d5 proxy
5月 20 23:48:40 cobbler dnsmasq-dhcp[1499]: 549480385 tags: UEFI64, ens33
5月 20 23:48:40 cobbler dnsmasq-dhcp[1499]: 549480385 bootfile name: bootx64.efi
5月 20 23:48:40 cobbler dnsmasq-dhcp[1499]: 549480385 server name: 192.168.136.226
5月 20 23:48:40 cobbler dnsmasq-dhcp[1499]: 549480385 next server: 192.168.136.226
5月 20 23:48:40 cobbler dnsmasq-dhcp[1499]: 549480385 sent size: 1 option: 53 message-type 5
5月 20 23:48:40 cobbler dnsmasq-dhcp[1499]: 549480385 sent size: 4 option: 54 server-identifier 192.168.136.226
5月 20 23:48:40 cobbler dnsmasq-dhcp[1499]: 549480385 sent size: 9 option: 60 vendor-class 50:58:45:43:6c:69:65:6e:74
5月 20 23:48:40 cobbler dnsmasq-dhcp[1499]: 549480385 sent size: 17 option: 97 client-machine-id 00:56:4d:15:7a:51:36:e6:8f:fd:fe:4d:c4:27...
5月 20 23:50:08 cobbler dnsmasq-dhcp[1499]: 278376755 available DHCP subnet: 192.168.136.200/255.255.255.0
5月 20 23:50:08 cobbler dnsmasq-dhcp[1499]: 278376755 vendor class: anaconda-Linux 3.10.0-514.el7.x86_64 x86_64
5月 20 23:50:09 cobbler dnsmasq-dhcp[1499]: 278376755 available DHCP subnet: 192.168.136.200/255.255.255.0
5月 20 23:50:09 cobbler dnsmasq-dhcp[1499]: 278376755 vendor class: anaconda-Linux 3.10.0-514.el7.x86_64 x86_64
5月 20 23:50:26 cobbler dnsmasq-dhcp[1499]: 2725144841 available DHCP subnet: 192.168.136.200/255.255.255.0
5月 20 23:50:26 cobbler dnsmasq-dhcp[1499]: 2725144841 vendor class: anaconda-Linux 3.10.0-514.el7.x86_64 x86_64
Tftp log blow
5月 20 23:46:09 cobbler in.tftpd[2257]: RRQ from 192.168.136.246 filename bootx64.efi
5月 20 23:46:09 cobbler in.tftpd[2258]: RRQ from 192.168.136.246 filename bootx64.efi
5月 20 23:48:41 cobbler in.tftpd[2285]: RRQ from 192.168.136.246 filename bootx64.efi
5月 20 23:48:41 cobbler in.tftpd[2286]: RRQ from 192.168.136.246 filename bootx64.efi
5月 20 23:48:58 cobbler in.tftpd[2287]: RRQ from 192.168.136.246 filename /boot/vmlinuz
5月 20 23:49:04 cobbler in.tftpd[2288]: RRQ from 192.168.136.246 filename /boot/initrd.img
***Now, the uefi boot is done.
It’s not perfect.
Cuz in grub.cfg we need write nextserver ip & host ip,
And grub2-mkstandalone command write grub.cfg in bootx64.efi, cuz I change boot/grub/grub.cfg it’s. not working.
So now I working to grub lib, want find way to solve this 3 problem.
If anybody working with grub/grub2, can give me some idea? thank you very much.***