File: arch-restore-boot-failure.txt Date: 13-Oct-2017 From: https://www.ostechnix.com/restore-broken-arch-linux-previous-working-state/ If you are an Arch Linux user, you probably know that the recent Linux Kernel 4.13.x branch is causing a lot of issues. Yesterday, I did a full system upgrade using command "sudo pacman -Syu", and ended up with a broken system. My Arch Linux would not boot into graphical mode, and kept displaying the error messages "dependency failed multi-user system" and "dependency failed for graphical interface". The only option I had is to login to single user mode and try to rollback the updated packages to their previous versions. First, login in single user mode. To do so, enter "e" when you see the Grub menu. Then, find the line that starts with word linux: linux /boot/vmlinuz-linux root-UUID=d474f2-e6a2-4cc3-9899-aa98af13 rw quiet At the end of the above line, type the following line: init=/bin/bash Then, press F10 or CTRL+X to continue. After couple seconds, you will be landed into single user mode. Type the following command to mount your root (/) file system in read/write mode. mount -n -o remount,rw / Now, you need to find when you did the full system upgrade. You can easily find this by looking at your pacman.log file. This file saves all pacman entries you did in the past. tail -n 200 /var/log/pacman.log | less pacman saves all downloaded packages in /var/cache/pacman/pkg/ folder. I noted down all updated packages from the screenshot and downgraded them one by one to earlier version from the cache like below. (Or use nano to make a simple script file) pacman -U /var/cache/pacman/pkg/qt5-base-5.9.1-3-x86_64.pkg.tar.xz ... for all the rest of the upgraded packages After downgrading all packages, type the following command to apply the changes and start your Arch Linux in to normal mode. exec /sbin/init ======= example: backing up a single application to a previous version ============ sudo pacman -U /var/cache/pacman/pkg/arduino-1:1.8.9-2-x86_64.pkg.tar.xz sudo pacman -U pipewire-0.3.19-1-x86_64.pkg.tar.zst pipewire-alsa-0.3.19-1-x86_64.pkg.tar.zst pipewire-pulse-0.3.19-1-x86_64.pkg.tar.zst pipewire-docs-0.3.19-1-x86_64.pkg.tar.zst // pipewire hosed up again! on Mar 18... revert to Mar 4 version sudo pacman -U /var/cache/pacman/pkg/pipewire-1:0.3.23-1-x86_64.pkg.tar.zst sudo pacman -U /var/cache/pacman/pkg/pipewire-alsa-1:0.3.23-1-x86_64.pkg.tar.zst sudo pacman -U /var/cache/pacman/pkg/pipewire-media-session-1:0.3.23-1-x86_64.pkg.tar.zst sudo pacman -U /var/cache/pacman/pkg/pipewire-pulse-1:0.3.23-1-x86_64.pkg.tar.zst sudo pacman -U /var/cache/pacman/pkg/pipewire-docs-1:0.3.23-1-x86_64.pkg.tar.zst // pacman upgrade to 6 kills a few things like the tray app, yay... need to wait for things to settle so go back to 5.2 sudo pacman -U /var/cache/pacman/pkg/pacman-5.2.2-4-x86_64.pkg.tar.zst sudo pacman -U /var/cache/pacman/pkg/pamac-aur-git-10.1.2.r3.g819a831-1-x86_64.pkg.tar sudo pacman -U /var/cache/pacman/pkg/package-query-1.11-1-x86_64.pkg.tar sudo pacman -U /var/cache/pacman/pkg/pamac-aur-tray-appindicator-git-9.5.12.r0.g96fe5ad-1-x86_64.pkg.tar // Note: to update fastest miroors for update... sudo reflector --latest 15 --sort rate --protocol https --country Canada --save /etc/pacman.d/mirrorlist