On Tue, Aug 02, 2011 at 05:40:06PM +0200, Thomas Bächler wrote:
Am 02.08.2011 17:10, schrieb Tom Gundersen:
This website created by the systemd folks sums it up nicely (just replace "systemd" with "initscripts" everywhere): <http://www.freedesktop.org/wiki/Software/systemd/separate-usr-is-broken>.
Heh, doesn't the "separate-usr-is-broken" in the URL say it all? (Didn't read it yet, will have to soon.)
The solution they propose, and which I agree with, is to mount /usr from the initrd just as we mount / (an alternative solution is to just declare separate /usr as not supported, but I guess that would not make us popular).
Before working up a patch, I wanted to hear if there are any objections to this approach, and in particular that Thomas agrees that it is the right way to go.
The purpose of the initrd is to do as few things as possible to get to the "real" system. If we can support a system that gets to the point of mounting /usr without needing things from /usr, we do it. If we can't support it, there is no point in ugly workarounds - if it's broken by design, don't do it.
I won't accept any patch that modifies the mkinitcpio core to support this. I might consider a patch that does this in a hook and thus keeps things modular, if you think it is necessary. For example, write a hook that adds a new mount handler:
run_hook() { mount_handler=usr_mount_handler }
usr_mount_handler() { # mount / default_mount_handler "$@" # mount /usr [ add code here to mount /usr ] }
I like this a lot more than any of my other ideas... d