1 |
On 2012-12-24, Dale wrote: |
2 |
|
3 |
> Nuno J. Silva wrote: |
4 |
>> On 2012-12-24, Dale wrote: |
5 |
>> |
6 |
>>> Alan McKinnon wrote: |
7 |
>>>> On Sun, 23 Dec 2012 19:03:25 +0200 |
8 |
>>>> nunojsilva@×××××××.pt (Nuno J. Silva) wrote: |
9 |
>>>> |
10 |
>>>>> On 2012-12-23, Alan McKinnon wrote: |
11 |
>>>>> |
12 |
>>>>>> On Sun, 23 Dec 2012 12:22:24 +0200 |
13 |
>>>>>> nunojsilva@×××××××.pt (Nuno J. Silva) wrote: |
14 |
>> [...] |
15 |
>>>>>>> What about just mounting /usr as soon as the system boots? |
16 |
>>>>>> Please read the thread next time. The topic under discussion is |
17 |
>>>>>> solutions to the problem of not being able to do exactly that. |
18 |
>>>>> Then I suppose you can surely explain in a nutshell why can't init |
19 |
>>>>> scripts simply do that? |
20 |
>>>>> |
21 |
>>>> It is trivially easy to create a circular loop whereby code required to |
22 |
>>>> mount /usr now resides on /usr. |
23 |
>>>> |
24 |
>>>> Which is the entire thrust of this whole thread. |
25 |
>>>> |
26 |
>>> When I reboot, I get a lot of errors about /var being empty, since it is |
27 |
>>> not mounted yet. It appears it wants /var as well as /usr early on in |
28 |
>>> the boot process. It boots regardless of the errors tho. |
29 |
>>> |
30 |
>>> For the record Nuno, I have / and /boot on regular partitions. I have |
31 |
>>> everything else, /home, /usr, /var and /usr/portage on LVM partitions. |
32 |
>>> Until recently, I NEVER needed a init thingy and had zero errors while |
33 |
>>> booting. Once this 'needing /usr on /' started a few months ago, I was |
34 |
>>> told I would need one to boot. The claim being it was broken all the |
35 |
>>> time but odd that it worked for the last 9 years with no problem, might |
36 |
>>> add, I only been using Linux for the last 9 years but it also would have |
37 |
>>> worked before that. |
38 |
>>> |
39 |
>> In your case, does it actually fail without an initrd now? It's just |
40 |
>> that I see lots of people saying "it doesn't work" or "it will silently |
41 |
>> fail", that's why I asked the question, I was looking for actual |
42 |
>> examples of how can this go wrong (other than just because the init |
43 |
>> scripts don't try to mount /usr before starting udev). |
44 |
>> |
45 |
>> Also, how does an initrd help solving the chicken-and-the-egg problem |
46 |
>> for a missing /usr? |
47 |
>> |
48 |
>> I suppose the LVM drivers create additional device files that are only |
49 |
>> created once udevd is up and running in order to process these events? |
50 |
>> (With the case of a regular partition being no problem just because |
51 |
>> linux apparently offers hardcoded files for some partitions in the first |
52 |
>> ATA controllers.) |
53 |
>> |
54 |
> |
55 |
> Well, so far I have stuck with the udev that works without a init |
56 |
> thingy. I do have a init thingy for when the udev that requires it is |
57 |
> marked stable. The devs are keeping the udev that requires /usr on / |
58 |
> masked and/or keyworded until everyone is ready. That was until eudev |
59 |
> was announced. Now they are also waiting on eudev to get stable so |
60 |
> people can switch to it. I plan to switch too. |
61 |
> |
62 |
> The problem is this from my understanding. For decades, any commands or |
63 |
> config files needed to boot Linux had to be in /bin, /sbin, /etc, and/or |
64 |
> /lib. Those directories were what was needed to boot and anything |
65 |
> needed to boot a system should be installed into one or more of those |
66 |
> directories. Then someone came up with the idea of putting things into |
67 |
> /usr instead. When they did that, it broke things. To me, this change |
68 |
> makes as much sense as putting the mount command is /usr/bin but that is |
69 |
> where some want Linux to go. I have read where some want to basically |
70 |
> move about everything to /usr but not sure how much traction that is |
71 |
> getting. |
72 |
|
73 |
From my understanding, the problem with udev was that the rules used to |
74 |
process events may require stuff from /usr. Which is OK, as I think the |
75 |
rules may even end up executing random executables. And the sole problem |
76 |
with this is that udev will not wait, it will simply fail in a silent |
77 |
way when applying rules that require stuff from /usr. |
78 |
|
79 |
Now, also, from my understanding, this was already the case for some |
80 |
time (maybe even years?). And that's why I've asked for more details. |
81 |
|
82 |
So, if the udev you use is OK with no initrd, what is in the new udev |
83 |
that actually requires the initrd? |
84 |
|
85 |
Meanwhile, I found https://bugs.gentoo.org/show_bug.cgi?id=446372, which |
86 |
would explain why, all of a sudden, there is a bigger problem. Now, I |
87 |
wonder how is this solved with an initrd, by copying udevd there? If so, |
88 |
why don't we simply install udevd under (or copy its stuff to) / instead |
89 |
of using /usr as $PREFIX? |
90 |
|
91 |
> Basically, something that has worked for decades is declared to be |
92 |
> broken all that time and if it wasn't broken, we are going to break it. |
93 |
|
94 |
... yeah... the thing here is that I'm just trying to separate the |
95 |
upstream comments on "separate /usr is broken" from the actual thing |
96 |
that breaks the boot process. So far, even the stuff from freedesktop |
97 |
I've read stating that "separate /usr is broken" do not seem to mention |
98 |
that udevd is moving to /usr. |
99 |
|
100 |
> From my understanding, if I upgrade my system to the later version of |
101 |
> udev and bypass the init system, my system will not boot. I have not |
102 |
> tested the theory but that is what people have been saying. Not only is |
103 |
> my /usr separate but it is on LVM partitons too. |
104 |
|
105 |
Your problem would be LVM (if that's an issue at all, as I said I don't |
106 |
know LVM), you'd not need udevd to mount /usr if it were a regular |
107 |
partition. |
108 |
|
109 |
-- |
110 |
Nuno Silva (aka njsg) |
111 |
http://njsg.sdf-eu.org/ |