I agree with you but have no clue. DHCP server definitely works as it receives configuration at first (and also - other computers that do not boot from network receive IP addresses).
I tried to change the APPEND line in /tftpboot/pxelinux.cfg/default from:
APPEND root=/dev/nfs initrd=initrd.img-2.6.32-22-generic nfsroot=192.168.1.115:/nfsroot ip=dhcp rw
to:
APPEND root=/dev/nfs initrd=initrd.img-2.6.32-22-generic nfsroot=192.168.1.115:/nfsroot ip=none rw
and then it just did not show the IP-Config lines at all and immediately showed these lines:
/init: .: line 3: can't open /tmp/net-eth0.conf
Kernel panic- not syncing" Attempted to kill init!
I also tried to remove the IP address and colon in this APPEND line (saw an old bug on that) but it did not help either.
Thanks again
---------- Post updated at 02:38 AM ---------- Previous update was at 02:02 AM ----------
I think that the problem is that the DHCP server is not answering the later DHCP requests - I ran tcpdump for broadcasts and can clearly see that for the initial request that is sent during boot there is a reply and the later sequence of requests remain unanswered.
This is my /etc/dhcp3/dhcpd.conf file:
allow booting;
allow bootp;
subnet 192.168.1.0 netmask 255.255.255.0 {
range 192.168.1.2 192.168.1.99;
option broadcast-address 192.168.1.255;
option routers 192.168.1.1;
option domain-name-servers 192.168.1.1;
filename "/pxelinux.0";
next-server 192.168.1.115;
}
host pxe_client {
hardware ethernet 00:0C:29:79:86:C1;
fixed-address 192.168.2.3;
}
I also tried to remove the last fixed-ip part but it does not change anything.
Maybe it's something with the "allow" directives? (I took this file from the manual)
---------- Post updated at 02:47 AM ---------- Previous update was at 02:38 AM ----------
Addition:
The difference between DHCP requests is their lengths: while the initial ones (that are answered) are of length 548, the latter ones are only 271. Though, all other details (mainly MAC) are the same
---------- Post updated at 03:39 AM ---------- Previous update was at 02:47 AM ----------
Now I found how to get some more info:
First (answered) request and its response:
03:32:00.255217 IP (tos 0x0, ttl 20, id 1, offset 0, flags [none], proto UDP (17), length 576)
0.0.0.0.bootpc > 255.255.255.255.bootps: BOOTP/DHCP, Request from 00:0c:29:79:86:c1 (oui Unknown), length 548, xid 0x2a7986c1, secs 4, Flags [Broadcast] (0x8000)
Client-Ethernet-Address 00:0c:29:79:86:c1 (oui Unknown) [|bootp]
03:32:00.317616 IP (tos 0x10, ttl 128, id 0, offset 0, flags [none], proto UDP (17), length 328)
yotam-server.local.bootps > 255.255.255.255.bootpc: BOOTP/DHCP, Reply, length 300, xid 0x2a7986c1, secs 4, Flags [Broadcast] (0x8000)
Your-IP 192.168.1.3
Server-IP yotam-server.local
Client-Ethernet-Address 00:0c:29:79:86:c1 (oui Unknown) [|bootp]
Latter (unanswered) request:
03:32:19.957269 IP (tos 0x0, ttl 64, id 0, offset 0, flags [DF], proto UDP (17), length 299)
0.0.0.0.bootpc > 255.255.255.255.bootps: [no cksum] BOOTP/DHCP, Request from 00:0c:29:79:86:c1 (oui Unknown), length 271, xid 0xb4b70b15, secs 1, Flags [none] (0x0000)
Client-Ethernet-Address 00:0c:29:79:86:c1 (oui Unknown) [|bootp]
---------- Post updated at 01:39 PM ---------- Previous update was at 03:39 AM ----------
I managed to partially overcome the problem: I made a dedicated PXE configuration file for the machine (name after its MAC) and in it I changed the APPEND line to:
APPEND root=/dev/nfs initrd=initrd.img-2.6.32-22-generic nfsroot=192.168.1.115:/nfsroot ip=192.168.1.3:192.168.1.115:192.168.1.1:255.255.255.0:::none rw
Now I am able to boot the machine and load X. The problem is that it is annoying to do that and should work without this workaround...