When trying to upgrade the image using pacman -Syu (with the exclusion of the “linux” kernel package) after a reboot the image ends up being non bootable with the folling message :
“Root device mounted successfully, but /sbin/init does not exist.” It’s stuck in the initial image with busybox.
I followed this : https://www.archlinux.org/news/binaries-move-to-usrbin-requiring-update-intervention/ I even tried adding syslinux,mkinticpio* and linux-firmware in “IgnorePkg” line of pacman.conf.
There are currently 118 packages to upgrade, I could not find which one renders the machine non bootable.
These answers are provided by our Community. If you find them useful, show some love by clicking the heart. If you run into issues leave a comment, or add your own answer to help others.
So I found this question when running into the errors you are describing above when updating my kernel. Just to clarify the current standing of the situation regarding ArchLinux and DigitalOcean for any future viewers…
Since DigitalOcean is deprecating ArchLinux and is no longer providing updates, the latest kernel we are allowed to use as of this writing is 3.14.1-1-ARCH. As part of the base image that DigitalOcean provides, it seems that the article kamal shared with us is already applied to pacman. If it isn’t on your system, please do so!
The main culprit of this non-booting issue is that ArchLinux has an update pushed out around 2013-06-03 that changes the structure of the filesystem (the package has been updated since then, but the fix is still the same). Due to this update, paths will be changing and many updates will need to be applied before the filesystem change. At this time, the package is at version: filesystem-2014.06-1.
If you have custom applications that are not part of a package, they will need to be moved before the update. This link guide you though the steps of finding those applications and steps to move them manually: https://www.archlinux.org/news/binaries-move-to-usrbin-requiring-update-intervention/
In short, you must:
pacman -Syu --ignore filesystem,bash
2a. If you get an error regarding keyrings, see: https://wiki.archlinux.org/index.php/Pacman-key#Cannot_import_keys 2b. If you get keyring error, update your keyserver and then run:pacman-key --populate archlinux
2c. Retry updating ArchLinux with the two ignored packages.pacman -S bash
pacman -Su
This process has worked for me and hopefully it will for you too! (If any of you are trying to update to the 3.14.1-1-ARCH, you will still need to update your linux modules and headers… in order for certain applications to continue to function as well (e.g.: iptables, docker, etc). This topic is a little out-of-scope, but just an FYI for any future readers.)
See <a href=“https://www.digitalocean.com/community/articles/pacman-syu-kernel-update-solved-how-to-ignore-arch-kernel-upgrades”>https://www.digitalocean.com/community/articles/pacman-syu-kernel-update-solved-how-to-ignore-arch-kernel-upgrades</a>
Please a tutorial for repair (?)
Solved itself a few hours later with newer packages (retried -Syu)