Hallo,
I had an openSUSE 10.3 home server. I used this server as a netboot server and I managed to upgrade 2 diskless PCs. After the server’s upgrade to 11.2, I cannot PXEboot any PC! So, I need to test the PXE boot options etc (since everything seems OK from the PCs side). Are there any tools that I can use?
Well, the upgrade was performed and it was OK. Since I have no X server on the server, it was a little bit painful for the PHP but, other than that everything seems to be better.
Anyway, the problem (after the useful help of VirtualBox, seems to be my
“default” file.
Specifically, I followed the openSUSE way of PXE boot ().
However, the PXE boot fails with the the error “Unknown keyword in configuration file”
The default file is:
default harddisk
#DISPLAY f1.txt
#F1 f1.txt
# hard disk
label harddisk
localboot 0x80
# install
label linux
kernel linux
append initrd=initrd splash=silent showopts
#install 64bit
label 64b111
kernel openSUSE_11.1-kernel64
append initrd=openSUSE-11.1-initrd64 splash=silent showopts
# repair
label repair
kernel linux
append initrd=initrd splash=silent repair=1 showopts
# rescue
label rescue
kernel linux
append initrd=initrd splash=silent rescue=1 showopts
# mediacheck
label mediachk
kernel linux
append initrd=initrd splash=silent mediacheck=1 showopts
# bios test
label firmware
kernel linux
append initrd=biostest,initrd splash=silent install=exec:/bin/run_biostest showopts
# memory test
label memtest
kernel memtest
ui gfxboot bootlogo message
implicit 1
prompt 1
timeout 600
Yes.
initrd is copied from the ISO (mounted with -o loop on the server), as well as the kernel.
Let me explain:
I followed the SuSE install with PXE boot - openSUSE guide, with minor exceptions.
So my setup is the following:
TFTP server has 11.1 and 11.2 images.
The initrd and the kernels are copied from the respective ISOs.
The files:
message
pxelinux.0
were copied from the 11.2 i386 ISO.
The setup is the same as ir was before the upgrade. So, I cannot understand why the the NIC that used that environment to boot, now, they cannot. That’s why I setup a new VM in the VirtualBox to test it. There I see the error…
In the VirtualBox Machine, I can boot when I enter an option (eg 64b111).
But, from the rest of the PCs (including the VB Host!), I cannot.
Did you have a look in the messages? Beside that I prefer the atftp instead of the tftp package. If you used the yast control center to configure your tftp environment, I’m quite sure that it still uses tftp.
Well, as everybody suggests, I used the atftpd, since it should be better. Everything was configured with nano/vi, so, no yast. The “message” is a binary file. What puzzles me, are the following facts:
VirtualBox is receiving the DHCP and the boot data (since I can boot it when I enter the linux or the 64b111 command at the boot prompt)
All PCs (laptops and desktops) that before the server’s upgrade booted with the PXE, now they don’t!
I have no indication in the log files that the machines are requesting DHCP and boot data!
Again, let’s solve the only error that I have in my hand and I can work on. The “unknown keyword in configuration file” problem.
As PXE is nothing more than a DHCP and ATFTP teaming game: How does the dhcp server config looks like? As far as I know you should also see at least the pxelinux.0 being transfered to the client an the atftp server. Can you also specify more exactly at what point the error occurs? What steps get done (eg. DHCP IP address received?)?
Correct. As I dig further down the problem, it seems that either the PCs are not requesting DHCP information, or the DHCP so a reason is not responding. Anyway, the error occures when the pxelinux.0 file is tranfered. Because, I see it when the “default” file is read from the PXE client.
The DHCP requests are:
Feb 14 14:27:20 server dhcpd: Listening on LPF/bond0/00:80:48:2a:21:f5/192.168.0/24
Feb 14 14:27:20 server dhcpd: Sending on LPF/bond0/00:80:48:2a:21:f5/192.168.0/24
Feb 14 14:27:20 server dhcpd: Sending on Socket/fallback/fallback-net
Feb 14 14:44:39 server dhcpd: DHCPDISCOVER from 08:00:27:1a:d7:f0 via bond0
Feb 14 14:44:40 server dhcpd: DHCPOFFER on 192.168.0.100 to 08:00:27:1a:d7:f0 via bond0
Feb 14 14:44:41 server dhcpd: DHCPREQUEST for 192.168.0.100 (192.168.0.1) from 08:00:27:1a:d7:f0 via bond0
Feb 14 14:44:41 server dhcpd: DHCPACK on 192.168.0.100 to 08:00:27:1a:d7:f0 via bond0
Feb 14 14:44:41 server dhcpd: DHCPREQUEST for 192.168.0.100 (192.168.0.1) from 08:00:27:1a:d7:f0 via bond0
Feb 14 14:44:41 server dhcpd: DHCPACK on 192.168.0.100 to 08:00:27:1a:d7:f0 via bond0
The TFTP log is:
Feb 14 14:44:41 server atftpd[3462]: Serving pxelinux.0 to 192.168.0.100:2070
Feb 14 14:44:41 server atftpd[3462]: tsize option -> 13336
Feb 14 14:44:41 server atftpd[3462]: Server thread exiting
Feb 14 14:44:41 server atftpd[3462]: Serving pxelinux.0 to 192.168.0.100:2071
Feb 14 14:44:41 server atftpd[3462]: blksize option -> 1456
Feb 14 14:44:41 server atftpd[3462]: Server thread exiting
Feb 14 14:44:41 server atftpd[3462]: Serving pxelinux.cfg/01-08-00-27-1a-d7-f0 to 192.168.0.100:57089
Feb 14 14:44:41 server atftpd[3462]: File /srv/tftp/tftpboot/pxelinux.cfg/01-08-00-27-1a-d7-f0 not found
Feb 14 14:44:41 server atftpd[3462]: Server thread exiting
Feb 14 14:44:41 server atftpd[3462]: Serving pxelinux.cfg/C0A80064 to 192.168.0.100:57090
Feb 14 14:44:41 server atftpd[3462]: File /srv/tftp/tftpboot/pxelinux.cfg/C0A80064 not found
Feb 14 14:44:41 server atftpd[3462]: Server thread exiting
Feb 14 14:44:41 server atftpd[3462]: Serving pxelinux.cfg/C0A8006 to 192.168.0.100:57091
Feb 14 14:44:41 server atftpd[3462]: File /srv/tftp/tftpboot/pxelinux.cfg/C0A8006 not found
Feb 14 14:44:41 server atftpd[3462]: Server thread exiting
Feb 14 14:44:41 server atftpd[3462]: Serving pxelinux.cfg/C0A800 to 192.168.0.100:57092
Feb 14 14:44:41 server atftpd[3462]: File /srv/tftp/tftpboot/pxelinux.cfg/C0A800 not found
Feb 14 14:44:41 server atftpd[3462]: Server thread exiting
Feb 14 14:44:41 server atftpd[3462]: Serving pxelinux.cfg/C0A80 to 192.168.0.100:57093
Feb 14 14:44:41 server atftpd[3462]: File /srv/tftp/tftpboot/pxelinux.cfg/C0A80 not found
Feb 14 14:44:41 server atftpd[3462]: Server thread exiting
Feb 14 14:44:41 server atftpd[3462]: Serving pxelinux.cfg/C0A8 to 192.168.0.100:57094
Feb 14 14:44:41 server atftpd[3462]: File /srv/tftp/tftpboot/pxelinux.cfg/C0A8 not found
Feb 14 14:44:41 server atftpd[3462]: Server thread exiting
Feb 14 14:44:41 server atftpd[3462]: Serving pxelinux.cfg/C0A to 192.168.0.100:57095
Feb 14 14:44:41 server atftpd[3462]: File /srv/tftp/tftpboot/pxelinux.cfg/C0A not found
Feb 14 14:44:41 server atftpd[3462]: Server thread exiting
Feb 14 14:44:41 server atftpd[3462]: Serving pxelinux.cfg/C0 to 192.168.0.100:57096
Feb 14 14:44:41 server atftpd[3462]: File /srv/tftp/tftpboot/pxelinux.cfg/C0 not found
Feb 14 14:44:41 server atftpd[3462]: Server thread exiting
Feb 14 14:44:41 server atftpd[3462]: Serving pxelinux.cfg/C to 192.168.0.100:57097
Feb 14 14:44:41 server atftpd[3462]: File /srv/tftp/tftpboot/pxelinux.cfg/C not found
Feb 14 14:44:41 server atftpd[3462]: Server thread exiting
Feb 14 14:44:41 server atftpd[3462]: Serving pxelinux.cfg/default to 192.168.0.100:57098
Feb 14 14:44:41 server atftpd[3462]: tsize option -> 823
Feb 14 14:44:41 server atftpd[3462]: blksize option -> 1440
The DHCP configuration is:
option domain-name "home";
option domain-name-servers 192.168.0.1;
option routers 192.168.0.2;
option ntp-servers 192.168.0.1;
max-lease-time 7200;
ddns-update-style none;
ddns-updates off;
log-facility local7;
allow booting;
allow bootp;
default-lease-time 600;
class "pxe" {
match if substring (option vendor-class-identifier, 0, 9) = "PXEClient";
}
class "etherboot" {
match if substring (option vendor-class-identifier, 0, 9) = "Etherboot";
}
subnet 192.168.0.0 netmask 255.255.255.0 {
option broadcast-address 192.168.0.255;
default-lease-time 14400;
max-lease-time 172800;
pool {
range 192.168.0.100 192.168.0.105;
default-lease-time 180; # no long lease time required for booting
max-lease-time 360; # booted system does its own dhcp request
server-name server; # This happens to be the IP of this server too
next-server 192.168.0.1; # Address of the TFTP server
filename "pxelinux.0";
allow members of "pxe"; # only respond to PXE requests
allow members of "etherboot"; # allow etherboot, too
}
}
From the log files is pretty clear (to me because I know the MAC addresses) the the DHCP request arrived from the VirtualBox only. Anyway, I need to solve 2 issues. The 1st is the error message. What is wrong in the “default” file?