kern/74352: PXEBoot problems using md as root device

Erik Norgaard norgaard at locolomo.org
Wed Nov 24 18:30:24 PST 2004


>Number:         74352
>Category:       kern
>Synopsis:       PXEBoot problems using md as root device
>Confidential:   no
>Severity:       non-critical
>Priority:       low
>Responsible:    freebsd-bugs
>State:          open
>Quarter:        
>Keywords:       
>Date-Required:
>Class:          sw-bug
>Submitter-Id:   current-users
>Arrival-Date:   Thu Nov 25 02:30:23 GMT 2004
>Closed-Date:
>Last-Modified:
>Originator:     Erik Norgaard
>Release:        FreeBSD 6.0-CURRENT i386/FreeBSD 5.3-RELEASE
>Organization:
>Environment:
System: VIA C3 Nehemiah CL1000 with dual VIA Rhine III NIC, 256MB RAM, 60GB HDD
dmesg extract (FreeBSD 4.10):
vr0: <VIA VT6105 Rhine III 10/100BaseTX> port 0xd000-0xd0ff mem 0xde000000-0xde0000ff irq 12 at device 15.0 on pci0
vr0: Ethernet address: 00:40:63:d4:89:72
miibus0: <MII bus> on vr0
vr1: <VIA VT6102 Rhine II 10/100BaseTX> port 0xe800-0xe8ff mem 0xde002000-0xde0020ff irq 11 at device 18.0 on pci0
vr1: 00:40:63:d4:89:71
miibus1 <MII bus> on vr1

OS: Tested both FreeBSD 6.0-CURRENT and 5.3-RELEASE with the same custom
configuration file (PXE).

>Description:
I am trying to set up a jumpstart server using dhcp/tftp/ftp and _not_ nfs
to automate installation. There are multiple problems, but they seem related.

In short: The kernel insists on mounting a nfs root device rather than the
provided memory disk.

This happens although:

1) I specify in loader.conf that it should use a memory file system as root
   device (the file is fetched succesfully with tftp).
2) I exclude "option nfs_root" from the kernel configuration file

It does not happen if:

1) I exclude "option nfsclient" from the kernel configuration file. 

BUT: Then the kernel fails to initialise the network device (over which the 
kernel was fetched) even though the network device driver is compiled into the
kernel.

Compiling a kernel with/-out "option BOOTP" does not change the result.

When disabling nfsclient in the kernel, the boot messages does show that the
kernel initialises the second interface vr1, but I cannot manually select it
and I cannot manually configure vr0. There is no problem initializing the
interface when NFSCLIENT is enabled. Also, I have previously had FreeBSD 4.10
installed and both interfaces up working.

The server is running FreeBSD 6.0-CURRENT revision 199506. I have built
the kernel and base system for the client from source, both RELENG_5 (nov 23) 
and -CURRENT (nov 25) as follows:

  make buildworld
  make -DLOADER_TFTP_SUPPORT=YES KERNCONF=PXE buildkernel
  make KERNCONF=PXE DESTDIR=/usr/nclt installkernel
  make DESTDIR=/usr/nclt installworld

More information: I first reported my problems on the freebsd-questions 
mailing list, less structured. All the custom files I have created are 
available with the guide I wrote along the way: www.daemonsecurity.com/pxe/


>How-To-Repeat:

I have described the full process in detail here www.daemonsecurity.com/pxe/. 
Assuming you have the environment setup for pxeboot and no nfsexports:

Update the sources, and build the kernel as described above with the following
options in the kernel configuration file:

   # Filesystems
   options         MD_ROOT         # MD is a potential root device
   options         PSEUDOFS        # Pseudo-filesystem framework

   # Memory pseudo devices
   device          mem             # Memory and kernel memory devices
   device          md              # Memory "disks" needed for root file system

Repeat with/-out:

   options         NFSCLIENT

>Fix:

	


>Release-Note:
>Audit-Trail:
>Unformatted:


More information about the freebsd-bugs mailing list