kern/74352: PXEBoot problems using md as root device
norgaard at locolomo.org
Wed Nov 24 18:30:24 PST 2004
>Synopsis: PXEBoot problems using md as root device
>Arrival-Date: Thu Nov 25 02:30:23 GMT 2004
>Originator: Erik Norgaard
>Release: FreeBSD 6.0-CURRENT i386/FreeBSD 5.3-RELEASE
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
miibus1 <MII bus> on vr1
OS: Tested both FreeBSD 6.0-CURRENT and 5.3-RELEASE with the same custom
configuration file (PXE).
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
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 -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/
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:
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
More information about the freebsd-bugs