1 |
Nuno J. Silva wrote: |
2 |
> On 2012-12-24, Dale wrote: |
3 |
> |
4 |
>> Nuno J. Silva wrote: |
5 |
>>> On 2012-12-24, Dale wrote: |
6 |
>>> |
7 |
>>>> Alan McKinnon wrote: |
8 |
>>>>> On Sun, 23 Dec 2012 19:03:25 +0200 |
9 |
>>>>> nunojsilva@×××××××.pt (Nuno J. Silva) wrote: |
10 |
>>>>> |
11 |
>>>>>> On 2012-12-23, Alan McKinnon wrote: |
12 |
>>>>>> |
13 |
>>>>>>> On Sun, 23 Dec 2012 12:22:24 +0200 |
14 |
>>>>>>> nunojsilva@×××××××.pt (Nuno J. Silva) wrote: |
15 |
>>> [...] |
16 |
>>>>>>>> What about just mounting /usr as soon as the system boots? |
17 |
>>>>>>> Please read the thread next time. The topic under discussion is |
18 |
>>>>>>> solutions to the problem of not being able to do exactly that. |
19 |
>>>>>> Then I suppose you can surely explain in a nutshell why can't init |
20 |
>>>>>> scripts simply do that? |
21 |
>>>>>> |
22 |
>>>>> It is trivially easy to create a circular loop whereby code required to |
23 |
>>>>> mount /usr now resides on /usr. |
24 |
>>>>> |
25 |
>>>>> Which is the entire thrust of this whole thread. |
26 |
>>>>> |
27 |
>>>> When I reboot, I get a lot of errors about /var being empty, since it is |
28 |
>>>> not mounted yet. It appears it wants /var as well as /usr early on in |
29 |
>>>> the boot process. It boots regardless of the errors tho. |
30 |
>>>> |
31 |
>>>> For the record Nuno, I have / and /boot on regular partitions. I have |
32 |
>>>> everything else, /home, /usr, /var and /usr/portage on LVM partitions. |
33 |
>>>> Until recently, I NEVER needed a init thingy and had zero errors while |
34 |
>>>> booting. Once this 'needing /usr on /' started a few months ago, I was |
35 |
>>>> told I would need one to boot. The claim being it was broken all the |
36 |
>>>> time but odd that it worked for the last 9 years with no problem, might |
37 |
>>>> add, I only been using Linux for the last 9 years but it also would have |
38 |
>>>> worked before that. |
39 |
>>>> |
40 |
>>> In your case, does it actually fail without an initrd now? It's just |
41 |
>>> that I see lots of people saying "it doesn't work" or "it will silently |
42 |
>>> fail", that's why I asked the question, I was looking for actual |
43 |
>>> examples of how can this go wrong (other than just because the init |
44 |
>>> scripts don't try to mount /usr before starting udev). |
45 |
>>> |
46 |
>>> Also, how does an initrd help solving the chicken-and-the-egg problem |
47 |
>>> for a missing /usr? |
48 |
>>> |
49 |
>>> I suppose the LVM drivers create additional device files that are only |
50 |
>>> created once udevd is up and running in order to process these events? |
51 |
>>> (With the case of a regular partition being no problem just because |
52 |
>>> linux apparently offers hardcoded files for some partitions in the first |
53 |
>>> ATA controllers.) |
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 |
> >From my understanding, the problem with udev was that the rules used to |
73 |
> process events may require stuff from /usr. Which is OK, as I think the |
74 |
> rules may even end up executing random executables. And the sole problem |
75 |
> with this is that udev will not wait, it will simply fail in a silent |
76 |
> way when applying rules that require stuff from /usr. |
77 |
> |
78 |
> Now, also, from my understanding, this was already the case for some |
79 |
> time (maybe even years?). And that's why I've asked for more details. |
80 |
|
81 |
That's the claim but LOTS of people disagree on that. Keep in mind, |
82 |
right now, as my system is, I can boot with /usr on a LVM partition and |
83 |
NO init thingy. If it is broken, why does it work now? Why has it |
84 |
worked from the last 9 years and worked years before that for literally |
85 |
millions of other Linux users? |
86 |
|
87 |
> |
88 |
> So, if the udev you use is OK with no initrd, what is in the new udev |
89 |
> that actually requires the initrd? |
90 |
|
91 |
From my understanding there are files in /usr that are needed for udev |
92 |
to work while booting. If udev doesn't have those files, it doesn't |
93 |
work and the system doesn't boot as it should. |
94 |
|
95 |
> |
96 |
> Meanwhile, I found https://bugs.gentoo.org/show_bug.cgi?id=446372, which |
97 |
> would explain why, all of a sudden, there is a bigger problem. Now, I |
98 |
> wonder how is this solved with an initrd, by copying udevd there? If so, |
99 |
> why don't we simply install udevd under (or copy its stuff to) / instead |
100 |
> of using /usr as $PREFIX? |
101 |
> |
102 |
>> Basically, something that has worked for decades is declared to be |
103 |
>> broken all that time and if it wasn't broken, we are going to break it. |
104 |
> ... yeah... the thing here is that I'm just trying to separate the |
105 |
> upstream comments on "separate /usr is broken" from the actual thing |
106 |
> that breaks the boot process. So far, even the stuff from freedesktop |
107 |
> I've read stating that "separate /usr is broken" do not seem to mention |
108 |
> that udevd is moving to /usr. |
109 |
|
110 |
You can't really separate the two. Upstream is causing this. You can't |
111 |
remove upstream and then understand what is going on. |
112 |
|
113 |
> |
114 |
>> From my understanding, if I upgrade my system to the later version of |
115 |
>> udev and bypass the init system, my system will not boot. I have not |
116 |
>> tested the theory but that is what people have been saying. Not only is |
117 |
>> my /usr separate but it is on LVM partitons too. |
118 |
> Your problem would be LVM (if that's an issue at all, as I said I don't |
119 |
> know LVM), you'd not need udevd to mount /usr if it were a regular |
120 |
> partition. |
121 |
> |
122 |
|
123 |
The problem isn't LVM, it is files in /usr that have historically been |
124 |
in / instead. As I said above, I have been using LVM for several years |
125 |
with no init thingy and it booted just fine. Only when upstream started |
126 |
moving things to /usr instead of / did this problem come along. Keep in |
127 |
mind, when booting Linux, everything should be in /bin, /sbin, /etc or |
128 |
/lib which should be on the / partition. All other partitions, /home, |
129 |
/usr, /var and such can be mounted separately for either space |
130 |
limitations or security reasons or even over a network. |
131 |
|
132 |
Dale |
133 |
|
134 |
:-) :-) |
135 |
|
136 |
-- |
137 |
I am only responsible for what I said ... Not for what you understood or how you interpreted my words! |