IT Questions and Answers :)

Monday, December 30, 2019

What is the command to tell an ext* filesystem on /dev/sda1 to perform a filesystem check at each boot up if has not been checked in more than one day?

What is the command to tell an ext* filesystem on /dev/sda1 to perform a filesystem check at each boot up if has not been checked in more than one day?

  • e2fsck -D /dev/sda1
  • tune2fs -i 1d /dev/sda1
  • e2fsck -C0 -c -c -D /dev/sda1
  • tune2fs -c 1 /dev/sda1

What is the command to tell an ext* filesystem on /dev/sda1 to perform a filesystem check at each boot up if has not been checked in more than one day?

EXPLANATION

What is e2fsck?

Check ext2, ext3, or ext4 filesystems.


5 e2fsck Examples

1. Check a partition

You should be root to execute this command. If not, you’ll get the following error message.
$ /sbin/e2fsck /dev/sdb1
e2fsck 1.35 (28-Feb-2004)
/sbin/e2fsck: Permission denied while trying to open /dev/sdb1
You must have r/w access to the filesystem or be root
Also, the filesystem should not be mounted when you are performing the check. If it is mounted, you’ll get the following error message.
# e2fsck /dev/sdb1
e2fsck 1.41.12 (17-May-2010)
e2fsck: Device or resource busy while trying to open /dev/sdb1
Filesystem mounted or opened exclusively by another program?
So, login to root, unmount the filesystem, and perform the check as shown below.
$ su -

# umount /home 

# e2fsck /dev/sdb1
e2fsck 1.35 (28-Feb-2004)
/dev/sdb1: clean, 250/73187328 files, 26838739/146374231 blocks

2. Automatic repair using e2fsck

Using -p option, you can instruct e2fsck to check and automtically repair all issues without prompting you for confirmation.
# e2fsck -p /dev/sdb1
You can also use option -y, which will use “yes” answer to all the questions that are asked by the e2fsck command.
# e2fsck -y /dev/sdb1

3. Check only (no change) using e2fsck

Using -n option, you can instruct e2fsck to perform check only. i.e this will not make any changes to the filesystem, it will only check
# e2fsck -n /dev/sdb1

4. Force the filesystem check

When the filesystem is clean, it will not perform any checks, it will return the following message
# e2fsck /dev/sdb1
e2fsck 1.35 (28-Feb-2004)
/dev/sdb1: clean, 250/73187328 files, 26838739/146374231 blocks
However, if you want to force the filesystem check, even when it is clean, use the -f option as shown below.
# e2fsck -f /dev/sdb1
e2fsck 1.35 (28-Feb-2004)
Pass 1: Checking inodes, blocks, and sizes
Pass 2: Checking directory structure
Pass 3: Checking directory connectivity
Pass 4: Checking reference counts
Pass 5: Checking group summary information
/dev/sdb1: 250/73187328 files (6.0% non-contiguous), 26838739/146374231 blocks

5. Display a progress bar during e2fsck check

Using -C option, you can specify a file descriptor, where e2fsck will send the output, which is useful when you are doing e2fsck from a shell script.
If you specify “-C 0”, it will display a progress bar while e2fsck is doing the check, which is useful, as you can see that it is doing something.
# e2fsck -f -C 0 /dev/sdb1
e2fsck 1.35 (28-Feb-2004)
Pass 1: Checking inodes, blocks, and sizes
/dev/sdb1: |=====                                                   -  9.5%

Syntax and Options

