On Tue, Oct 25, 2011 at 2:12 PM, clemens fischer <ino-news@spotteswoode.dnsalias.org> wrote:
What patch would that be? THE-FAVOURITE-SEARCH-ENGINE didn't pull anything useful for "patch Thomas-Bächler busybox". Can somebody point us to the relevant code, please?
Thomas is right, that is not strictly speaking needed (but see below).
A hook to mount the users /usr would presumably go right before
"if [ -x /lib/udev/udevd ]; then"
in "/lib/initcpio/init"?
This is what I had in mind: <https://github.com/teg/mkinitcpio/commit/76dacf8b9de9cc0409741840b1d8e449862fc846>. To make it work nicely, we should also add the dual logic to shutdown: <https://github.com/teg/mkinitcpio/commit/42610beb5a317d63dc76dabb72a9061a799b280b>, which will pivot back to the initramfs and unmount /usr cleanly. This is where we need some busybox work, and I guess this patch should be discussed a bit more, maybe it is not the best way to do it.
Are the symlinks in "/dev/disk/by-label/" by then? I guess not, since udevd rules are responsible for setting them up, right?
So how do the boot-loaders do this? My first thought was to have a kernel command line parameter "mnt_usr_from=/dev/disk/by-label/my-usr" or whatever and then use busybox' ``mount "$mnt_usr_from" /usr''.
I do find it annoying to have /usr with all the bulky GUI crap, audio-tools and whatnot in "/". FreeBSD has a clean separation between what's needed to bring up, build and run a basic system ( -> /usr ) and user-toys, including all the GUI and multimedia stuff ( -> /usr/local ).
I always regret linux cramming everything into /usr. Some vital programs needed at startup are in /[s]bin, some in /lib, but look at the rules in /lib/udev/rules.d/: while vboxdrv and alsa-restore could equally well run when /usr is finally up, the device-mapper rules check for dmsetup residing in usr/sbin, although they are needed early!
It is currently a mess. I agree with the people advocating putting everything in /usr (and symlink /bin, /sbin and /lib for compatibility). That obviously requires being able to mount /usr from initramfs. -t