12

I'm trying to install arch linux. When I boot up, it gives me the message found below.

ERROR: Root device mounted successfully, but /sbin/init does not exist.
Bailing out, you are on your own now. Good luck.

sh: can't access tty: job control turned off
[rootfs /]# _
13
  • 1
    init should be located in /usr/bin/init and not /sbin/init
    – Jeight
    Commented Oct 19, 2013 at 5:07
  • 2
    Did you use an old installation image and not -Syu?
    – jasonwryan
    Commented Oct 19, 2013 at 5:11
  • 4
    @Jeight /sbin and /bin are symlinks to /usr/bin on Arch Linux.
    – strugee
    Commented Oct 19, 2013 at 5:19
  • 1
    @strugee The question now is are the OP's Arch Linux /sbin and /bin using the sym links that it should have by default. That would cause the issue.
    – Jeight
    Commented Oct 19, 2013 at 5:23
  • 4
    @ChanceLeachman I really would recommend against using things like this. if you don't want to configure Arch the way the wiki recommends, or don't understand what you're doing, then Arch is probably not the right distribution for you (maybe try Mint or Debian). also, your link 404s. @Jeight FWIW, I suspect that he can just install the systemd package. maybe his script wasn't updated for the transition to systemd as init.
    – strugee
    Commented Oct 19, 2013 at 5:32

6 Answers 6

9

You should need systemd-sysvcompat if you want to use init. The /sbin/init is a simple symbolic link to /lib/systemd/systemd (see PKGBUILD) provided by systemd-sysvcompat.

So if you want to boot your system you should add into grub kernel line (if you use grub):

init=/lib/systemd/systemd

If you don't want to use systemd-sysvcompat you should add the line above into your GRUB's configuration

3

I encountered this problem and solved it by re-installing arch base system and paying closer attention to the instructions given. Specifically under Syslinux - Installation on BIOS.

I chose to install syslinux and read the instructions too quickly and forgot to

Configure syslinux.cfg to point to the right root partition. This step is vital.

My root partition which was on /dev/sda2 in my case, and as you can see below it is not pointing to it.

...
LABEL arch
    ...
    APPEND root=/dev/sda3 rw
    ...

It pointed to my home partition, /dev/sda3

2

Download the very latest install ISO (2013.10.1 currently) from the Arch Download page. Put that ISO on a CD or whatever and re-install.

Either you used an elderly installation ISO or something went wrong during your install. On my relatively up-to-date Arch server, /sbin/init is a symbolic link to /lib/systemd/systemd.

You could check that /sbin/init exists, and that either it's a real file or a symbolic link. If the latter, check to see if what the symbolic link says exists, is executable, is a file, etc etc. My guess is something in that process will show where the install went bad, but that you should probably re-do the install from a fresh download of the ISO image.

1
  • 2
    Arch does use init, in the sense that the kernel wants a program called /sbin/init (unless the bootloader passes a different value via the init option), and that the program with PID 1 is conventionally called init. It doesn't matter to the kernel whether this is the init from Systemd or from SysVinit or from Upstart or from BusyBox. Commented Oct 19, 2013 at 22:34
2

I Know this post is old, but I have just encountered this problem, and I didn't find a good answer elsewhere, so here is my answer, hoping that this helps someone in the future.

In my case, when I was at the stage

ERROR: Root device mounted successfully, but /sbin/init does not exist.
Bailing out, you are on your own now. Good luck.

sh: can't access tty: job control turned off
[rootfs /]# _

There actually was a /sbin/init, which was nothing but a symbolic link to busybox!

Here is what happened. In Archlinux, the directory /sbin is a symbolic link to /usr/sbin. And, as say other people, /usr/sbin/init symlinks to /lib/systemd/systemd. But, in my case, I found out that the /usr directory was not mounted.

You basically need to mount the partition /usr as explained on this ArchWiki page. You may also want to verify /etc/fstab, especially if you use one generated by genfstab.

1
0

This can happen if you used the wrong partition for root. Look up your loader entry (in /boot/loader/entries/arch.conf if you are using systemd-boot on Arch Linux like me), and ensure the 'root' UUID is your root partition.

0

I just had this same issue when installing Arch Linux with full-disk encryption, using systemd-boot.

I ended up missing 'base' when using pacstrap. I went back and added it with the archiso and it fixed my new install.

After adding 'base' with pacstrap, run mkinitcpio -p linux in arch-chroot.

0

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .