On Linux, there is this powerful command “
fsck” that you can use to check and repair your filesystem. “Fsck” stands for “File System Consistency checK”.
The usage is very easy. Open a terminal and type:
This will check the sda1 partition. An important thing to note is that fsck cannot be used on a mounted partition. If you do so, there is a high chance that it will damage the filesystem. To check your Home folder that resides on another partition, say sda2, use the following commands:
umount /home fsck /dev/sda2
Note: you will need root/superuser permission to run the “fsck” command.
umount /dev/sdb1 #thumb drive sudo fsck /dev/sdb1
If you are not sure of the partition number, you can use the command
sudo fdisk -l
to list out all the partitions in the system.
There are a few parameters that you can add to “fsck” to make it more powerful.
Auto repair filesystem when errors are detected
During the filesystem check, if errors are detected, you can get “fsck” to auto repair the filesystem with the
-aflag. For example:
fsck -a /dev/sda1
Similarly, using the
-y flag can get the job done as well:
fsck -y /dev/sda1
Check all filesystems in one run
If there are several filesystems in your computer, you can get fsck to check all of them at the same time with the
What it will do is to grab all the filesystem entries from /etc/fstab and scan them for errors. You can use it together with the
-y flag to prevent it from scanning the root filesystem and fix all errors, if there is any.
fsck -AR -y
Exclude check on mounted filesystem
As mentioned earlier, fsck cannot be run on a mounted filesystem. If you are using the
-A flag to scan all the filesystems, and some of them are mounted, you might damage those filesystems. A way to overcome this is to use the
-M flag to prevent it from checking mounted system.
For example, running the command
fsck -M /dev/sdc1
returns nothing and a return code 0 (which means “no error”). No scan will be done since all the filesystems are mounted.
Specifying the filesystem type
There are times when you just want to check filesystems of a specific type, say ext2. You can make use of the
-t flag to specify the filesystem type to check. For example, the command
fsck -t ext4 /dev/sdc1
will scan the external drive only if it is in the ext4 format. Alternatively, you can combine with the
-A flag to scan all filesystems of the specific type:
fsck -A -t ext4 -y
Force fsck to run everytime during bootup
By default, Ubuntu will run fsck after every 30 bootups, but if you want the system to to do a “fsck” check everytime it boots up, all you need to do is to create an empty file call “forcefsck” and place it in the root folder. This will notify the system to do a “fsck” check everytime during boot up.
sudo touch /forcefsck
To change the checking frequency, you can make use of the command “
The following command instructs the system to run “fsck” after every 30 boot up.
tune2fs -c 30 /dev/sdaX
You can also specify number of days instead of boot up:
sudo tune2fs -i 10d /dev/sdaX Redhat Customer Portal on fsck https://access.redhat.com/documentation/en-US/Red_Hat_Enterprise_Linux/6/html/Storage_Administration_Guide/fsck-fs-specific.html