Lähettäjä: Rainer Weikusat Päiväys: Vastaanottaja: dng Aihe: Re: [DNG] running with separate / and /usr
o1bigtenor <o1bigtenor@???> writes: > On Tue, Jan 10, 2023 at 2:21 PM Rainer Weikusat via Dng
> <dng@???> wrote:
[...]
>> Practical Problem
>> -----------------
>> Devuan 4 cannot boot, at least not without an initrd, with / and /usr
>> being separate because a large number of programs in / are linked with
>> libselinux which, in turn, needs libpcre which is on /usr and not on /.
>> Two programs (I remember kmod) also need libcrypto (OpenSSL) which is
>> also not on /. I worked around this by booting a live system on a USB
>> stick and copying the libraries manually.
>>
>> Is this still a supported configuration, ie, should this be regarded as
>> a bug? Even if not, is their interest for making it again possible? I
>> did a POC for init in order to make it load libselinux at runtime and
>> fail gracefully if it isn't available (or not load it at all if running
>> on a kernel without SELinux support [such as the 6.1.2 one I'm
>> running]). A real solution would probably need to be a library
>> installing itself as libselinux (and the real libselinux library under a
>> different name) which would forward function calls to the real library
>> if it can be loaded (and if the kernel supports SELinux).
>>
>> I'm willing to put work into this although this would only proceed
>> slowly as this would amount to just a few hours each Sunday.
>>
> Greetings
>
> My instance of Devuan Deadalus is running on mirrored major
> partitions.
> There are some 8 partitions in total (each one on a raid 1 except the
> EFI partition)
>
> /
> /tmp
> /usr
> /home
> /boot
> /var
> /usr/local
> (in inverse order to the list in blkid)
> (There is also an EFI partition so there are actually 16 partitions
> and that's not counting those that make up my storage raid array.)
I'm using a somewhat simpler setup (/, /usr, a sysdata partition for
/var and /tmp and one for /home) and since the disk failure I mentioned
also an all RAID1-one. I'm additionally running a kernel with all
critical drivers compiled in[*] and I'm not using an initrd. This means
the kernel mounts / and then tries to start init. Which fails because
init is linked with libselinux which can't be loaded because it's itself
linked with libpcre which is on /usr and hence, not available at this
time.
[*] I could still boot the crashed system with init=/bin/sh. But then I
couldn't use the keyboard because that would have required loading the
keyboard driver module first ... grrrr .... got me into an "Ok, I
repent! I knew I shouldn't have started to use this newfangled stuff
deep down in my heart!" mental state :-)