From: Seewer Philippe <philippe.seewer-omB+W0Dpw2o@public.gmane.org>
To: Warren Togami <wtogami-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
Cc: initramfs <initramfs-u79uwXL29TY76Z2rM5mHXA@public.gmane.org>
Subject: Re: 13 NFS syntax variations
Date: Thu, 18 Jun 2009 12:15:04 +0200 [thread overview]
Message-ID: <4A3A13A8.6050100@bfh.ch> (raw)
In-Reply-To: <4A39A9AF.6070009-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
Warren Togami wrote:
> I ask the contributors again, please consider that we should reduce
> redundant ways of configuring dracut as much as possible. Please
> consider that this code will ship in various products for the next
> decade. Is it really a good idea to confuse people by having
> documentation and examples floating around be in several different
> formats? Sure we developers can understand 13 different syntax
> variations, but this is a lot more complicated to users trying to
> understand examples they find.
>
> Here seems to be every possible dracut NFS syntax variation.
>
> Group A
> root=[<server-ip>:]<root-dir>[:<nfs-options>]
> root=nfs:[<server-ip>:]<root-dir>[:<nfs-options>]
> root=nfs4:[<server-ip>:]<root-dir>[:<nfs-options>]
>
> Group B
> netroot=[<server-ip>:]<root-dir>[:<nfs-options>]
> netroot=nfs:[<server-ip>:]<root-dir>[:<nfs-options>]
> netroot=nfs4:[<server-ip>:]<root-dir>[:<nfs-options>]
>
> Group C
> root=dhcp
> DHCP root-path=[<server-ip>:]<root-dir>[:<nfs-options>]
> DHCP root-path=nfs:[<server-ip>:]<root-dir>[:<nfs-options>]
> DHCP root-path=nfs4:[<server-ip>:]<root-dir>[:<nfs-options>]
>
> Legacy nfsroot.txt
> root=/dev/nfs nfsroot=[<server-ip>:]<root-dir>[,<nfs-options>]
>
> Legacy Variations
> root=/dev/nfs4 nfsroot=[<server-ip>:]<root-dir>[,<nfs-options>]
> root=nfs nfsroot=[<server-ip>:]<root-dir>[,<nfs-options>]
> root=nfs4 nfsroot=[<server-ip>:]<root-dir>[,<nfs-options>]
>
> DHCP Fallbacks
> http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=blob;f=Documentation/filesystems/nfsroot.txt
>
> Seewer's code seems to implement various DHCP-derived fallbacks as
> documented from this ancient method. I suppose this is OK, except:
>
> * The fallbacks should kick-in only if server-ip is blank from root= or
> DHCP root-path.
Yes. But (sorry if I seem to be slow) I don't see the difference between
my code and your statement. It does exactly that. If server-ip is missing
from root, nfsroot or dhcp root-path it does the fallback.
>> 54 If the `nfsroot' parameter is NOT given on the command line,
>> 55 the default "/tftpboot/%s" will be used.
>
> * We should do this only in the case where root=/dev/nfs, or not do it
> at all. A hard-coded "/tftpboot" root-dir override in the modern
> syntaxes makes no sense.
Good point, agreed.
>
> * We should however support the %s substitution in exactly the same way
> as the kernel. Looking at our current code though, it seems we don't.
> The docs don't do hostname.
Removing hostname isn't a problem, patch below
> What should we cut?
>
> 1) The most obvious to cut are the Legacy Variations. Why should
> dracut invent three new syntaxes and immediately declare them Legacy?
> Removing these would be the simplest.
If I understand David Dillow correctly they were meant as shortcuts.
Removing them doesn't break anything, so I agree.
>
> 2) Harald and I think we should cut Group B. The netroot= syntax is
> necessary only for remote block device protocols like iscsci and nbd
> when you want to use LVM or crypto on those block devices. For NFS it
> is only redundant.
Reduntant: Yes. But it keeps the argument scheme consistent. And dracut
is allowed to introduce new syntaxes if they make sense.
> Removing these would be a bit complex surgery because netroot= is
> tightly ingrained into the current code.
Not true, see patch below.
> 3) I personally think we should cut the "nfs:" prefixed syntaxes from
> Group A, B and C because they have no precedent and we're better off
> with fewer variations. Others have disagreed though.
See above, I like consistency. But that's just my opinion.
Regards,
Philippe
diff --git a/modules.d/95nfs/nfsroot b/modules.d/95nfs/nfsroot
index 46c2b42..5f52457 100755
--- a/modules.d/95nfs/nfsroot
+++ b/modules.d/95nfs/nfsroot
@@ -109,9 +109,7 @@ if [ "${path#*%s}" != "$path" ]; then
ip=$(ip -o -f inet addr show $netif)
ip=${ip%%/*}
ip=${ip##* }
- read node < /proc/sys/kernel/hostname
- [ "$node" = "(none)" ] && node=$ip
- path=${path%%%s*}$node${path#*%s}
+ path=${path%%%s*}$ip${path#*%s}
fi
# Look through the options and remove rw/locking options
diff --git a/modules.d/95nfs/parse-nfsroot.sh b/modules.d/95nfs/parse-nfsroot.sh
index 5413ad5..55fbc50 100755
--- a/modules.d/95nfs/parse-nfsroot.sh
+++ b/modules.d/95nfs/parse-nfsroot.sh
@@ -71,23 +71,23 @@ netroot_to_var() {
[ -z "$netroot" ] && netroot=$(getarg netroot=)
[ -z "$nfsroot" ] && nfsroot=$(getarg nfsroot=)
+# Netroot cmdline argument must be ignored, but must be used if
+# we're inside netroot to parse dhcp root-path
+if [ -n "$netroot" ] ; then
+ if [ "$netroot" = "$(getarg netroot=)" ] ; then
+ warn "Ignoring netroot argument for NFS"
+ netroot=$root
+ fi
+else
+ netroot=$root;
+fi
+
# Handle old style <server-ip>:/<path
case "$netroot" in
[0-9]*:/*|[0-9]*\.[0-9]*\.[0-9]*[!:]|/*)
netroot=nfs:$netroot;;
esac
-# Root takes precedence over netroot
-case "${root%%:*}" in
- nfs|nfs4|/dev/nfs|/dev/nfs4)
- if [ -n "$netroot" ] ; then
- warn "root takes precedence over netroot. Ignoring netroot"
-
- fi
- netroot=$root
- ;;
-esac
-
# If it's not empty or nfs we don't continue
case "${netroot%%:*}" in
''|nfs|nfs4|/dev/nfs|/dev/nfs4);;
--
To unsubscribe from this list: send the line "unsubscribe initramfs" in
the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
next prev parent reply other threads:[~2009-06-18 10:15 UTC|newest]
Thread overview: 11+ messages / expand[flat|nested] mbox.gz Atom feed top
2009-06-18 2:42 13 NFS syntax variations Warren Togami
[not found] ` <4A39A9AF.6070009-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
2009-06-18 10:15 ` Seewer Philippe [this message]
[not found] ` <4A3A13A8.6050100-omB+W0Dpw2o@public.gmane.org>
2009-06-18 17:48 ` %s substitution Warren Togami
[not found] ` <4A3A7DE0.4060801-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
2009-06-19 2:48 ` David Dillow
[not found] ` <1245379718.28792.3.camel-FqX9LgGZnHWDB2HL1qBt2PIbXMQ5te18@public.gmane.org>
2009-06-19 8:18 ` Seewer Philippe
2009-06-22 20:56 ` 13 NFS syntax variations Warren Togami
[not found] ` <4A3FEFE7.7080907-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
2009-06-22 22:29 ` David Dillow
[not found] ` <1245709757.13352.20.camel-1q1vX8mYZiGLUyTwlgNVppKKF0rrzTr+@public.gmane.org>
2009-06-23 1:24 ` Warren Togami
2009-06-23 4:15 ` Warren Togami
[not found] ` <4A4056EA.9010102-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
2009-06-23 4:34 ` David Dillow
2009-06-23 6:09 ` Harald Hoyer
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=4A3A13A8.6050100@bfh.ch \
--to=philippe.seewer-omb+w0dpw2o@public.gmane.org \
--cc=initramfs-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
--cc=wtogami-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox