Autore: Ralph Ronnquist Data: To: dng Oggetto: Re: [DNG] running with separate / and /usr
On Mon, Jan 16, 2023 at 04:26:13PM +0000, Rainer Weikusat via Dng wrote: > ...
>
> The issue is specifically that libselinux is linked with most basic
> utilities and requires libpcre2 which is below /usr and that the module
> utilities are linked with libcrypto (from OpenSSL) which is also below
> /usr. The effect is that it's not possible to boot a system in the
> traditional way, ie, have the kernel mount / and then run init to start
> everything up as init cannot be executed before /usr has been mounted.
Yes; the violated "The Rule" is that /bin binaries (as well as /sbin
binaries) should have all their required libraries in /lib.
A quick scan in my /bin finds a whole pile of bad examples: chacl, cp,
dir, efibootdump, efibootmgr, elogind-inhibit, findmnt, getfacl, ip,
kmod, loginctl, ls, lsblk, lsmod, mkdir, mknod, mount, mountpoint, mv,
nbd-server, nc, nc.openbsd, netcat, netstat, ping, ping4, ping6, sed,
setfacl, ss, tar, udevadm, umount, vdir and wdctl.
By the looks of it, all of those depend on libraries that install into
/usr/lib, and as such it represents the Debian developers' ignorance
or rejection of "The Rule".
Boot trouble is avoided for me by virtue of mkinitramfs pulling all
dependencies of all used programs into the initrd, and therefore all
is available at boot.
Possibly one could do the same on a system without initrd; i.e., a
utility that copies or moves all ldd dependencies from /bin and /sbin
to /lib somewhere. Such a thing would at least detach this from the
merged-usr discussion.
> ...