Tom Gundersen wrote:
From time to time we get bug reports that are really difficult to debug, and that eventually turn out to be due to a separate /usr. Once we figure out the cause, we usually end up having to say, sorry, there is nothing we can do about that, but in the meantime we have wasted a lot of time. Therefore, we really want to get the message out there that at the moment things simply don't work as they should with a separate /usr. Then people will at least know that this is a likely cause of any weird problems they experience.
There are two ways to solve this: either merge your / and your /usr partitions, or make your initramfs mount /usr so init won't even know that /usr is separate.
We are currently working on adding support for the second approach, but we are not there yet (I have some patches against mkinitcpio to add this, but they rely on a patch by Thomas against busybox that has not yet landed upstream).
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? A hook to mount the users /usr would presumably go right before "if [ -x /lib/udev/udevd ]; then" in "/lib/initcpio/init"? 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! clemens