* Michael Biebl <bi...@debian.org> [Fri Jul 30, 2010 at 03:53:03AM +0200]: > On 29.07.2010 03:01, Michael Prokop wrote: > > * Michael Biebl <bi...@debian.org> [Thu Jul 29, 2010 at 02:16:32AM +0200]:
> > Why is it installing itself to /bin/systemd? Is it supposed to be > > executed by non-root users as well? > Indeed. The idea is, that systemd is also started by regular users and helps > track their user session (replacement/extension for e.g. gnome-session) Ok. > >> So I moved /sbin/init from upstart to /sbin/upstart and made > >> /sbin/init a symlink so I could easily test both systems. Using a relative > >> symlink for /sbin/upstart does work, but an absolute symlink /sbin/init -> > >> /bin/systemd does not. > >> So I'm reopening the bug report and retitling appropriately. > > If systemd really uses /bin for a reason we could use something like > > the following in initramfs-tools' init: > > # Check init bootarg > > if [ -n "${init}" ] ; then > > # Work around absolute symlinks > > initsymlinktarget="${init}" > > if [ -d "${rootmnt}" ] && [ -h "${rootmnt}${init}" ] ; then > > case $(readlink "${rootmnt}${init}") in /*) > > initsymlinktarget=$(chroot "${rootmnt}" readlink "${init}") > > ;; > > esac > > fi > > if [ ! -x "${rootmnt}${init}" ] || [ ! -x > > "${rootmnt}${initsymlinktarget}" ] ; then > > echo "Target filesystem doesn't have ${init}." > > init= > > fi > > fi > Does not work. For one, I guess this check > if [ ! -x "${rootmnt}${init}" ] || [ ! -x "${rootmnt}${initsymlinktarget}" ] ; > should be using &&. > Even after fixing that, we run into the same problem, later again, at: > # No init on rootmount > if [ ! -x "${rootmnt}${init}" ]; then > panic "No init found. Try passing init= bootarg." > fi You have to drop the old "No init on rootmount" stuff of course, so just replace the "No init on rootmount" part with above code. regards, -mika-
signature.asc
Description: Digital signature