Univention Bugzilla – Bug 43937
systemd fails to start system with separate /usr/ file system
Last modified: 2017-09-26 10:47:16 CEST
systemd does not start a system with a separate /usr/ - see URL.
This leads to all kinds of services failing.
Using "systemd.debug-shell=1" to get a debug shell and then
>$ systemctl list-jobs
>JOB UNIT TYPE STATE
> 1 graphical.target start waiting
> 2 multi-user.target start waiting
> 77 systemd-update-utmp-runlevel.service start waiting
> 83 apache2.service start waiting
> 86 postfix.service start waiting
> 87 mail-transport-agent.target start waiting
> 88 univention-directory-listener.service start waiting
> 92 univention-maintenance.service start waiting
> 93 univention-management-console-web-server.service start waiting
basically network failed to start as they are on /usr/; as UCR is on /usr/ as well, this breaks lots of other services.
>105 plymouth-quit-wait.service start waiting
>108 plymouth-quit.service start waiting
>110 getty.target start waiting
>111 email@example.com start waiting
so you don't even get a getty - waits for plymouth-quit-wait.service
>201 dbus.service start waiting
>283 systemd-logind.service restart waiting
>366 ssh.service restart waiting
>448 rsyslog.service restart waiting
To me it looks like "systemd" expects the InitRamFS to already mount /usr/, but Debian's initrams doesn't.
OK: /run/systemd/generator.usr.mount is there
??: /run/systemd/generator/initrd-root-fs.target.requires/usr.mount is there, but seems to go unused.
But this happens only *after* the initramfs is done - inside the initramfs systemd is *not* used.
systemd in initramfs is not supported by Debian: <https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=717429>
There was a discussion at DebConf15 to replace initramfs-tools from Debian with "dracut", as the former is only used by Debian and is not actively maintained any more.
r77986 | Bug #43937 up: Block upgrade with separate /usr
r77985 | Bug #43937 up: Fix whitespace
QA: Either install UCS-4.1 with a separate /usr or do some bind-mount magic:
sed -i '/swap/d' /etc/fstab
DIRS=$(cd /usr && ls -d */)
echo "/usr /mnt none bind 0 0" >>/etc/fstab
echo "/dev/mapper/vg_ucs-swap_1 /usr ext4 ro 0 0" >>/etc/fstab
for d in $DIRDS;do echo "/mnt/$d /usr/$d none bind 0 0";done >>/etc/fstab
mount -o rw /usr
for d in $DIRS;do mkdir /usr/$d;done
mount -o remount,ro /usr
for d in $DIRS;do mount /usr/$d;done
As discussed, please use "init 1" instead of "telinit S". Everything else works.
(In reply to Stefan Gohmann from comment #2)
> As discussed, please use "init 1" instead of "telinit S". Everything else
Reopen: The link in preup to help.univention.com is no longer valid, probably due to the maintenance the website had. In a quick search the original thread no longer exists
r78490 | Bug #43937 up: Block upgrade with separate /usr
UCS 4.2 has been released:
If this error occurs again, please use "Clone This Bug".