About Linux FSCK ( FILE SYSTEM CONSISTENCY CHECK )

The FSCK is a system utility. It is a tool that is used to check the consistency of a file system in the Unix-like operating systems. It is a tool that will check and repair inconsistencies in Unix-like systems including Linux. The tool can be used with the help of ‘fsck’ command in Linux. This is equivalent to the ‘CHKDSK’ in the Microsoft Windows. In this article, we are going to see the fsck tool in detail.

File Inconsistency

We’ve already seen that the fsck will repair the inconsistencies.  File inconsistency is a state that represents structural inconsistency within a certain group of a file. These are actually exceptions. The file inconsistencies can be usually caused by the following situations.

1) An unexpected system shutdown.

2) Clearing group locks improperly.

3) Overriding the built-in file protection mechanisms.

4) System debugger when used incorrectly.

These are the common causes of the file inconsistency. Let’s see each one in detail.

 

Unexpected System Shutdown

There can be cases that the computer will be shut down unexpectedly. Suppose there was a system crash or unexpected power outage and your system has been shut down unexpectedly, then file inconsistency may occur.

 

Clearing group locks improperly

Suppose there are two process that modifying internal structures simultaneously and each process is unaware of other. Such a situation will bring  file inconsistency. If you clear the group locks indiscriminately, this situation can be occurr.

 

Overriding the built-in file protection mechanisms

Overriding built in file protections when using delete-file is problematic. Normally the system traps a condition of attempting to delete a file that is already opened by another process but for compatibility with older releases, you have option of overriding this warning condition.

 

System Debugger

Incorrect use of the system debugger could also cause file inconsistency. The system debugger gives the user total control of all the virtual file space and internal control tables used by the system. You should be careful when examining or changing spaces containing critical structures. These are the common reasons of the file system inconsistency. However, inconsistencies can also occurr as a result of defective hardware or problems with the disk. Also, a damaged block on a disk drive and malfunctioning a disk controller can be the cause.

 

FSCK – Use

The fsck can be run in two ways. Automatically and manually. The automatic run is happening at the time of booting. A system administrator can run the utility manually. The operations by this command will work on the data structures stored on the disk directly. This data is internal and specific to the particular file system in use. There are various fsck. The exact behavior of various implementation can vary, but there is a common order of internal operations and a command line interface. There are both interactive and non-interactive fixing of errors. In interactive mode, the user can choose how to fix an error, but in non-interactive mode, the system will make a decision on the operations to do. A system administrator can also run fsck manually if they believe there is a problem with the file system. The file system is normally checked while unmounted, mounted read-only, or with the system in a special maintenance mode. Modern journaling file systems are designed so that tools such as fsck do not need to be run after an unclean shutdown (i.e. crash). The UFS2 Filesystem in FreeBSD has a background fsck, so it is usually not necessary to wait for fsck to finish before accessing the disk.

 

FSCK Uses

Now we are going to see some common usages of fsck command.

# fsck /usr

This will check file-system configured to be mounted on the /usr partition. Here, the file system needs to be unmounted first.

# fsck -t jfs /dev/md0

The above is an example that will check the Linux JFS file system on a mdadm software RAID device:

# parted /dev/sda ‘print’

This command will print the available partitions on your system.

# parted /dev/sda ‘print’

It will give an output like following.

Number  Start     End      Size       Type      File system   Flags

1      1049kB   106MB    105MB    primary    fat16       diag

2      106MB   15.8GB    15.7GB    primary    ntfs        boot

3      15.8GB   266GB    251GB     primary    ntfs

4      266GB    500GB    234GB     extended

5      266GB    466GB    200GB     logical    ext4

6      467GB   486GB    18.3GB   logical     ext2

7      487GB   499GB    12.0GB   logical     fat32        lba

There are a number of possible fsck checker commands. To view the possible fsck checker commands, you need to run the following commands.

# cd /sbin

# ls fsck*

fsck  fsck.cramfs  fsck.ext2  fsck.ext3  fsck.ext4  fsck.ext4dev  fsck.minix  fsck.msdos  fsck.nfs  fsck.vfat

There are exit codes for the fsck commands. The exit codes for the fsck command are listed below.

0 – No errors

1 – Filesystem errors corrected

2 – System should be rebooted

4 – Filesystem errors left uncorrected

8 – Operational error

16 – Usage or syntax error

32 – Fsck canceled by user request

128 – Shared-library error

This is an overview of the fsck utility in the Linux system.

 

If you need any further assistance please contact our support department.

 

Was this answer helpful? 0 Users Found This Useful (0 Votes)