PAM can't log in (Critical error - immediate abort)

Problem

I rebooted today to find lightdm not starting, and upon attempting to log in through tty2, I got a message saying

Critical error - immediate abort

This is an issue with pam.

Solution

I booted a live USB containing Linux Mint (any distro would work, this is called a rescue USB system, and you should always have one). I connected to the wifi, opened the terminal, and did the following:

  • lsblk
    this showed me my hard disk, named /dev/sda1
  • sudo mount /dev/sda1 /mnt
    this mounts the hard disk
  • sudo chroot /mnt
    this changes the root into my hard disk
  • cd / ; mount -t proc /proc proc/ ; mount -t sysfs /sys sys/ ; mount --rbind /dev dev/
    this is required to set some stuff up after chrooting, see arch wiki
  • pacman -Si pam pambase | grep Version
    this shows the versions of pam and pambase

At this point, I determined that the problem was with pam 1.5.3-1, and thus I had to downgrade. I saw no need to downgrade pambase 20221020-1, since it hasn’t been updated in months.

From here on, I followed the guidelines from the downgrading packages article on arch wiki:

  • sudo pacman -U /var/cache/pacman/pkg/pam-1.5.2-2-x86_64.pkg.tar.zst
    beware that the version of pam might differ in your case, but I used the above command to downgrade pam from 1.5.3-1 to 1.5.2-2.
  • sudo nano /etc/pacman.conf
    use this to add IgnorePkg = pam to the file. For the moment, we don’t want pam upgrading when we run sudo pacman -Syu.

I then exited from chroot using exit, passed shutdown now, removed the Linux Mint USB, and booted into Manjaro, and started writing this post.

I hope you found this helpful.

System info:

  • Kernel: 6.1.29-1-MANJARO
  • Branch: Testing

Did you have unattended .pacnews/.pacsaves?

pacdiff -o

Yes, several ones. I’ve never run pacdiff before. I suppose I’m still kind of a noob.

At some point you are going to need to review/merge/etc those files along with your upgrades. What and how is dependent on your system … but its usually handled as it occurs … I would suppose any ones having to do with PAM/login will need that treatment in tandem with next time you upgrade pam (not before).

https://wiki.archlinux.org/title/Pacman/Pacnew_and_Pacsave

Most people seem to use meld as their comparison tool.

So one way to run pacdiff interactively for management would be:

sudo -E DIFFPROG=meld pacdiff
1 Like