Decoding failed --system halted

I was trying to ls my .ssh folder and I got

failed to read "." Input/output error

So I tried to reboot the system (ubuntu 21.04) and there was a lot of errors related to the disk. So I had switched off the PC by pressing and holding the power button. Now when trying to boot it up I get

Decoding failed
--System haled

Tried to boot the same kernel but in recovery mode, I get the same error as above after Initializing ramdisk

Booting with an older kernel gets me into recovery mode, but I don't know what to do. Is there is a way to repair my ubuntu? Thank you.

I'm attaching a screen when booting with older kernel. boot screen

Added screens from disks enter image description here

enter image description here

I also run fsck on my /dev/sda1 and /dev/sda2 enter image description here

And even more SMART data. Still looks disk is OK. enter image description here


From your description, it sounds like several critical operating system files on your disk have been damaged. This is likely due to multiple single block errors on the disk, leading me to suspect your disk is failing.

If your disk is failing, anything you do to modify the disk will make things worse. If you have no data on the disk that you care about (or you have copies of it elsewhere), then the next step would be to run fsck on the partition as described in another answer.

However, if you do care about data on the disk, before you do anything to write to the disk, you should check if it is failing and copy the data off of it carefully, most important files first, as it may fail while you are reading it.

You can boot in rescue mode, or boot from install media in "Try Ubuntu" mode. You can safely check if it is failing with

smartctl -a /dev/sda | less

/dev/sda is the most likely name of your disk, but you can get a list of all disks with lsblk -d

In the smartctrl output, you want to look at two sections. Near the top, there should be a line that looks like:

SMART overall-health self-assessment test result: PASSED

That may instead say it has failed, or it may say failure is eminent, or it may say a test has never been performed. If the last, you could run a test, but if the drive is failing, this could destroy data, so do data recovery first.

Next, look near the end of the list and see if it lists errors.

If there are no errors in the log, it is still uncertain if the drive is failing, so it is up to you if you want to do data recovery first, or go ahead and try filesystem repairs, or use smartctl -t short /dev/sda to run a short test and then check the logs again (about 2-3 minutes later).

If a short test still passes, it is still not certain the drive is not failing, but it is at least much much less likely.