Bug 691239

Summary: Net booting with NFS root fails because of kernel version mismatch in modules.dep path
Product: [Fedora] Fedora Reporter: Mikkel Lauritsen <renard>
Component: dracutAssignee: Harald Hoyer <harald>
Status: CLOSED NOTABUG QA Contact: Fedora Extras Quality Assurance <extras-qa>
Severity: unspecified Docs Contact:
Priority: unspecified    
Version: 14CC: harald, jonathan
Target Milestone: ---   
Target Release: ---   
Hardware: i686   
OS: Linux   
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2011-05-04 12:04:44 UTC Type: ---
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:

Description Mikkel Lauritsen 2011-03-27 19:44:06 UTC
(not sure whether modutils is the proper component; apologies if another component is more appropriate)

I'm trying to boot a Fedora 14 machine from the network, using NFS root. The server has uname -a

Linux server 2.6.35.11-83.fc14.i686.PAE #1 SMP Mon Feb 7 06:57:55 UTC 2011 i686 i686 i386 GNU/Linux

I've built an initrd by doing

dracut -m "nfs network base" initramfs-$(uname -r).img $(uname -r)

and copied the initrd and kernel to the tftp server dir. The PXELinux config is

KERNEL vmlinuz-2.6.35.11-83.fc14.i686.PAE
APPEND initrd=initramfs-2.6.35.11-83.fc14.i686.PAE.img root=nfs4:192.168.1.2:/exports/nfsroot rw

When netbooting the machine properly reads the kernel and initrd, but after a short while it then hangs after outputting

[    1.676626] Write protecting the kernel read-only data: 1840k
FATAL: Could not load /lib/modules/2.6.35.11-83.fc14.i686/modules.dep: No such file or directory
[    1.796195] dracut: FATAL: nfsroot type nfs4 requested but kernel/initrd does not support nfs
[    1.796510] dracut: Refusing to continue

followed by a bit of other stuff.

This looks a lot like

modprobe nfs
incol2 /proc/filesystems $fstype || die "nfsroot type $fstype requested but kernel/initrd does not support nfs"

from /usr/share/dracut/modules.d/95nfs/parse-nfsroot.sh .

Using lsinitrd I've verified that the initrd contains lib/modules/2.6.35.11-83.fc14.i686.PAE/modules.dep , which makes the message from dracut correct, but why would modprobe try to use the path without .PAE in it? It's the same kernel as the one used to build the initrd, and doing that uname -r properly included the .PAE part.

Comment 1 Harald Hoyer 2011-03-28 19:04:03 UTC
booted with the wrong kernel?

Comment 2 Mikkel Lauritsen 2011-03-28 20:13:50 UTC
Dammit, you may be right; sorry for wasting your time.

The kernel that I'm booting was installed by doing a yum groupinstall base --installroot, and I assumed that it would use the same kernel arch (i686.PAE) as the one installed on the host machine. It apparently didn't.