upstart and booting with init=/bin/bash
One of the oldest tricks in the sys admin’s arsenal is
booting with init=/bin/bash
. You’ll need this when
you want to reset the password for root for instance.
It used to go like this: Boot with init=/bin/bash
and
after some time you greeted with a prompt ala
root@(none):/#
Most often I then took the following steps:
mount -o rw,remount /
/etc/init.d/networking start
Now you also have networking, so you may upgrade the
system with apt-get
or whatever… You are now a
happy puppy.
upstart⌗
Now enter upstart
, the new init
-replacement from Ubuntu, while
I like the idea some things are of course changed for the worse. When
you boot a system with upstart
in init=/bin/bash
-mode, the following
happens:
root@(none):/# mount -o rw,remount /
root@(none):/# /etc/init.d/networking start
Rather than invoking init scripts through /etc/init.d, use the service(8)
utility, e.g. service networking start
Since the script you are attempting to invoke has been converted to an
Upstart job, you may also use the start(8) utility, e.g. start networking
Rather than invoking init scripts through /etc/init.d, use the service(8)
utility, e.g. service networking start
Since the script you are attempting to invoke has been converted to an
Upstart job, you may also use the start(8) utility, e.g. start networking
start: Unable to connect to Upstart: Failed to connect to socket
/com/ubuntu/upstart: Connection refused
Go figure; you don’t have a upstart running because “init” is now bash. But this leaves me with a problem.
How do you start networking in this case?
ifup eth0
or /etc/init.d/network-manager start
all complain with
start: Unable to connect to Upstart: Failed to connect to socket
/com/ubuntu/upstart: Connection refused
I have my server configured with DHCP, so as an act of final desperation I used:
dhclient eth0
and that did the trick.
If you have your interfaces specified in /etc/network/interfaces
you
may need to cut&paste it and use the go’old ifconfig
program. If you
are lame enough to use network-manager
and have configured it with a
static IP address you are on your own.
Single user mode⌗
You may be able to get away with all this crap, by starting your
system in single user mode (just a S
to your grub line). But
Debian/Ubuntu may then ask you for the root password. I never really
like this single user mode - I want the power of init=/bin/bash
.