Updated libcrypto and now my machine kernel panics

I was working on my machine and needed to install node/npm. I did that but had an error involving libcrypto.so cannot open shared object file. So I decided to run pacman -S openssl-1.1 to work around the issue.

Something obviously didn’t work properly as after, every command I typed into the terminal resulted in the previous libcrypto.so error I mentioned - even something like ls, neofetch or shutdown now so I decided to reboot to try and fix the issue.

Now libcrypto is causing some kind of kernal panic:

So now I need to fix this some how. My initial thoughts was to create an EOS bootable USB and some how remove the packages on my real machine through that somehow. Or on my research, arch chroot may be of help but I’m a little out of my depth here and would really appreciate some help with this. Plus, I’ve been waiting for something like this to happen because it is always a good excuse to learn more about Arch.

I’m pretty sure this is fixable but I can always do a fresh Install if necessary.

The instructions for how to use arch-chroot are here: https://discovery.endeavouros.com/category/system-rescue/

After chrooting into the system I would run the following commands:

pacman -Syu
mkinitcpio -P

Hopefully that will resolve the issue.

1 Like

Thank you for this.

I have managed to arch-chroot into my system but if I type in anything to do with pacman I get this error:

pacman: error while loading shared libraries: libcrypto.so.1.1: cannot open shared object file: No such file or directory

That out put will happen with anything to do with pacman so, pacman on its own or something like pacman -Syu or even pacman -h. So I think something might be seriously messed up.

Is there a way to ‘refresh’ pacman? Or remove any reference to openssl-1.1 manually?

Is there perhaps a way to clear pacman’s cache manually? E.g delete its files?

Download pacman-static with:

wget https://pkgbuild.com/~morganamilo/pacman-static/x86_64/bin/pacman-static

Then call pacman-static -Syu

You may need to download it from outside the chroot and copy it into the chroot.

1 Like

Thank you for your help, with your suggestion I apparently managed to fix my machine. I used pacman- static and managed to fix pacman so that the libcrypto error disappeared and that meant I could use it you run pacman -Syu and I did a full upgrade and it all seemed to work so I rebooted.

Now when I restart it barely starts Linux and just goes into the Dell bios :thinking:. I have absolutely no idea what went wrong and am a bit stumped.

Is there a way to rollback at all?

Ahh…when was the last time you updated your system? It must be horribly out of date.

That is why you got the ssl error, because you put your system in a partially updated state when you installed ssl.

To resolve your current issue, arch-chroot back into your system and run:

grub-install --no-nvram
grub-mkconfig -o /boot/grub/grub.cfg
3 Likes

Ahh…when was the last time you updated your system? It must be horribly out of date.

Yes, you’re correct. Ironically, I didn’t want to get into a situation where an update ruined my system (I had heard that a lot about Arch and didn’t want to ruin my laptop setup) and being too cautious has got me there. Lesson learned.

When I run:

grub-install --no-nvram

I get the output:

grub-install: error: cannot find EFI directory.

I ran ls /boot/efi and its empty. I’m guessing its not meant to be.

I may have done something stupid and ran sudo mount /dev/nvme0n1p1 /boot/efi (I think thats the EFI partion, it looks like it on fdisk -l ) whilst I was in arch-root on the main system and didn’t run it from the from the outside on the ISO like I did when I mounted my linux install.

Or I just could have gotten the path wrong. What is the correct path for the EFI if everything is default?

Edit:

It does look like I have the correct files in /boot/ I can see things like efi, grub, initramfs etc.

Should I just run grub-install --no-nvram --efi-directory=/boot?

/boot/efi

It doesn’t matter if you do it from inside the chroot or outside the chroot as long as you put it in the correct place.

/boot is not your EFI partition.

No.

Can we see the output of findmnt --real

/boot/efi

Would that be on the same partition as Linux? My laptop can dual book WIndows but I never use it.

sudo fdisk -l outputs:

Device             Start        End   Sectors   Size Type
/dev/nvme0n1p1      2048    1394687   1392640   680M EFI System
/dev/nvme0n1p2   1394688    1656831    262144   128M Microsoft reserved
/dev/nvme0n1p3   1656832  719800319 718143488 342.4G Microsoft basic data
/dev/nvme0n1p4 965560320  967587839   2027520   990M Windows recovery environment
/dev/nvme0n1p5 967587840  997511167  29923328  14.3G Windows recovery environment
/dev/nvme0n1p6 997513216 1000214527   2701312   1.3G Windows recovery environment
/dev/nvme0n1p7 719800320  965560319 245760000 117.2G Linux filesystem
TARGET SOURCE         FSTYPE OPTIONS
/      /dev/nvme0n1p7 ext4   rw,relatime

That is from inside arch-chroot.

Just in case its relavant, here it is from the bootable ISO just outside of arch-chroot:

TARGET                SOURCE         FSTYPE   OPTIONS
/run/archiso/bootmnt  /dev/sda1      iso9660  ro,relatime,nojoliet,check=s,map=n,blocksize=2048,ioch
/run/archiso/airootfs /dev/loop0     squashfs ro,relatime,errors=continue
/mnt                  /dev/nvme0n1p7 ext4     rw,relatime

I’ve just ran arch-chroot /mnt and looked in /boot/efi and its empty :fearful:

You don’t have the EFI partition mounted.

From outside the chroot:

sudo mount /dev/nvme0n1p1 /mnt/boot/efi

From inside the chroot:

mount /dev/nvme0n1p1 /boot/efi

Choose one or the other.

1 Like

:man_facepalming:t6: That was it! Thank you very much for taking the time to help me out with this. I really appreciate it.

I also learnt a lot more about Linux so that’s a benefit too.

:+1:

1 Like

This topic was automatically closed 2 days after the last reply. New replies are no longer allowed.