1

Last night I broke my Arch. Now, when trying to boot, it says:

[0.595364] Failed to execute /init (error -13)
: can't log to /dev/tty5
starting pid 131, tty '': '/etc/init.d/rcS'
: can't log to /dev/tty5
can't run '/etc/init.d/rcS': No such file or directory

Please press Enter to activate this console. : can't log to /dev/tty5
: can't log to /dev/tty5
: can't log to /dev/tty5
can't open /dev/tty4: No such file or directory
can't open /dev/tty3: No such file or directory
can't open /dev/tty2: No such file or directory
: can't log to /dev/tty5
process '-/bin/sh' (pid 133) exited. Scheduling for restart.
: can't log to /dev/tty5
process '-/bin/sh' (pid 134) exited. Scheduling for restart.
: can't log to /dev/tty5
process '-/bin/sh' (pid 135) exited. Scheduling for restart.
...

The messages after Please press enter keep repeating (more or less) so rapidly that I can't read them directly, I took a picture and wrote down the messages manually.

I have tried pressing Enter a few times without success. Ctrl + Alt + Del or trying to switch to tty7, tty6 or tty1 showed no reaction.

I don't know why it complains about tty5 first.

What I did before:

I installed android-studio from the AUR (with git clone and makepkg -si).

I made updates pacman -Syu (actually I am not a 100% sure when exactly I did the updates).

Android studio tried to install the android SDK and stuff. It was claiming it had plenty of space. I don't remember the exact numbers it displayed but I was sure that the available space it displayed could not be true so I cleared roughly 35GB on my data partition (where I explicitly told it it should install the SDK) beforehand. The process finished with several error messages that it had ran out of space. It seems it has used hardly any of the 35GB I had freed for it on the data partition but instead tried to install on the system partition (which had less than 1 or 2GB available).

Android studio informed me that my machine was capable of accelerating the android emulator but I don't think it really tried to install KVM.

So I tried to free some space from the system partition by removing some AUR packages (around 3) which I had tried to install once but never really used (either because the installation failed or because I did not configure them appropriately or because they turned out to be something different than I needed.) For each of those I first ran pacman -Rs (which in most cases failed probably because I had not managed to install it in the first place) followed by a rm -rf. One of those packages was cdm (a login manager) but when I uninstalled it I was absolutely sure that I am using ly instead.

What I have tried since then:

I have read what I should have read before the update: https://www.archlinux.org/news/ but there is nothing new since the last update.

I have verified that the arch system partition is not completely full, there are still 664MB left.

I have arch-chrooted from a live stick into the system and ran pacman -Syu hoping it might tell me what is broken but it just happily installed two new packages.

I have verified that /etc/init.d/rcS does not exist (the entire directory /etc/init.d is missing). /etc/init.d does not exist on the live stick either. Therefore I am assuming it never existed in the first place. But why does it try executing a not-existing file all of sudden? I think I read somewhere that this file is usually called differently on arch but I can't find that source again.

What should be executed instead of /etc/init.d/rcS and how do I tell it to do so? Or how do I recreate it if it should exist?


EDIT: I have tried booting the system with the rescue and emergency kernel parameters but they make no difference.

init=/bin/sh as kernel parameter gives the following error message:

[   3.058545] Failed to execute /init (error -13)
/bin/sh : can't access tty; job control turned off
  • Arch uses systemd as init; substituting sysv means a) much higher maintenance overhead, and b) almost zero chance of support. So, all pain, no gain for using an ancient init that no-one cares about anymore. – jasonwryan Oct 24 '18 at 19:54
  • @jasonwryan I have not consciously changed the init process. I would have thought I was using systemd (although I was not aware of what it actually is). But thanks to you bringing up systemd I have found the links how to trouble shoot boot problems and to the systemd debugging documentation. I will try that tomorrow, maybe that gives some hints. – jakun Oct 24 '18 at 22:21
1

I have found the answer in /var/log/pacman.log. There were lots of lines saying "No space left on device" while trying to update mkinitcpio.

  1. So I booted up a live stick and arch-chrooted into the arch system on my local ssd:

    # loadkeys ...  # change keyboard layout if needed
    # mount /dev/sda1 /mnt
    # arch-chroot /mnt
    
  2. Removed the the files created during the installation of the android-studio which are not needed anymore (around 5GB).

  3. Reinstalled mkinitcpio:

    # pacman -Sy mkinitcpio
    
  4. exit, poweroff and booted into my arch system

now it's running again.

  • 1
    You did not need to reinstall mkinitcpio, but doing so ran the post_upgrade hook /usr/bin/mkinitcpio -p linux (this regenerated your initramfs). Meanwhile, the -Sy resulted in a partial upgrade. Don't do partial upgrades. – eschwartz Oct 26 '18 at 2:36

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.