12

I have FSCKFIX=yes in /etc/default/rcS, however, when I drove down to the site and connected a monitor to this server today, I saw this:

screenshot of the initramfs prompt

I ran fsck.ext4 -fy /dev/sda1 and rebooted and now the server is back up and running.

I understand there are situations where just blindly running fsck -fy is dangerous and can lead to data loss. However, in my case, this is a physically inaccessible server and all the data is backed up in the cloud. It is paramount that Ubuntu does any and all steps possible to try to get it online.

Is there any way to force Ubuntu to always run fsck -fy, even if there are any "UNEXPECTED INCONSISTENCY" problems?

Melebius
  • 11,750

2 Answers2

25

Let me preface this with a disclaimer that if you have regular issues with unclean filesystems, even though you shutdown your system cleanly, you have grave underlying problems and its possible fsck can do more harm than good !

AFAIK there is no mechanism for an automatic fsck only if inconsistencies are found.

However, you do an fsck at every boot with some kernel parameters.

sudo nano /etc/default/grub

find the line that says

GRUB_CMDLINE_LINUX_DEFAULT

and add

fsck.mode=force  fsck.repair=yes

to the existing things there.

yes here should do the same as your FSCKFIX=yes in /etc/default/rcS or a manual fsck -fy. Personally I think preen would be safer, but then again it would hang on startup if the disk needs some more fixes that fsck does not deem "safe " and wants user interaction.

run

sudo update-grub

to update grup and verify it with

grep fsck /boot/grub/grub.cfg 

or have a look with an editor in /boot/grub/grub.cfg

If you then reboot, the filesystem should be checked, you can verify the last time it was checked (should be your boot time) with

sudo dumpe2fs -h /dev/your/device | grep checked
dumpe2fs 1.43.5 (04-Aug-2017)
Last checked:             Sun Feb 18 08:53:31 2018
Robert Riedl
  • 4,401
0

My kernel warns that auto is an unknown parameter: Linux 6.9.3. In Kernel Archives I could not find them as boot parameters. which is in : https://www.kernel.org/doc/html/latest/

So from nixcraft I will drop this here :

fsck.mode= : One of “auto”, “force”, “skip”. Controls the mode of operation. The default is “auto”, and ensures that file system checks are done when the file system checker deems them necessary. “force” unconditionally results in full file system checks. “skip” skips any file system checks.

fsck.repair= : One of “preen”, “yes”, “no”. Controls the mode of operation. The default is ” preen”, and will automatically repair problems that can be safely fixed. “yes ” will answer yes to all questions by fsck and “no” will answer no to all questions.

above is on https://www.cyberciti.biz/faq/linux-force-fsck-on-the-next-reboot-or-boot-sequence/

Seems super definitive.