Arch Linux hung itself while upgrading. The hang was during installing qt5-base. I suspect probably due to disk write issues or something. The installation was on a USB device so it might be caused by connection issues. When reset the machine and booted up it just said "Starting version aaa.b-c-arch" and it stuck there.
So had to chroot into the installation from another GNU/Linux system to troubleshoot.
This script I made earlier made it easy to chroot. Just mounted everything to /mnt, then ran the script. Even though it is written for Debian, it worked for Arch without issues. Then (re)installed linux, linux-lts and force installed qt5-base. Also ran
mkinitcpio -p linux
just to be sure.
Booted into the installation and it's now working.