RE:

From: Torrey Hoffman (Torrey.Hoffman@myrio.com)
Date: Wed Feb 20 2002 - 12:55:46 EST


nimeesh wrote:
 
> I'm new to linux.I'm trying network booting of linux
> system.System Conf.(intel 815 chipset ,PXE
> bios,3com905c-ethernet card)
>
> In that i'm facing problem with kernel image and it's
> file system.
>
> In that when i get the kernel image and filesystem.
> It gives me error as
> kernel panic : unable to mount root fs on 01:00
>
> Is it necessary to use NFS or is it possible without
> that? Any special specification while creating kernel
> image and filesystem?

It sounds like you have PXE working well enough to have the
BIOS download a PXE bootloader from a TFTP server, which
then downloads a kernel image. I assume you are using Peter
Anvin's "pxelinux" boot loader?
It is part of the "syslinux" package.

Anyway, you have at least two options for the root
file system. You can use an NFS root, or you can use
an initial ramdisk. I use an initial ramdisk. My server
has the standard ISC DHCP server, and Peter Anvin's TFTP server.

The DHCP server is configured in /etc/dhcpd.conf and
includes:

subnet 10.134.0.0 netmask 255.255.254.0
{
        # Not shown: options for DNS, router, domain name,
        # default lease time, range, etc.

        # this is the important bit for PXE:
        filename "pxelinux.0"
}

The TFTP server contains the files:

pxelinux.0 (the pxelinux boot loader)
bzImage (the kernel)
initrd.gz (the initial ramdisk)
pxelinux.cfg/0A86 (the pxelinux config directory and file)

The Pxelinux.cfg configuration file I use is named "0A86"
because the DHCP server assigns addresses "10.134.xxx.yyy",
(10=0x0A, 134=0x86) and looks something like this:

DEFAULT MYNETBOOT
TIMEOUT 0
LABEL MYNETBOOT
  KERNEL bzImage
  APPEND initrd=initrd.gz root=/dev/ram

There is quite a bit of information on the network about how
to create an initrd image. Check the "HOWTO" documentation
files that may have come with your Linux distribution.
Also try "man initrd".

So here's how the pxe boot works from start to finish:

1. Client boots and enters PXE BIOS.
2. PXE BIOS does DHCP, gets IP address and filename option
3. PXE BIOS uses TFTP to download pxelinux.0 and boot from it
4. pxelinux.0 bootloader determines IP address, asks TFTP
   server for config file, finds "0A86" file and downloads it
5. pxelinux.0 reads config file, uses TFTP to download
   bzImage and initrd.gz
6. pxelinux boots bzImage kernel together with initrd.gz
   ramdisk, kernel command line "root=/dev/ram" tells
   kernel to use ramdisk as root filesystem
7. Kernel boots, mounts ramdisk, and then runs /linuxrc if it
   exists, otherwise runs /sbin/init just like booting from
   any other device.
8. linuxrc or init starts up the system or does whatever you
   want them to do. Read the initrd man page for details.

Best wishes,

Torrey Hoffman
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/



This archive was generated by hypermail 2b29 : Sat Feb 23 2002 - 21:00:26 EST