Dnsmasq bios and uefi
-
@george1421 ok. i was using cobbler install redhat @ my work env. at first i found all works fine @ legacy bios. but when shift to UEFI. its’ not work good anymore. cobbler+dnsmasq.proxymode, msg freeze at option 47. i search google and found fog.wiki have advice dnsmasq need upgrade to 2.76. i do it. at this time , screen show grub>. then i search @ dnsmasq mail list and other website. find some way to figure this write in my first post. but it’s need write static ip&nextserver info to cfg, make standalone efi file. then Tom Elliott suggest ipxe & rEFInd.
-
@george1421 im sorry make u confuse, cuz my english was not good. maybe can’t describe clearly.
-
@xutianhong said in Dnsmasq bios and uefi:
need upgrade to 2.76. i do it. at this time , screen show grub>. then i search @ dnsmasq mail list and other website. find some way to figure this write in my first post.
What confuses me is you say dnsmasq and then grub. This is the confusion. dnsmasq is used to send the proper boot information to the target computer to get the target to load the FOG iPXE menu. Once the iPXE menu is displayed dnsmasq is no longer needed.
Once the iPXE menu is displayed you must make a menu pick within a few seconds or the iPXE menu picks boot from local hard drive to boot.
This is where the iPXE menu uses the (default) sanboot process for finding the hard drive on bios (legacy) computers. If your target computer is uefi then you can use grub, but most will use rEFInd to identify the boot partition on the hard drive. If rEFInd can’t find the boot partition you may need to adjust the refind.conf file to search more locations.
I want to be clear that if your target computer boots into the FOG iPXE menu then dnsmasq is working correctly.
If you are having a problem leaving the iPXE menu and booting from the local hard drive then this is an iPXE problem.
-
@xutianhong said in Dnsmasq bios and uefi:
@george1421 im sorry make u confuse, cuz my english was not good. maybe can’t describe clearly.
We can work together to find an answer, so no problem. We will take it slow to understand each other.
-
@george1421 im not sure what happened. it’s looks like grub cant get cfg file?
it’s my boot process.
dhcp start @ 200
tftp & dnsmasq.proxymode start @ 226 only use pxe+grub not ipxe&refind
uefi client @ dhcp
the tftproot tree blow this[root@cobbler tftpboot]# tree . |-- boot | `-- grub | `-- menu.lst |-- etc |-- grub | |-- 01-00-50-56-2D-85-AB | |-- 01-00-50-56-36-01-FD | |-- C0A888FC | |-- efidefault | |-- grub-x86_64.efi | |-- grub-x86.efi | `-- images -> ../images |-- images | |-- centos6.0-x86_64 | | |-- initrd.img | | `-- vmlinuz | |-- centos7.2-x86_64 | | |-- initrd.img | | `-- vmlinuz | |-- rhel72-x86_64 | | |-- initrd.img | | `-- vmlinuz | `-- rhel73-x86_64 | |-- initrd.img | `-- vmlinuz |-- images2 |-- memdisk |-- menu.c32 |-- ppc |-- pxelinux.0 |-- pxelinux.cfg | |-- 01-00-50-56-2d-85-ab | |-- 01-00-50-56-36-01-fd | |-- C0A888FC | `-- default |-- s390x | `-- profile_list |-- uefi `-- yaboot
the dnsmasq conf blow this
# 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 # 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 #legacy bios options #pxe-service=X86PC,"Legacy",undionly.kpxe,192.168.136.226 #vmware workstation 12 EFI options pxe-service=BC_EFI,"BC_EFI",grub/grub-x86_64.efi,192.168.136.226 dhcp-range=192.168.136.200,proxy
when uefi client power up, it’s show grub>
here is dhcp/tftp/dnsmasq log
May 23 05:56:08 localhost dhcpd[844]: DHCPDISCOVER from 00:0c:29:87:09:d5 via ens33 May 23 05:56:09 localhost dhcpd[844]: DHCPOFFER on 192.168.136.250 to 00:0c:29:87:09:d5 via ens33 May 23 05:56:11 localhost dhcpd[844]: DHCPREQUEST for 192.168.136.250 (192.168.136.200) from 00:0c:29:87:09:d5 via ens33 May 23 05:56:11 localhost dhcpd[844]: DHCPACK on 192.168.136.250 to 00:0c:29:87:09:d5 via ens33
5月 23 05:56:12 cobbler xinetd[981]: START: tftp pid=38640 from=192.168.136.250 5月 23 05:56:12 cobbler in.tftpd[38641]: RRQ from 192.168.136.250 filename grub/grub-x86_64.efi 5月 23 05:56:12 cobbler in.tftpd[38642]: RRQ from 192.168.136.250 filename grub/grub-x86_64.efi
5月 23 05:56:08 cobbler dnsmasq-dhcp[38636]: 2915677108 available DHCP subnet: 192.168.136.200/255.255.255.0 5月 23 05:56:08 cobbler dnsmasq-dhcp[38636]: 2915677108 vendor class: PXEClient:Arch:00009:UNDI:003016 5月 23 05:56:08 cobbler dnsmasq-dhcp[38636]: 2915677108 PXE(ens33) 00:0c:29:87:09:d5 proxy 5月 23 05:56:08 cobbler dnsmasq-dhcp[38636]: 2915677108 tags: UEFI64, ens33 5月 23 05:56:08 cobbler dnsmasq-dhcp[38636]: 2915677108 next server: 192.168.136.226 5月 23 05:56:08 cobbler dnsmasq-dhcp[38636]: 2915677108 broadcast response 5月 23 05:56:08 cobbler dnsmasq-dhcp[38636]: 2915677108 sent size: 1 option: 53 message-type 2 5月 23 05:56:08 cobbler dnsmasq-dhcp[38636]: 2915677108 sent size: 4 option: 54 server-identifier 192.168.136.226 5月 23 05:56:08 cobbler dnsmasq-dhcp[38636]: 2915677108 sent size: 9 option: 60 vendor-class 50:58:45:43:6c:69:65:6e:74 5月 23 05:56:08 cobbler dnsmasq-dhcp[38636]: 2915677108 sent size: 17 option: 97 client-machine-id 00:56:4d:15:7a:51:36:e6:8f:fd:fe:4d:c4:27... 5月 23 05:56:11 cobbler dnsmasq-dhcp[38636]: 2915677108 available DHCP subnet: 192.168.136.200/255.255.255.0 5月 23 05:56:11 cobbler dnsmasq-dhcp[38636]: 2915677108 vendor class: PXEClient:Arch:00009:UNDI:003016 5月 23 05:56:11 cobbler dnsmasq-dhcp[38636]: 3034770792 available DHCP subnet: 192.168.136.200/255.255.255.0 5月 23 05:56:11 cobbler dnsmasq-dhcp[38636]: 3034770792 vendor class: PXEClient:Arch:00009:UNDI:003016 5月 23 05:56:11 cobbler dnsmasq-dhcp[38636]: 3034770792 PXE(ens33) 00:0c:29:87:09:d5 proxy 5月 23 05:56:11 cobbler dnsmasq-dhcp[38636]: 3034770792 tags: UEFI64, ens33 5月 23 05:56:11 cobbler dnsmasq-dhcp[38636]: 3034770792 bootfile name: grub/grub-x86_64.efi 5月 23 05:56:11 cobbler dnsmasq-dhcp[38636]: 3034770792 server name: 192.168.136.226 5月 23 05:56:11 cobbler dnsmasq-dhcp[38636]: 3034770792 next server: 192.168.136.226 5月 23 05:56:11 cobbler dnsmasq-dhcp[38636]: 3034770792 sent size: 1 option: 53 message-type 5 5月 23 05:56:11 cobbler dnsmasq-dhcp[38636]: 3034770792 sent size: 4 option: 54 server-identifier 192.168.136.226 5月 23 05:56:11 cobbler dnsmasq-dhcp[38636]: 3034770792 sent size: 9 option: 60 vendor-class 50:58:45:43:6c:69:65:6e:74 5月 23 05:56:11 cobbler dnsmasq-dhcp[38636]: 3034770792 sent size: 17 option: 97 client-machine-id 00:56:4d:15:7a:51:36:e6:8f:fd:fe:4d:c4:27...
-
@xutianhong what does the grub.conf look like?
-
@xutianhong I say this because it appears from your directory tree there is no grub.cfg file.
-
@Tom-Elliott there no grub.cfg, only cobbler gen efidefault. ofcuz i copy efidefault to /grub.cfg & /boot/grub/grub.cfg, not work, same grub> msg.
default=0 timeout=0 title centos6.0-x86_64 root (nd) kernel /images/centos6.0-x86_64/vmlinuz ksdevice=bootif lang= kssendmac text ks=http://192.168.136.226/cblr/svc/op/ks/profile/centos6.0-x86_64 initrd /images/centos6.0-x86_64/initrd.img title centos7.2-x86_64 root (nd) kernel /images/centos7.2-x86_64/vmlinuz ksdevice=bootif lang= kssendmac text ks=http://192.168.136.226/cblr/svc/op/ks/profile/centos7.2-x86_64 initrd /images/centos7.2-x86_64/initrd.img title rhel72-x86_64 root (nd) kernel /images/rhel72-x86_64/vmlinuz ksdevice=bootif lang= kssendmac text ks=http://192.168.136.226/cblr/svc/op/ks/profile/rhel72-x86_64 initrd /images/rhel72-x86_64/initrd.img title rhel73-x86_64 root (nd) kernel /images/rhel73-x86_64/vmlinuz ksdevice=bootif lang= kssendmac text ks=http://192.168.136.226/cblr/svc/op/ks/profile/rhel73-x86_64 initrd /images/rhel73-x86_64/initrd.img```
-
@xutianhong and what does your grub line look like?
I would imagine it needs to look at the config file directly.
I don’t know if it can be done in dnsmasq but possibly:
pxe-service=BC_EFI,"BC_EFI","grub/grub-x86_64.efi --config-file=grub/efidefault",192.168.136.226
-
@xutianhong I have to ask are you using FOG or are you using FOG for pxe only, or are you not using fog and have a question about pxe booting?
I would ask why you do it this way? I would not use grub but the iPXE menu instead.
-
@george1421 im not using FOG. only question about pxe booting. use this cuz cobbler default env. im not add/del extra file to it. if default can work. i dont want change any thing.
-
@xutianhong OK understand, I was confused because I think you use FOG and doing this.
You can still do what you want if you look at it a bit differently. FOG uses a pxe boot loader called iPXE. That is similar to syslinux and grub. But iPXE is very feature rich.
You can do what you are looking for if you know how to program your config menus.
Here is my dnsmasq config file
# 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=/tftpboot # The boot filename, Server name, Server Ip Address dhcp-boot=undionly.kpxe,,<fog_server_IP> # 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:UEFI32,i386-efi/ipxe.efi,,<fog_server_IP> dhcp-boot=net:UEFI,ipxe.efi,,<fog_server_IP> dhcp-boot=net:UEFI64,ipxe.efi,,<fog_server_IP> # PXE menu. The first part is the text displayed to the user. The second is the timeout, in seconds. pxe-prompt="Booting FOG Client", 1 # The known types are x86PC, PC98, IA64_EFI, Alpha, Arc_x86, # Intel_Lean_Client, IA32_EFI, BC_EFI, Xscale_EFI and X86-64_EFI # This option is first and will be the default if there is no input from the user. pxe-service=X86PC, "Boot to FOG", undionly.kpxe pxe-service=X86-64_EFI, "Boot to FOG UEFI", ipxe.efi pxe-service=BC_EFI, "Boot to FOG UEFI PXE-BC", ipxe.efi dhcp-range=<fog_server_ip>,proxy
You replace the <fog_server_ip> with your address of your tftp server.
-
@xutianhong So are you using FOG and Cobbler together, or only came upon the post from a google search about a dnsmasq question? (I’m still willing to try to help, but this should be clear.)
I don’t know you’re native language so I can’t really provide a translation to try to make this a little easier for you.
-
I found this, maybe it can help?
https://github.com/openSUSE/kiwi/wiki/Setup-PXE-boot-with-EFI-Using-GRUB2 -
@Tom-Elliott @george1421 thank you, im came up upon the post from a google search about dnsmasq&pxe boot question.
this is not wok. screen show uefi setting menu. not grub> yet.pxe-service=BC_EFI,"BC_EFI",grub/grub-x86_64.efi --config-file=grub/efidefault,192.168.136.226
this website advice used in my first post. but static network setting not useful.
https://github.com/openSUSE/kiwi/wiki/Setup-PXE-boot-with-EFI-Using-GRUB2thank you @george1421 i tried ipxe, found it’s very powerful. i was working on it to try combine with cobbler.
but it’s looks like redhat 7.3 have a kernel bug for ipxe uefi boot. http://forum.ipxe.org/showthread.php?tid=8243&pid=13314#pid13314
finally solved.i come from China.:bow_tone2: u know chinese?
thank you for ur help. both.~ 谢谢 -
@xutianhong I don’t know Chinese, but google has an awesome translate feature. It’s not perfect I understand, but should be clear enough to give an understanding of what we are trying to say.
我不懂中文,但google有一个很棒的翻译功能。 这是不完美的我明白,但应该清楚,以了解我们正在试图说的话
-
@Tom-Elliott google translate was good. if have any problem, can i ask here again?
-
@xutianhong I’m glad you have it working. Tom and I are very skilled with FOG. Since fog is built using many other linux parts we know those parts too. iPXE is a great tool if you want to use it.
FOG also has a great pxe boot menu tool built in. I know some people install FOG just for pxe booting and don’t use FOG for computer imaging purposes.
You may ask a question here, we will help if possible.