Thursday 29 May 2014

Utopic boot broken: What now?

Hello all,

this morning we found that current utopic du jour would hang at boot.
The cause has been identified, and we found a relatively simple
solution which restores booting, which is in sysv-rc 2.88dsf-41ubuntu15.

If you are in a situation where your machine does not boot any more,
the least intrusive workaround ironically is to boot with systemd:
Press "shift" during boot to get to the grub menu, press "e" on the
Ubuntu line, and append this to the "linux" line":

init=/lib/systemd/systemd

Then press Ctrl-X to boot.

Should that fail for any reason, the alternative workaround is to boot
into rescue mode, mount the root partition R/W, get a shell, and run

touch /etc/init.d/.legacy-bootordering

then reboot. After getting the fixed sysv-rc, you should remove that
file again.

For those who are interested in the details: We recently switched
Ubuntu's "old" upstart/sysvinit policy to what Debian currently uses.
Debian dropped support for the old statically numbered init.d script
links in /etc/rc*.d/ and moved to insserv and startpar long ago. We
finally did that transition as well to avoid an ever-growing delta in
Ubuntu and packages slowly becoming incompatible with the old way.

But it happens that some of our upstart jobs are "tasks" which appear
as "stopped" after they did their thing. init.d scripts which depend
on these will never start as startpar assumes that the depending
upstart job is "running". So we need to find out how to keep upstart's
"task" job semantics and make that work with startpar, but this isn't
something which we want to or can do "under the gun". Hence the above
sysv-rc upload disables startpar again for now.

Sorry for that blunder and for the inconvenience!

Martin
--
Martin Pitt | http://www.piware.de
Ubuntu Developer (www.ubuntu.com) | Debian Developer (www.debian.org)