Infinite Boot Loop after Upgrade
I began to use Arch Linux since March, 2016 when my Ubuntu crashed again. Although, Ubuntu is one of the standard working environment for many open source projects, it sometimes does crash unpredictably if you did some normal and right operations as you think. Most importantly, you are hesitate to upgrade system version or not and may do a lot to try new software or library features. After investigation, I decided to use Arch Linux, a full rolling-release Linux distribution. I had a painful installation procedure, but it’s worthy and everything is under my control. I had a stable OS which works almost perfectly for 13 months with rolling updates. However, it crashed after a large upgrade in few days ago. My laptop cannot access to login page and tty terminal. It’s a infinite boot loop.
Figure It Out!
Since I cannot access to login page and tty terminal, I made a Arch Linux bootable USB stick. According to the Arch Linux wiki, I change the root so that I can access my original OS environment. Please notice the difference between
arch-chroot. Usually, there is no built-in
arch-chroot command, you should use the guide for
Check the pacman log at
/etc/log/pacman.log and make some assumptions. I tried to downgrade kernel and the display manager GDM. But it didn’t work at all. Then I tried
gnome-session etc. I got the login prompt but the GUI environment crashed. I finally the problems came from gnome. Actually, you may need some experience to do so. But now, I found checking logs like boot log and Xorg log is a more reasonable approach, i.e. use
journaltcl -b or
Yeah, it’s gnome that crash Arch Linux!
I tried to manually downgrade gnome related packages which can be found by
pacman -Qg gnome and
pacman -Qg gnome-extra. It’s time consuming, but doesn’t work at end. Because it’s too hard to resolve the package dependency issues. Finally, I taken the brute force method: rollback.
Here, I used the Arch Linux rollback machine maintained by TUNA(Tsinghua University Nerds Association). It means to edit your
## Worldwide #Server = http://mirror.rackspace.com/archlinux/$repo/os/$arch ## Score: 2.2, China #Server = http://mirrors.ustc.edu.cn/archlinux/$repo/os/$arch ## Tsinghua #Server = https://mirrors.tuna.tsinghua.edu.cn/archlinux/$repo/os/$arch ## Tsinghua Rollback Machine Server = https://arch-archive.tuna.tsinghua.edu.cn/2017/04-17/$repo/os/$arch
2017/04-17 is the date that you want to rollback to. You should decide it according to your requirement and the rollback machine archive directory. Then
pacman -Syu, it rollback!
Make Your Gnome Stable
The most simple way is to ignore its newer updates and keep at a version that works perfect for you. Through my test, your
/etc/pacman.conf should contains following entries to ignore them.
IgnorePkg = gjs gnome-autoar gnome-bluetooth gnome-desktop gnome-initial-setup gnome-online-accounts gsettings-desktop-schemas gtk-update-icon-cache gtksourceview3 libgdm libnautilus-extension libnm libnm-glib libsoup IgnoreGroup = gnome gnome-extra
This is what I do to fix the infinite boot loop. Hope it help you.