From: Seewer Philippe <philippe.seewer-omB+W0Dpw2o@public.gmane.org>
To: Bogdan Costescu
<Bogdan.Costescu-hEciA7+sKtudPOQpRHQ53DeJuz7u0hKX@public.gmane.org>
Cc: Victor Lowther
<victor.lowther-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>,
Warren Togami <wtogami-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>,
initramfs-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
Subject: Re: [RFC PATCH] Move actually mounting the root filesystem into its own series of hooks.
Date: Tue, 24 Feb 2009 16:22:09 +0100 [thread overview]
Message-ID: <49A410A1.7000505@bfh.ch> (raw)
In-Reply-To: <Pine.LNX.4.64.0902241430270.22015-qcrbbFV08EMdmw7VdWMmteH3J2bgQ+4lG9Ur7JDdleE@public.gmane.org>
Bogdan Costescu wrote:
> On Tue, 24 Feb 2009, Seewer Philippe wrote:
>
>> Though I see a small problem: Ever thought about what happens if there
>> are multiple interfaces on different networks? Only one is valid to
>> mount the root-fs...
>
> The Debian initramfs-tools documents as following here the rule from the
> kernel's nfsroot.txt which allows an ip=... kernel command line
> parameter which can contain the name of the device. Is this an option
> that would fit your purpose ?
In my case: no. I need a general purpose netboot init where I don't know which or how many interfaces there are.
> From what I know, there is no automated way to get that information
> automatically in the format described, so you'd have to maintain it,
> possibly in a PXE config file; it's possible to find out what interface
> was used for PXE booting when using PXELINUX with the 'IPAPPEND 2'
> option which will add a BOOTIF=mac_address to the kernel command line.
That is correct. Sadly this only works in a PXE environment.
> This might however not be enough: there could be a case where the
> booting (via PXE) is done on a different network (and interface) than
> the one where the root NFS is exported. I know that this sounds
> complicated, but it has been implemented in real life ;-)
Aye. Or similar: Consider a system with an interface into the standardnetwork and one into a lab net. Both yield correct dhcp results but only one is correct for a specific root-server.
To solve this, I'm currently just doing the network stuff sequentially, aborting when I've found the correct interface. The script looks more or less like this (yes, I know its ugly):
...
NETDEVICE=""
for i in $(sed -nr 's/^ *(\w+[0-9]+):.*$/\1/p' /proc/net/dev) ; do
NETDEVICE=""
for j in 1 2 3 4; do
if (udhcpc --interface=$i -n >/dev/null 2>&1) ; then
NETDEVICE=$i
break;
fi
sleep $j
done
if [ "$NETDEVICE" = "" ] ; then
continue
fi
NETDEVICE=""
if (ping -c 2 $NFSSERVER >/dev/null 2>&1) ; then
NETDEVICE=$i
fi
if [ "$NETDEVICE" = "" ] ; then
ifconfig $i down
continue
fi
NETDEVICE=""
if (mount -r $NFSOPTS $NFSSERVER:$NFSPATH /newroot >/dev/null 2>&1) ; then
NETDEVICE=$i
fi
if [ "$NETDEVICE" = "" ] ; then
ifconfig $i down
continue
fi
done
if [ "$NETDEVICE" = "" ] ; then
echo "Error: " #lots of text here
sh -i
fi
...
Hmm... looking at this, we can do this with Dracut really simple:
1. Don't start dhclient inside udev. Might even be a good idea, since IMHO udev is "only" there to load modules and set up devicefiles, not necessarily configure the devices.
2. Use a pre-mount script to up interfaces. dracut could provide a simple script for simple cases which can be overridden with site specific craziness.
3. A simple mount.nfs would be enough in /mount/
What do you think?
Regards,
Philippe
--
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-02-24 15:22 UTC|newest]
Thread overview: 29+ messages / expand[flat|nested] mbox.gz Atom feed top
2009-02-22 6:33 [RFC PATCH] Move actually mounting the root filesystem into its own series of hooks Victor Lowther
[not found] ` <3188506a1f06de54ee7874fc45261f5c2faf9e79.1235283966.git.victor.lowther-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
2009-02-23 20:07 ` Warren Togami
[not found] ` <49A301FF.2090303-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
2009-02-24 0:07 ` Victor Lowther
[not found] ` <1235434056.28090.28.camel-76q0VzFBGGr21HsLBtNmTckMGDeJXHgy@public.gmane.org>
2009-02-24 0:24 ` Warren Togami
[not found] ` <49A33E43.5010602-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
2009-02-24 0:44 ` Victor Lowther
2009-02-24 8:10 ` Seewer Philippe
[not found] ` <49A3AB75.1010805-omB+W0Dpw2o@public.gmane.org>
2009-02-24 11:39 ` Victor Lowther
[not found] ` <1235475578.28090.64.camel-76q0VzFBGGr21HsLBtNmTckMGDeJXHgy@public.gmane.org>
2009-02-24 13:21 ` Seewer Philippe
[not found] ` <49A3F43F.6000103-omB+W0Dpw2o@public.gmane.org>
2009-02-24 13:49 ` Bogdan Costescu
2009-02-24 14:19 ` Victor Lowther
[not found] ` <644FF96C-AAA8-4309-A3C8-B38EA1DE7C45-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
2009-02-24 14:37 ` Kay Sievers
2009-02-24 15:39 ` Seewer Philippe
[not found] ` <49A414CD.8070204-omB+W0Dpw2o@public.gmane.org>
2009-02-24 16:07 ` Victor Lowther
2009-02-24 18:50 ` Jeremy Katz
[not found] ` <20090224185034.GA1834-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
2009-02-25 7:25 ` Seewer Philippe
2009-02-25 12:13 ` Victor Lowther
2009-02-24 13:45 ` Bogdan Costescu
[not found] ` <Pine.LNX.4.64.0902241443320.22015-qcrbbFV08EMdmw7VdWMmteH3J2bgQ+4lG9Ur7JDdleE@public.gmane.org>
2009-02-24 13:47 ` Seewer Philippe
2009-02-24 13:40 ` Bogdan Costescu
[not found] ` <Pine.LNX.4.64.0902241430270.22015-qcrbbFV08EMdmw7VdWMmteH3J2bgQ+4lG9Ur7JDdleE@public.gmane.org>
2009-02-24 15:22 ` Seewer Philippe [this message]
2009-02-24 8:00 ` Seewer Philippe
[not found] ` <49A3A924.9000003-omB+W0Dpw2o@public.gmane.org>
2009-02-24 11:29 ` Victor Lowther
[not found] ` <1235474964.28090.53.camel-76q0VzFBGGr21HsLBtNmTckMGDeJXHgy@public.gmane.org>
2009-02-24 12:24 ` Seewer Philippe
[not found] ` <49A3E70D.9050006-omB+W0Dpw2o@public.gmane.org>
2009-02-24 14:45 ` Warren Togami
2009-02-24 12:35 ` Thiago Galesi
[not found] ` <82ecf08e0902240435v5ebbb37clea8c8148ce19fa95-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2009-02-24 15:42 ` Seewer Philippe
2009-02-24 15:45 ` Warren Togami
[not found] ` <49A41618.2020807-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
2009-02-24 15:48 ` Seewer Philippe
2009-02-24 15:50 ` Thiago Galesi
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=49A410A1.7000505@bfh.ch \
--to=philippe.seewer-omb+w0dpw2o@public.gmane.org \
--cc=Bogdan.Costescu-hEciA7+sKtudPOQpRHQ53DeJuz7u0hKX@public.gmane.org \
--cc=initramfs-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
--cc=victor.lowther-Re5JQEeQqe8AvxtiuMwx3w@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