Recoverable File Systems

NTFS is a third kind of file system — a recoverable file system. It combines the speed of a lazy-write file system with virtually instant recovery.

NTFS guarantees the consistency of the volume by using standard transaction logging and recovery techniques. It includes a lazy writing technique plus a system of volume recovery that takes typically only a second or two after the computer is rebooted. The transaction logging, which allows NTFS to recover quickly, requires a very small amount of overhead compared with careful-write file systems.

When used on a partition on a single device, NTFS can recover from a system crash, yet it may lose data as the result of an I/O error. In conjunction with the mirroring or parity striping support implemented by the fault tolerance driver (described later in this chapter), NTFS can survive any single point of failure. The NTFS partition still remains accessible, though potentially not bootable. That is, even if the boot sector is lost and the bootstrap cannot transfer control to the NTFS copy of the boot sector, you can still boot the computer from another partition or another physical drive and can still access the NTFS partition.

NTFS also supports hot-fixing, so that if an error occurs because of a bad sector, the file system moves the information to a different sector and marks the original sector as bad. This is transparent to any applications performing disk I/O. Hot-fixing eliminates error messages such as the "Abort, Retry, or Fail?" error message that occurs when a file system such as FAT encounters a bad sector.

However, when NTFS is used on a fault-tolerant device and an error is detected on one copy of a cluster, data can be recovered. The bad cluster is migrated to the Bad Cluster File, and it is replaced by another cluster. Then a copy of the original data is written to the new cluster.

Note

NTFS supports cluster sizes of 512, 1024, 2048, and 4096.

Although the format command automatically selects an appropriate cluster size based on its examination of your disk, you can use the /a option to specify a particular cluster size. Type format /? at the command line for more syntax information.

For more information about using fault tolerance with Windows NT, see "Windows NT Fault-Tolerance Mechanisms," later in this chapter.