HP Elitebook 840 G7
-
@george1421
Does this give you the info you need? I use multiple adapters, eht0 is assigned to FOG. ETH1 is how I let FOG get out to the internet. -
@joyboy11111 OK so to answer my question, you use the FOG server as the dhcp server for your FOG imaging network. So you need to edit your dhcp server configuration file.
Replace these parameters
filename "ipxe.efi"
withfilename "snponly.efi"
then restart your dhcp server. Lets try the snponly.efi boot loader. Lets see if it finds the right mac address. -
@george1421
I renamed the ipxe, and downloaded snponly. Tested with the same issue. I feel i am doing something wrong. -
@joyboy11111 Ok I think we need to regroup because we somehow have moved off course.
You are using the isc-dhcp dhcp server on your FOG server. So what I’m recommending is that you go into the configuration file for the isc-dhcp server and change the references from ipxe.efi to snponly.efi, then restart the isc-dhcp server.
I’m going to assume you are running debian/ubuntu variant so these instructions will help you: https://help.ubuntu.com/community/isc-dhcp-server
The fog installed configuration file for the isc-dhcp server looks similar to this: https://wiki.fogproject.org/wiki/index.php/BIOS_and_UEFI_Co-Existence#Example_1
OK so to my thoughts. The ipxe.efi boot loader is much like an operating system itself where it will have a hardware driver for every common model of network adapter. The snponly.efi boot loader is much like the undionly.kpxe bios boot loader in it only contains one network driver which speaks to the network driver built into the network card. The idea is that maybe there is a bug in the ipxe.efi boot loader driver for that nic, where the driver built into the network adapter would respond correctly.
There is something uniquely special about that network adapter to why it is reporting a different mac address for iPXE vs linux and windows.
-
@joyboy11111 In the picture it looks like you put the downloaded iPXE files in
/var/www/html/fog/service/ipxe/
but that place is for kernels and inits but not for the iPXE files! Put those in/tftpboot/
(default when you use the FOG installer). -
I am very sorry it has taken me this long to get back. Several other issues came up that I needed to address.
If I am in the correct place the dhcp config file is empty. I am very sorry I am so reliant on you for step by step instructions.
is Sebastian correct in his post below also?
-
@joyboy11111 No that is not the config file for the dhcp server, that is like the startup options file.
I had to look it up because centos 6 is so long ago. But it looks like the config file is
/etc/dhcp/dhcpd.conf
ref: https://www.server-world.info/en/note?os=CentOS_6&p=dhcp
I am a bit surprised that FOG 1.5.x installs on centos 6. But if it works, go with it.
-
@george1421
What line would I make the change from ipxe to snponly. -
@joyboy11111 I’m going to guess, and no judgement intended please, that you’re not overly familiar with VI/VIM for editing file?
type these commands:
/ipxe.efi
Press enter
Note the
/
= search everything after.Once you find the line line arrow over to the area to edit and press the
i
key, Press delete over the ipxe.efi then typesnponly.efi
Note the
i
= insert to leave “insert/edit” mode press ESC keyPress the
esc
Type
:w
Note the
:
puts VI into "command mode.w
= save/write file.To exit VI type:
:q
Note the
:
puts the VI into "command mode.q
= quit. -
@joyboy11111 If the FOG installer created the dhcp server configuration it should look similar to this: https://wiki.fogproject.org/wiki/index.php/BIOS_and_UEFI_Co-Existence#Example_1
If you scroll down in the screen shot you posted you will see this section
class "UEFI-64-1" { match if substring(option vendor-class-identifier, 0, 20) = "PXEClient:Arch:00007"; filename "ipxe.efi"; } class "UEFI-64-2" { match if substring(option vendor-class-identifier, 0, 20) = "PXEClient:Arch:00008"; filename "ipxe.efi"; } class "UEFI-64-3" { match if substring(option vendor-class-identifier, 0, 20) = "PXEClient:Arch:00009"; filename "ipxe.efi"; }
so for the uefi-64 entries you want to change filename varialble to snponly.efi
-
There is nothing below Filename “undionly.kpxe” just blank. I tried to the search from tom /ipxe.efi, nothing, no results. should I copy and past those lines from the wiki for the rest of the config file?
-
@joyboy11111 Did someone hand edit that file? I find it strange that it doesn’t match the fog supplied configuration file.
You can remove that static
filename
stanza line and insert the class definitions from the wiki page. Then reboot the dhcp server.The ways its currently configured that dhcp service will only support booting bios based computers via PXE.
-
@george1421 It does give me a warning about a swap file when I go to view the config.
-
@joyboy11111 So the file may have been open with vi or nano when the computer was rebooted or you have the file open in another session on the server. If the swap file was created previously before a reboot you can delete the file. In the same directory as that file there should be a .swp file. You can remove that file so you won’t get that nuances message.
-
I updated the config file to match the wiki, leaving my ip settings. I replaced all the instances of ipxe.efi with snponly. Restarted DHCP and now nothing will pxe boot. It just sits at >>start PXE over IPv4, and times out. I went back into look at the config file and it looks empty, like everything I entered and saved is now gone.
I am about ready to see if I can start a remote session with you to see if you can straighten this out. Again I apologize for taking so much of your time.
-
@joyboy11111 Lets start with this.
Connect to the fog server using putty or ssh
mv /etc/dhcp/dhcpd.conf /etc/dhcp/dhcpd.conf.sav vi /etc/dhcp/dhcpd.conf i (to insert)
Copy the following code out of your browser and the paste into the vi editor
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; # RFC4578 use-host-decl-names on; ddns-update-style interim; ignore client-updates; next-server 192.168.1.41; authoritative; subnet 192.168.1.0 netmask 255.255.255.0 { option subnet-mask 255.255.255.0; range dynamic-bootp 192.168.1.50 192.168.1.75; default-lease-time 21600; max-lease-time 43200; option domain-name-servers 192.168.1.4; option routers 192.168.1.254; class "UEFI-32-1" { match if substring(option vendor-class-identifier, 0, 20) = "PXEClient:Arch:00006"; filename "i386-efi/ipxe.efi"; } class "UEFI-32-2" { match if substring(option vendor-class-identifier, 0, 20) = "PXEClient:Arch:00002"; filename "i386-efi/ipxe.efi"; } class "UEFI-64-1" { match if substring(option vendor-class-identifier, 0, 20) = "PXEClient:Arch:00007"; filename "snponly.efi"; } class "UEFI-64-2" { match if substring(option vendor-class-identifier, 0, 20) = "PXEClient:Arch:00008"; filename "snponly.efi"; } class "UEFI-64-3" { match if substring(option vendor-class-identifier, 0, 20) = "PXEClient:Arch:00009"; filename "snponly.efi"; } class "Legacy" { match if substring(option vendor-class-identifier, 0, 20) = "PXEClient:Arch:00000"; filename "undionly.kkpxe"; } }
Write and then Exit vi
systemctl restart dhcp ps aux | grep dhcp
The ps command should show there is the dhcp service running. You can also test with
netstat -an | grep :67
That should return with something like
tcp4 0.0.0.0:67
-
@george1421 Same issue results. When I run your netstat command nothing is returned.
-
@joyboy11111 Well I would look at the /var/log directory either messages or syslog in there to see what the dhcp server is compaining about.
tail -30 /var/log/messages
or
tail -30 /var/log/syslog
-
-
@joyboy11111 OK the no subnet error is a bit strange but move that into the subnet 192.168.1.0 section. That is what its complaining about. It should be global at that level, but whatever.
Now did you fiddle with the configuration in /etc/sysconfig/dhcp? If not I need to see the output of these two commands
ip a s
cat /etc/sysconfig/dhcp