On Tue, Dec 25, 2012 at 9:54 AM, Dale <rdalek1...@gmail.com> wrote:
> Mark David Dumlao wrote:
>> On Tue, Dec 25, 2012 at 1:15 AM, Bruce Hill
>> <da...@happypenguincomputers.com> wrote:
>>> On Mon, Dec 24, 2012 at 11:05:25AM -0600, Dale wrote:
>>>> Bruce Hill wrote:
>>>>
>>>> <<< SNIP >>>
>>>>> No initrd...
>>>> YET!!!  ROFL
>>>>
>>>> When eudev goes stable, then we can disregard that yet.  ;-)
>>>>
>>>> Dale
>>> devfs still works wonderfully ... for principle, if no other reason, that 
>>> file
>>> server will *NEVER* have an initrd image
>> You shouldn't need to wait for eudev.
>>
>> Technically any early mount system configured and done _before_ udev
>> should do the trick. I mean, it's not like udev is even *essential*
>> for boot - that we happen to depend on it is just a matter of
>> convenience. Shouldn't be hard to write an rc script that does just
>> that for anyone that hates init thingies bad enough. Just hardcode an
>> n-second sleep and plug in the kernel detected device name. Do rc
>> scripts count as "init thingies"? :)
>
> Is that what eudev is going to do?  I follow -dev and according to the
> eudev people they are going to support a separate /usr with no init
> thingy.  So, they have a plan to do this.  From what they were posting,
> they seem pretty sure they can do this.

Contrary to all the noise in this topic, udev itself works on /.

The thing is this: udev is now being _installed to_ /usr instead of /.
This is an upstream decision.

See, there's a common bug with a lot of programs using udev. They are
also installed to /usr instead of to /. And so those programs will
_silently_ fail when /usr isn't mounted. Silent failures are deemed a
bad thing by some people, worse so than noisy failures, something to
do with the Unix philosophy of failing early and loudly.

Now, you can install udev to / if you want - by writing a custom
ebuild that does just that. And it should, in theory, work. But if you
want it to run without hitches, you _must_ make sure /usr is mounted
in time for all the rules to run. That's why an early mount script
will fix any issues with udev.

One way of getting an early mount script - the most reliable and
comprehensively tested one - is to use an "init thingy". I haven't
used one in a long time, but you generally just run a script,
mkinitrd/mkinitramfs/dracut, that generates it for you. The init
thingy is a compressed filesystem that contains just enough tools and
modules you need to test and mount your filesystems. Which,
conspicuously, was supposed to be the reason for the / being separated
from the /usr filesystem.

But besides the point - it's not the only way. You could just write a
mount script yourself, and force your mount script to run before udev
does, by editing udev's dependencies in /etc/conf.d/udev. That will
also fix any issues udev has with /usr.

The eudev team did a different thing. They forked udev and changed
some bits around that they didn't like. But the one thing they didn't
fix - which by definition they cannot fix - is the fact that programs
depending on eudev - and installed to /usr - will _still_ need /usr
mounted beforehand to function properly.

A lot of us don't have those programs, or invoke those programs late
enough in the system uptime that /usr is guaranteed to be mounted. So
we just coincidentally happen to not run into any trouble.
--
This email is:    [ ] actionable   [ ] fyi        [x] social
Response needed:  [ ] yes          [x] up to you  [ ] no
Time-sensitive:   [ ] immediate    [ ] soon       [x] none

Reply via email to