One of the problems with fsck scans is that they can take quite a
while to complete, since the entirety of a filesystem's metadata
(internal data structure) needs to be scanned in order to ensure that it's
consistent. With extremely large filesystems, it is not unusual for an
exhaustive fsck to take more than an hour.
In order to solve this problem, a new type of filesystem was designed, called a
journaling filesystem. Journaling filesystems record an on-disk log of
recent changes to the filesystem metadata. In the event of a crash, the
filesystem driver inspects the log. Because the log contains an accurate
account of recent changes on disk, only these parts of the filesystem metadata
need to be checked for errors. Thanks to this important design difference,
checking a journalled filesystem for consistency typically takes just a matter
of seconds, regardless of filesystem size. For this reason, journaling
filesystems are gaining popularity in the Linux community. For more information
on journaling filesystems, see the
Advanced filesystem implementor's guide, Part 1: Journalling and ReiserFS.
Now, let's take a look at the various filesystems available for Linux.