Bug 537217

Summary: Dracut cannot boot with an NFS root
Product: [Fedora] Fedora Reporter: Andrew McNabb <amcnabb>
Component: dracutAssignee: Harald Hoyer <harald>
Status: CLOSED DUPLICATE QA Contact: Fedora Extras Quality Assurance <extras-qa>
Severity: medium Docs Contact:
Priority: low    
Version: 12CC: harald, vanhoof
Target Milestone: ---   
Target Release: ---   
Hardware: All   
OS: Linux   
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of:
: 578060 (view as bug list) Environment:
Last Closed: 2009-11-26 09:29:13 UTC Type: ---
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:

Description Andrew McNabb 2009-11-12 20:33:47 UTC
I apologize if this is an RTFM problem, but I've looked enough that I think this is a bug.

I'm PXE booting systems with an NFS root filesystem.  What I would expect to be able to do is something like:

append initrd=f12-x86_64-net/initrd.img root=10.0.0.10:/potatoes/f12-x86_64-net

or

append initrd=f12-x86_64-net/initrd.img root=/dev/nfs nfsroot=10.0.0.10:/potatoes/f12-x86_64-net

For example, the wiki at http://fedoraproject.org/wiki/StatelessLinux/NFSRoot says: "You may override the NFS server name and mount (i.e. what was passed to --rootdev above) by adding root=myserver:/foo/bar to client's pxelinux configuration".

When I append "root=10.0.0.10:/potatoes/f12-x86_64-net", I get the error "dracut: FATAL: Don't know how to handle 'root=10.0.0.10:/potatoes/f12-x86_64-net'".  When I append "root=/dev/nfs nfsroot=10.0.0.10:/potatoes/f12-x86_64-net", I get the error: "No root device found".

In the past (Fedora 10 and 11), I have worked around the problem by adding 'option root-path "10.0.0.10:/potatoes/f12-x86_64-net"' to dhcpd.conf (without appending any root option).  However, in Fedora 12, I am now getting the error: "dracut: FATAL: No or empty root= argument".

Comment 1 Andrew McNabb 2009-11-12 21:06:13 UTC
By the way, the version of dracut is dracut-002-13.4.git8f397a9b.fc12.  Also, I'm more confident that I read the manual well, since https://fedoraproject.org/wiki/Dracut/Options#NFS seems to describe exactly what I'm trying.  Please let me know if there is any other information I can provide.  Thanks.

Comment 2 Harald Hoyer 2009-11-13 09:18:52 UTC
please check, that you have "dracut-network" installed

Comment 3 Andrew McNabb 2009-11-13 16:54:49 UTC
Indeed I do not.  There is no mention of "dracut-network" in the wiki documentation, and the mkinitrd-based system didn't have any such requirement.  I think there definitely need to be explanations at both of the following:

https://fedoraproject.org/wiki/Dracut
https://fedoraproject.org/wiki/Dracut/Options (in the NFS section)

Since this is new for Fedora 12, there should also be an entry about this specific issue in the release notes.

I'll try installing dracut-network, rebuilding the initramfs, and see if that works.  Thanks.

Comment 4 Andrew McNabb 2009-11-13 20:07:34 UTC
It looks like installing "dracut-network" indeed makes Dracut pass NFS roots on to the mount command.  I guess this bug is really about fixing the documentation.  Thanks again for your help.

Comment 5 Andrew McNabb 2009-11-13 21:08:59 UTC
By the way, is there any way to specify an NFS domain for idmap in the options?  I'm not currently able to mount an NFSv4 root because the client doesn't know the NFS domain and can't do mapping.  The Dracut options wiki page doesn't list any way to specify the idmap domain, and Wireshark revealed that Dracut isn't doing any DNS requests to determine the NFS domain (Solaris looks up the TXT record for _nfsv4idmapdomain to determine the domain).  Without getting the domain right, mounting the root filesystem gives the error:

rpc.idmapd: Could not find user "nobody"
mount.nfs4: mounting server:/path failed, reason given by server:
  No such file or directory

Comment 6 Harald Hoyer 2009-11-16 10:46:58 UTC
(In reply to comment #5)
> By the way, is there any way to specify an NFS domain for idmap in the options?
>  I'm not currently able to mount an NFSv4 root because the client doesn't know
> the NFS domain and can't do mapping.  The Dracut options wiki page doesn't list
> any way to specify the idmap domain, and Wireshark revealed that Dracut isn't
> doing any DNS requests to determine the NFS domain (Solaris looks up the TXT
> record for _nfsv4idmapdomain to determine the domain).  Without getting the
> domain right, mounting the root filesystem gives the error:
> 
> rpc.idmapd: Could not find user "nobody"
> mount.nfs4: mounting server:/path failed, reason given by server:
>   No such file or directory  

oh right.. this is not (yet) implemented

Comment 7 Andrew McNabb 2009-11-17 00:21:47 UTC
I don't want to clutter this bug report, which I think should just be about the documentation and release notes for "dracut-network".

Comment 10 Harald Hoyer 2009-11-26 09:29:13 UTC

*** This bug has been marked as a duplicate of bug 537969 ***