Syntax:
e2fsck  [ -pacnyrdfkvtDFV ] [ -b superblock ] [ -B blocksize ] [ -l|-L bad_blocks_file ] [ -C fd ] [ -j external-journal ] [ -E extended_options ] device
Explain the option of the e2fsck command. e.g. of chmod shown below.
Short Option Long Option Option Description
-a
Same as option -p. It is only for backward compatibility.
-b
Using this option, you can specify an alternative superblock. Use this when the main superblock is corrupted. For filesystems with 1k blocksizes, a backup superblock can be found at block 8193; for filesystems with 2k blocksizes, at block 16384; and for 4k block‐sizes, at block 32768. Use mke2fs -n option to see additional backup superblocks. The mke2fs -b option, which specifies blocksize of the filesystem must be specified in order for the superblock locations that are printed out to be accurate
-B /td> Using this option it will search for the superblock using different block sizes. This option forces e2fsck to use only the specified superblock blocksize. If the superblock is not found, e2fsck will terminate with a fatal error.
-c
Using this option it use badblocks program to do a read-only scan of the device in order to find any bad blocks. If any bad blocks are found, they are added to the bad block inode to prevent them from being allocated to a file or directory. If this option is specified twice, then the bad block scan will be done using a non-destructive read-write test.
-C
Using this option it writes completion information to the specified file descriptor so that the progress of the filesystem check can be monitored. This option is typically used by programs which are running e2fsck.
-d
Print debugging output. Not useful except to debug e2fsck command itself.
-D
Use this option to optimize directories in filesystem. Does this by reindexing them, or by sorting and compressing directories for smaller directories, or for filesystems using traditional linear directories.
-E
Using this option you can set e2fsck extended options. These are comma separated, and may take an argument using the equals (‘=’) sign. It supports ea_ver=extended_attribute_version and fragcheck
-f
Force checking even if the file system seems clean
-F
Flush the filesystem device’s buffer caches before beginning. Only really useful for doing e2fsck time trials.
-j
Set the pathname where the external-journal for this filesystem can be found.
-k
When combined with the -c option, any existing bad blocks in the bad blocks list are preserved, and any new bad blocks found by running badblocks(8) will be added to the existing bad blocks list.
-l
Add the block numbers listed in the file specified by filename to the list of bad blocks.
-L
Using this option set the bad blocks list to be the list of blocks specified by filename. (This option is the same as the -l option, except the bad blocks list is cleared before the blocks listed in the file are added to the bad blocks list.)
-n
Using this option open the filesystem read-only, and assume an answer of `no’ to all questions. Allows e2fsck to be used non-interactively. This option may not be specified at the same time as the -p or -y options.
-p
Automatically repair (“preen”) the file system. This option will cause e2fsck to automatically fix any filesystem problems that can be safely fixed without human intervention. If e2fsck discovers a problem which may require the system administrator to take additional corrective action, e2fsck will print a description of the problem and then exit with the value 4 logically or’ed into the exit code.
-r
This option does nothing at all; it is provided only for backwards compatibility.
-t
Print timing statistics for e2fsck. If this option is used twice, additional timing statistics are printed on a pass by pass basis.
-v
Verbose mode.
-V
Print version information and exit.
-y
Assume an answer of `yes’ to all questions; allows e2fsck to be used non-interactively. Don’t use it when you are using -n or -p options.
The exit code returned by e2fsck is the sum of the following conditions:
  • 0 – No errors
  • 1 – File system errors corrected
  • 2 – File system errors corrected, system should
  • be rebooted
  • 4 – File system errors left uncorrected
  • 8 – Operational error
  • 16 – Usage or syntax error
  • 32 – E2fsck canceled by user request
  • 128 – Shared library error

 

The simplest way to force fsck filesystem check on a root partition eg. /dev/sda1 is to create an empty file called forcefsck in the partition's root directory.

# touch /forcefsck

This empty file will temporarily override any other settings and force fsck to check the filesystem on the next system reboot. Once the filesystem is checked the forcefsck file will be removed thus next time you reboot your filesystem will NOT be checked again. To enable more permanent solution and force filesystem check on every reboot we need to manipulate filesystem's "Maximum mount count" parameter. The following linux command will ensure that filesystem /dev/sdb1 is checked every time your Linux system reboots. Please note that for this to happen the fsck's PASS value in /etc/fstab must be set to a positive integer as discussed above.
# tune2fs -c 1 /dev/sdb1
alternatively we can set fsck after every 10 reboots:
# tune2fs -c 10 /dev/sdb1

 

Share:

0 comments:

Post a Comment

Popular Posts