The fsck command uses a state flag, which is stored in the superblock, to record the condition of the file system. This flag is used by the fsck command to determine whether a file system needs to be checked for consistency. The flag is used by the /sbin/rcS script during booting and by the fsck -m command. If you ignore the result from the fsck -m command, all file systems can be checked regardless of the setting of the state flag.
For a description of the superblock, see The Superblock.
The possible state flag values are described in the following table.
Table 43–1 Values of File System State Flags
State Flag Values |
Description |
---|---|
FSACTIVE |
When a file system is mounted and then modified, the state flag is set to FSACTIVE. The file system might contain inconsistencies. A file system is marked as FSACTIVE before any modified metadata is written to the disk. When a file system is unmounted gracefully, the state flag is set to FSCLEAN. A file system with the FSACTIVE flag must be checked by the fsck command because it might be inconsistent. |
FSBAD |
If the root (/) file system is mounted when its state is not FSCLEAN or FSSTABLE, the state flag is set to FSBAD. The kernel will not change this file system state to FSCLEAN or FSSTABLE. If a root (/) file system is flagged FSBAD as part of the boot process, it will be mounted read-only. You can run the fsck command on the raw root device. Then remount the root (/) file system with read and write access. |
FSCLEAN |
If a file system is unmounted properly, the state flag is set to FSCLEAN. Any file system with an FSCLEAN state flag is not checked when the system is booted. |
FSLOG |
If a file system is mounted with UFS logging, the state flag is set to FSLOG. Any file system with an FSLOG state flag is not checked when the system is booted. |
FSSTABLE |
The file system is (or was) mounted but has not changed since the last checkpoint (sync or fsflush) that normally occurs every 30 seconds. For example, the kernel periodically checks if a file system is idle and, if so, flushes the information in the superblock back to the disk and marks it as FSSTABLE. If the system crashes, the file system structure is stable, but users might lose a small amount of data. File systems that are marked as FSSTABLE can skip the checking before mounting. The mount command will not mount a file system for read and write access if the file system state is not FSCLEAN, FSSTABLE, or FSLOG. |
The following table shows how the state flag is modified by the fsck command, based on its initial state.
Table 43–2 How the State Flag is Modified by fsck
Initial State: Before fsck |
State After fsck |
|
|
---|---|---|---|
No Errors |
All Errors Corrected |
Uncorrected Errors |
|
unknown |
FSSTABLE |
FSSTABLE |
unknown |
FSACTIVE |
FSSTABLE |
FSSTABLE |
FSACTIVE |
FSSTABLE |
FSSTABLE |
FSSTABLE |
FSACTIVE |
FSCLEAN |
FSCLEAN |
FSSTABLE |
FSACTIVE |
FSBAD |
FSSTABLE |
FSSTABLE |
FSBAD |
FSLOG |
FSLOG |
FSLOG |
FSLOG |