Windows laptop unable to boot into Fog menu
-
Hi george1421,
My dhcp server is a Juniper ex3300 and under the Boot options, there is the Boot Server , I entered my fog server ip there.
there is the boot file which I entered “/bzImage”. There’s no next server option anywhere I could see. -
@froydo bzImage is wrong for the boot file. You need an iPXE kernel to load the FOG Menu. You should have either undionly.kpxe here for bios (legacy) systems or ipxe.efi for uefi systems.
That aside I would also recommend that you upgrade to the 1.3.0RCx version if you need support for uefi, gpt disks, NVMe disks, Win10 support, and/or new hardware support. FOG 1.2.0 is over 3 years old and doesn’t support the previously mentioned kit.
<edit> also don’t provide any path inforation for the boot file unless you are using an i386 uefi system. Everything you need is in the root of the /tftpboot directory</edit>
-
George is right, use FOG 1.3.0 Release Candidate. And for DHCP option 067, use
undionly.kpxe
orundionly.kkpxe
I don’t know why your TFTP service is configured to use the directory
/var/lib/tftpboot
but thats the wrong directory. FOG puts all of the boot ROMs into/tftpboot
If you’re customizing things - this doesn’t help us in helping you - tell us what you’ve customized, what you’ve done, or we are just lost. -
Many thanks for the suggestions george1421 and Wayne, I’ll upgrade to the newer Fog1.3.0RC . Didn’t realise Fog1.2.0 was that old, that probably explains why it doesn’t work with my new lenovo laptop with win10.
-
I’ve just upgraded my Fog server via the Git trunk to 1.3.0RC35 which is the latest and confirmed it is upgraded.
I then replaced in the “Boot File” box in my Juniper ex330 dhcp server the value of undionly.kpxe
Also upgraded the Fog client to the latest one in my lenovo laptop, still on the booting off the network, but
I still get the TFTP timeout and Exiting Intel Boot error messages.In the laptop I tried :
tftp –i x.x.x.x get pxelinux.0
“Connect request failed”tftpd service in the fog server is running.
I see there is now /opt/fog/log but no logs there.
I noticed there were no Fog service running . Should they be running all the time ?Anyway I tried to start a few for e.g.
./FOGMulticastManager
PHP Fatal error: Uncaught Error: Class ‘FOGCore’ not found in /opt/fog/service/lib/service_lib.php:25
Stack trace:
#0 /opt/fog/service/FOGMulticastManager/FOGMulticastManager(25): require()
#1 {main}
thrown in /opt/fog/service/lib/service_lib.php on line 25What does that mean ?
Interestingly when I was browsing for logs on the fog page I noticed my laptop with the correct MAC address in the Reports management under host listing and Inventory. I did a search in host management and found it. There’s a statement saying “Pending Registration created by FOG_CLIENT”. For “Host Bios Exit Type”, I selected SANBOOT and “Host EFI Exit Type” I chose “Refind_EFI” . Are these correct ?
Once it was on the host list I decided to try anyway to Capture and Force task to start. And immediately I see the Fog message on my laptop asking for restart which is good, so restarted, but now its on perpetual reboot because the tftp failed and exit on intel boot errors and it keeps trying again. Please help .
-
@froydo is your fog server, target system, and dhcp server on the same subnet? If so lets capture a log of the pxe booting process.
- install tcpdump on your fog server.
- Launch tcpdump with the following command
sudo tcpdump -w output.pcap port 67 or port 68 or port 69 or port 4011
- pxe boot your target computer until you get the errir
- press ctrl-c on the console to stop the tcpdump program
- you can review it with wireshark or post it here and we will review it.
We really need to see what is going down the network wire during dhcp booting.
-
@froydo I just pushed up RC 36 and this should address the error you were seeing with logs not populating (sorry was an oversight in one switch).
-
I ran the tcpdump on my fog server and waited while my laptop was PXE booting but got no results.
root@fog:/# tcpdump -w output.pcap port 67 or port 68 or port 69 or port 4011
tcpdump: listening on eth0, link-type EN10MB (Ethernet), capture size 65535 bytes
^C5 packets captured
5 packets received by filter
0 packets dropped by kernelLooks like the fog server didn’t receive anything. Any thoughts ?
In the meantime as Tom suggested I will upgrade one more time to RC36 -
ok. I upgraded to RC36 now. I tried the tcpdump test again, and this time I got an output.pcap file so I used tcpick to unravel it. Here are the results, but I modified with open inverted commas for just the description :
Starting tcpick 0.2.1 at 2016-12-13 14:00 EST
Timeout for connections is 600
tcpick: reading from output.pcap
…u…T.u… …()+236:;<BC…9…a…U…H]…4]…^…< PXEClient:Arch:00000:UNDI:002001… …
…u…
.x…T.u…“fog server ip”…undionly.kpxe… …c.Sc5…6.
..3…
.…
.
.
.
…“domain name”…
..B
undionly.kpxe. VLAN-A=9;…
…u…
..
.…T.u…pxelinux.0… …c.Sc5…6.
..3…
.…
.
…“domain name”.
…u…T.u… …c.Sc5…2.
…()+236:;<BC…9…6.
..a… U…H]…4]…^…< PXEClient:Arch:00000:UNDI:002001… …
…u…
.x…T.u…“fog server ip”…undionly.kpxe… …c.Sc5…6.
..3…
.…
.
.
.
…“domain name”…
.*.B
undionly.kpxe. VLAN-A=9;…
…T.u… …c.Sc5…=…T.u…2.
.*u.
…!+,./y…“laptop.domainname”<.MSFT 5.07
…7BXu…
.*u…T.u… …c.Sc5…=…T.u…
“laptop”<.MSFT 5.07…!+,./y…
tcpick: done reading from output.pcapAny ideas ?
-
@froydo (it would help if I could see the pcap, but 5 packets should be sufficient).
In the pcap you should see
Client: Discover->255.255.255.255
DHCP Server: Inform->255.255.255.255
Client: Request
DHCP Server: Ack
Client: tftp get -
Hi george1421,
Unfortunately no, I don’t see any of those in the pcap. The results I’ve pasted earlier is the full pcap. Does it mean the fog server isn’t talking to the dhcp server ?
I’ve verified the fog server , client and dhcp server are on the same network. -
@froydo Just for clarity your dhcp server, fog server, and pxe booting client are on the same subnet (no routers in between)?
If at all possible I’d like to review the pcap file in wireshark if you will post it here.
-
Hi george1421,
yes, that’s right , dhcp server, fog server, and pxe booting client are on the same subnet - the dhcp server is a juniper switch/router so it has the x.x.x.1 address
I found a better tool called tshark to format the pcap output. It’s pretty long , at least this is much more detailed and decriptive. Again I modified the actual ips with “” . please let me know what you find. Many thanks again.
Frame 21: 590 bytes on wire (4720 bits), 590 bytes captured (4720 bits)
Encapsulation type: Ethernet (1)
Arrival Time: Dec 13, 2016 15:07:22.886684000 EST
[Time shift for this packet: 0.000000000 seconds]
Epoch Time: 1481659642.886684000 seconds
[Time delta from previous captured frame: 3.003953000 seconds]
[Time delta from previous displayed frame: 3.003953000 seconds]
[Time since reference or first frame: 192.990330000 seconds]
Frame Number: 21
Frame Length: 590 bytes (4720 bits)
Capture Length: 590 bytes (4720 bits)
[Frame is marked: False]
[Frame is ignored: False]
[Protocols in frame: eth:ip:udp:bootp]
Ethernet II, Src: (xxxx), Dst: Broadcast (ff:ff:ff:ff:ff:ff)
Destination: Broadcast (ff:ff:ff:ff:ff:ff)
Address: Broadcast (ff:ff:ff:ff:ff:ff)
… …1. … … … … = LG bit: Locally administered address (this is NOT the factory default)
… …1 … … … … = IG bit: Group address (multicast/broadcast)
Source: xxxx
Address: xxxx
… …0. … … … … = LG bit: Globally unique address (factory default)
… …0 … … … … = IG bit: Individual address (unicast)
Type: IP (0x0800)
Internet Protocol Version 4, Src: 0.0.0.0 (0.0.0.0), Dst: 255.255.255.255 (255.255.255.255)
Version: 4
Header length: 20 bytes
Differentiated Services Field: 0x00 (DSCP 0x00: Default; ECN: 0x00: Not-ECT (Not ECN-Capable Transport))
0000 00… = Differentiated Services Codepoint: Default (0x00)
… …00 = Explicit Congestion Notification: Not-ECT (Not ECN-Capable Transport) (0x00)
Total Length: 576
Identification: 0x0001 (1)
Flags: 0x00
0… … = Reserved bit: Not set
.0… … = Don’t fragment: Not set
…0. … = More fragments: Not set
Fragment offset: 0
Time to live: 20
Protocol: UDP (17)
Header checksum: 0xa4ad [validation disabled]
[Good: False]
[Bad: False]
Source: 0.0.0.0 (0.0.0.0)
Destination: 255.255.255.255 (255.255.255.255)
[Source GeoIP: Unknown]
[Destination GeoIP: Unknown]
User Datagram Protocol, Src Port: bootpc (68), Dst Port: bootps (67)
Source port: bootpc (68)
Destination port: bootps (67)
Length: 556
Checksum: 0x8742 [validation disabled]
[Good Checksum: False]
[Bad Checksum: False]
Bootstrap Protocol
Message type: Boot Request (1)
Hardware type: Ethernet (0x01)
Hardware address length: 6
Hops: 0
Transaction ID: 0x759b8c06
Seconds elapsed: 0
Bootp flags: 0x8000 (Broadcast)
1… … … … = Broadcast flag: Broadcast
.000 0000 0000 0000 = Reserved flags: 0x0000
Client IP address: 0.0.0.0 (0.0.0.0)
Your (client) IP address: 0.0.0.0 (0.0.0.0)
Next server IP address: 0.0.0.0 (0.0.0.0)
Relay agent IP address: 0.0.0.0 (0.0.0.0)
Client MAC address: xxxx
Client hardware address padding: 00000000000000000000
Server host name not given
Boot file name not given
Magic cookie: DHCP
Option: (53) DHCP Message Type
Length: 1
DHCP: Request (3)
Option: (50) Requested IP Address
Length: 4
Requested IP Address: “dhcp ip address” (e.g. x.x.x.120)
Option: (55) Parameter Request List
Length: 36
Parameter Request List Item: (1) Subnet Mask
Parameter Request List Item: (2) Time Offset
Parameter Request List Item: (3) Router
Parameter Request List Item: (4) Time Server
Parameter Request List Item: (5) Name Server
Parameter Request List Item: (6) Domain Name Server
Parameter Request List Item: (11) Resource Location Server
Parameter Request List Item: (12) Host Name
Parameter Request List Item: (13) Boot File Size
Parameter Request List Item: (15) Domain Name
Parameter Request List Item: (16) Swap Server
Parameter Request List Item: (17) Root Path
Parameter Request List Item: (18) Extensions Path
Parameter Request List Item: (22) Maximum Datagram Reassembly Size
Parameter Request List Item: (23) Default IP Time-to-Live
Parameter Request List Item: (28) Broadcast Address
Parameter Request List Item: (40) Network Information Service Domain
Parameter Request List Item: (41) Network Information Service Servers
Parameter Request List Item: (42) Network Time Protocol Servers
Parameter Request List Item: (43) Vendor-Specific Information
Parameter Request List Item: (50) Requested IP Address
Parameter Request List Item: (51) IP Address Lease Time
Parameter Request List Item: (54) DHCP Server Identifier
Parameter Request List Item: (58) Renewal Time Value
Parameter Request List Item: (59) Rebinding Time Value
Parameter Request List Item: (60) Vendor class identifier
Parameter Request List Item: (66) TFTP Server Name
Parameter Request List Item: (67) Bootfile name
Parameter Request List Item: (128) DOCSIS full security server IP [TODO]
Parameter Request List Item: (129) PXE - undefined (vendor specific)
Parameter Request List Item: (130) PXE - undefined (vendor specific)
Parameter Request List Item: (131) PXE - undefined (vendor specific)
Parameter Request List Item: (132) PXE - undefined (vendor specific)
Parameter Request List Item: (133) PXE - undefined (vendor specific)
Parameter Request List Item: (134) PXE - undefined (vendor specific)
Parameter Request List Item: (135) PXE - undefined (vendor specific)
Option: (57) Maximum DHCP Message Size
Length: 2
Maximum DHCP Message Size: 1260
Option: (54) DHCP Server Identifier
Length: 4
DHCP Server Identifier: “dhcp server ip” ( e.g. x.x.x.1)
Option: (97) UUID/GUID-based Client Identifier
Length: 17
Client Identifier (UUID): xxxx
Option: (93) Client System Architecture
Length: 2
Client System Architecture: IA x86 PC (0)
Option: (94) Client Network Device Interface
Length: 3
Major Version: 2
Minor Version: 1
Option: (60) Vendor class identifier
Length: 32
Vendor class identifier: PXEClient:Arch:00000:UNDI:002001
Option: (255) End
Option End: 255
PaddingFrame 22: 392 bytes on wire (3136 bits), 392 bytes captured (3136 bits)
Encapsulation type: Ethernet (1)
Arrival Time: Dec 13, 2016 15:07:22.892746000 EST
[Time shift for this packet: 0.000000000 seconds]
Epoch Time: 1481659642.892746000 seconds
[Time delta from previous captured frame: 0.006062000 seconds]
[Time delta from previous displayed frame: 0.006062000 seconds]
[Time since reference or first frame: 192.996392000 seconds]
Frame Number: 22
Frame Length: 392 bytes (3136 bits)
Capture Length: 392 bytes (3136 bits)
[Frame is marked: False]
[Frame is ignored: False]
[Protocols in frame: eth:ip:udp:bootp]
Ethernet II, Src: xxxx, Dst: Broadcast (ff:ff:ff:ff:ff:ff)
Destination: Broadcast (ff:ff:ff:ff:ff:ff)
Address: Broadcast (ff:ff:ff:ff:ff:ff)
… …1. … … … … = LG bit: Locally administered address (this is NOT the factory default)
… …1 … … … … = IG bit: Group address (multicast/broadcast)
Source: xxxx
Address: xxxx
… …0. … … … … = LG bit: Globally unique address (factory default)
… …0 … … … … = IG bit: Individual address (unicast)
Type: IP (0x0800)
Internet Protocol Version 4, Src: “dhcp server ip” ( e,g, x.x.x.1), Dst: 255.255.255.255 (255.255.255.255)
Version: 4
Header length: 20 bytes
Differentiated Services Field: 0x00 (DSCP 0x00: Default; ECN: 0x00: Not-ECT (Not ECN-Capable Transport))
0000 00… = Differentiated Services Codepoint: Default (0x00)
… …00 = Explicit Congestion Notification: Not-ECT (Not ECN-Capable Transport) (0x00)
Total Length: 378
Identification: 0xd981 (55681)
Flags: 0x00
0… … = Reserved bit: Not set
.0… … = Don’t fragment: Not set
…0. … = More fragments: Not set
Fragment offset: 0
Time to live: 1
[Expert Info (Note/Sequence): “Time To Live” only 1]
[Message: “Time To Live” only 1]
[Severity level: Note]
[Group: Sequence]
Protocol: UDP (17)
Header checksum: 0xaaf1 [validation disabled]
[Good: False]
[Bad: False]
Source: “dhcp server ip” ( e.g. x.x.x.1)
Destination: 255.255.255.255 (255.255.255.255)
[Source GeoIP: Unknown]
[Destination GeoIP: Unknown]
User Datagram Protocol, Src Port: bootps (67), Dst Port: bootpc (68)
Source port: bootps (67)
Destination port: bootpc (68)
Length: 358
Checksum: 0x1eb3 [validation disabled]
[Good Checksum: False]
[Bad Checksum: False]
Bootstrap Protocol
Message type: Boot Reply (2)
Hardware type: Ethernet (0x01)
Hardware address length: 6
Hops: 0
Transaction ID: 0x759b8c06
Seconds elapsed: 0
Bootp flags: 0x8000 (Broadcast)
1… … … … = Broadcast flag: Broadcast
.000 0000 0000 0000 = Reserved flags: 0x0000
Client IP address: 0.0.0.0 (0.0.0.0)
Your (client) IP address: “dhcp ip” ( e.g. x.x.x.120)
Next server IP address: 0.0.0.0 (0.0.0.0)
Relay agent IP address: 0.0.0.0 (0.0.0.0)
Client MAC address: xxxx
Client hardware address padding: 00000000000000000000
Server host name: “fog server ip”
Boot file name: undionly.kpxe
Magic cookie: DHCP
Option: (53) DHCP Message Type
Length: 1
DHCP: ACK (5)
Option: (54) DHCP Server Identifier
Length: 4
DHCP Server Identifier: “dhcp server ip” (x.x.x.1)
Option: (51) IP Address Lease Time
Length: 4
IP Address Lease Time: (3600s) 1 hour
Option: (1) Subnet Mask
Length: 4
Subnet Mask: 255.255.255.0 (255.255.255.0)
Option: (3) Router
Length: 4
Router: “dhcp server ip” (x.x.x.1)
Option: (6) Domain Name Server
Length: 8
Domain Name Server: “dns server ip 1” (dns server ip1)
Domain Name Server: “dns server ip2” (dns server ip2)
Option: (15) Domain Name
Length: 25
Domain Name: “domainname”
Option: (28) Broadcast Address
Length: 4
Broadcast Address: x.x.x.255 (x.x.x.255)
Option: (66) TFTP Server Name
Length: 10
TFTP Server Name: “fog server ip”
Option: (67) Bootfile name
Length: 13
Bootfile name: undionly.kpxe
Option: (128) DOCSIS full security server IP [TODO]
Length: 9
Value: xxxx
Option: (255) End
Option End: 255
Padding -
@froydo Well I guess I’m not the one who can help you here. Its been a long day I don’t have the energy to try to decode the tshark output frame by frame.
If you are willing to post the complete pcap where I can review it I will.
Note: You don't have to post it to the forums, just direct message me a link.
-
@froydo Stupid as this sounds, what happens if you simply change the /var/lib/tftpboot folder location to just /tftpboot and restart tftpd-hpa service?
-
Hi Tom,
Yes I’ve changed it so now /var/lin/tftpboot is a link to /tftpboot. But when I tried restarting /etc/init.d/tftpd-hpa , nothing happens. even ./tftpd-hpa status returns nothing. And the same process is still running…
root 24631 0.0 0.0 15128 148 ? Ss 13:50 0:00 /usr/sbin/in.tftpd --listen --user root --address :69 -s /tftpboot
Hi george1421,
I will try to send you the output.pcap file . I will see if I can just drop that file directly into the chat box -
oh no worries Tom, I figured out how to restart the tftpd-hpa. But same problem of the timeout and exiting on the laptop. I even chmod 777 to /tftpboot but no difference… however I am able to ftp to my fog server from my pc. So ftp is ok just tftp is not somehow?
-
Hi george1421,
i have my pcap file ready, I wasn’t able to drop it into your chat box, it wouldn’t allow it . Do you have somewhere I can drop it off to like an ftp server or email add , etc ? Much appreciated.
-
@froydo Another, and hopefully, final change.
The line of the config file that is looking only at :69 can you try:
0.0.0.0:69
and restart tftpd-hpa.
Yes, the restart is still needed.
-
@Tom-Elliott The OP sent me the pcap file.
One remarkable thing found was there are two different dhcp server responses to the client’s discover packet. Each dhcp server is giving conflicting boot file and next server values to the client. In the pcap file there was no indication of the client asking the FOG server (assuming that is where the tcpdump command was being run) for the boot file.
@froydo on your fog server make sure your tftp process is running. The following command should show you the tftp server is listenting
netstat -an|grep 69
You should see a line like
udp 0.0.0.0:69