Page 1 of 1

PXE booting problems

Posted: Wed Sep 03, 2003 9:52 pm
by mayfield

I'm using a mostly stock RedHat 9.0 system as my PXE server and a site wide DHCP server which I can't alter. I'm having problems getting the rootfs image to load properly.

Everything is setup just like the default "linux-install" pxe option already configured with a RedHat 9.0 system, so I'm not sure why it fails, but it can't load the image. and fails with an error about not being able to load the initrd image. I see in my tftp logs that it is trying to download the image, and if I 'stat' the file, which is "minimyth.2" it shows the access time as being just a few seconds after it copies the kernel image "minimyth.1";

I read somewhere that some systems have problems with big initrd images and you have to provide an option somewhere telling the system how much memory you have, but this seemed more like a linux kernel argument and not a PXE argument, where I'm getting stuck.

Here's some background...

DHCP Server: D-Link Wireless Broadband router (generic DHCP server basically)

PXE Server: Stock install of Redhat 9.0 on a standard Linux workstation (p4) nothing special

Client: M10000, 512MB ram, no hard drive.

Boots the RedHat Remote Install PXE option just fine; This worked from the get go.

/etc/pxe.conf looks like this....

[root@mayfield-lx minimyth]# cat /etc/pxe.conf
# ******* PXE CONFIGURATION FILE *******
# Any Line starting with a '#" is treated as a comment line
# and ignored. However, '#' must be the first character on
# a line and no spaces before that are allowed.

# The following entry is the name of the interface on which pxe is going
# to operate. We use this interface to get the ip address automatically.


# The following entry will be queried if PXE fails to get
# the IP address automatically through 'ifconfig' like code built-in. This
# is only needed if the above interface name is not present in the system


# This entry shows the base directory of the mtftpd. All file names/paths
# will be relative to this directory. This is the same name that should
# be used as the start up argument to the mtftpd daemon.


# Set the following entry to 0 if you have a DHCP server running on this
# system.


# Set the entry below to zero if you don't want this system to act
# as a PXE proxyDHCP


# Set the entry below to zero if you don't want this system to act as a
# PXE boot server



# 0 - broadcast discovery is enabled; 1 - broadcast discovery is disabled


# 0 - multicast discovery is enabled; 1 - multicast discovery is disabled


# Multicast Discovery address. The boot server would listen on this address
# for multicast boot server packets.


# Prompt to display on the user screen
# format of this entry: timeout,<string>

#10,Press F8 to view menu ...

# This entry is set to 1 if the client should accept only responses
# from servers in this list


# the format of the discovery_list entry is as follows
# type of the server, # of entries, Ip address of each entry
# separated by commas


# In some systems, the all '1' broadcast address
# won't work as the system will fail with a network unreachable message.
# In those cases, you can use the 'route add -host eth0'
# command to add a route. Or else, you can define the host portion of the
# address alone as '1' in the following entry. This entry is not
# required if your system is set up to transmit
# broadcast packets on


# Architectures supported
# format : <arch-type>,<arch-string>


# Boot server types supported


# Menu string that will be displayed on the client screen
# after F8 is pressed.
12,MythTV Frontend (minimyth)
#0,Local Boot
#12,Remote Install Linux

# Image file name for Linux install boot server type
# format : <min layer #> <max layer #> <base file name>

# Image file name for minimyth boot server type
# format : <min layer #> <max layer #> <base file name>

# Image file name for BStrap boot server
# format : <min layer #> <max layer #> <base file name>


# List of plug-ins. The PXEClientTester is the plug-in that
# validates received packets for PXE compliance. By default, this
# plug-in is DISBALED. Remove the '#" in front of it, if you want
# packet validation to happen

# PXEClientTester





# Even if the PXEClientTester is loaded, you still need to
# turn this flag to '1' for packet validation.


# Directory where the results of the packet validation by PXEClientTester
# will be written to. Under this directory, there will be
# sub-directories with the last 8 digits of the MAc address of
# each client.


# Option DLL for BStrap


# Fill in a NT server name that will be contacted by the client
# to log back in for APitest


# Specify whether the above server is in a domain or a workgroup


# specify the name of the workgroup or domain of the server


# All debug related stuff here

# If this entry is set to 1, pxe services will write
# more debug info to the system log using syslog()


# If this entry is set to 1, pxe parser will write
# more debug info to the system log using syslog()


# If this entry is set to 1, pxe services will write
# more debug info to the file mentioned
# under the entry [DEBUG/PxeServices_Debug_FileName]


# If this entry is set to 1, pxe parser will write
# more debug info to the file mentioned
# under the entry [DEBUG/PxeParsers_Debug_FileName]






I've tried using tftp and the built in mtftp

Oh, and I'm using the stock bzImage and rootfs files provided on the website. Again nothing special here.

I can provide plenty of more info, but most of what I'm doing is, again RedHat 9.0 stock, so it seems like other RedHat 9.0 users would run into this. Maybe RedHat just mangles PXE or doesn't keep it up to date. I don't know.


updated information

Posted: Wed Sep 03, 2003 10:17 pm
by mayfield
If I replace my initrd image "minimyth.2" with the much smaller initrd image from RedHat's Remote Install, everything works fine. Except I'm obviously not running MythFrontend, and just running RedHat's install apps; But the kernel is works fine, and everything is happy. It must have a problem with the size of the initrd image minimyth is feeding it.

I'm not sure how to handle this, but I'll keep looking around for size limitation type info on the web.


Posted: Wed Sep 03, 2003 10:31 pm
by Nem

Sounds to me like you may have a problem with RAM disk size.

This is setup in pxelinux.cfg/default

Larry's current version looks like ...

DEFAULT linux-ramdisk
DISPLAY messages
label linux-ramdisk

KERNEL bzImage
# don't use quotes on the append line
APPEND initrd=rootfs ramdisk_blocksize=4096 ramdisk=31000 devfs=mount LIRC=pctv MYTHSERVER=

Check yours out and see if its the same.

See if that helps,



figured it out

Posted: Wed Sep 03, 2003 11:43 pm
by mayfield

Got it working. It was the pxelinux.0 image provided with RedHat 9.0's version of syslinux (2.00); I downloaded the latest version, put the new pxelinux.0 in place, and got a lot more verbosity first of all, and then was able to implement the "default" file successfully.

So, the lesson is, RedHat 9.0's syslinux install is out of date, and does not work.

I have a new problem now, but I'll post a new thread on it, when I learn more.


Posted: Thu Sep 04, 2003 3:49 am
by lmatter
I'm glad you figured it out.

I have never seen this kind of file before, but I'm guessing it is for a pxe server. You don't need a pxe server for minimyth to work, just the pxelinux.0 file, which tftp can serve up.

Just out of curiosity, what is the "filename" setting in your dhcpd.conf file?


Posted: Thu Sep 04, 2003 5:57 pm
by mayfield
There is no filename setting in my DHCP server, because I don't have control over the DHCP server on my site. That's why I'm using the PXE daemon.


Posted: Thu Sep 04, 2003 6:29 pm
by lmatter
I see.

Ok, you are now the pxe daemon expert :-)