Our hard disks store our programs and, most
importantly, our precious data, so they have a special place in the
computing firmament. We ought to pamper and coddle them to ensure a long
and trouble-free existence, but that’s rarely the case, unfortunately.
Just consider everything that a modern hard disk has to put up with:
General wear and tear—
If your computer is running right now, its hard disk is spinning away
at between 5,400 and 10,000 revolutions per minute. That’s right—even
though you’re not doing anything, the hard disk is hard at work. Because
of this constant activity, most hard disks simply wear out after a few
years.
Head/platter collisions— Your hard disk includes read/write heads
that are used to read data from and write data to the disk. These heads
float on a cushion of air just above the spinning hard disk platters. A
bump or jolt of sufficient intensity can send them crashing onto the
surface of the disk, which could easily result in trashed data. If the
heads happen to hit a particularly sensitive area, the entire hard disk
could crash. Notebook computers are particularly prone to this problem.
Power surges—
The current that is supplied to your PC is, under normal conditions,
relatively constant. It’s possible, however, for your computer to be
assailed by massive power surges (such as during a lightning storm).
These surges can wreak havoc on a carefully arranged hard disk.
So, what can you do about it? Windows Home Server
comes with a program called Check Disk that can check your hard disk for
problems and repair them automatically. It might not be able to recover
a totally trashed hard disk, but it can at least let you know when a
hard disk might be heading for trouble.
Check
Disk performs a battery of tests on a hard disk. It looks for invalid
filenames, invalid file dates and times, bad sectors, and invalid
compression structures. In the hard disk’s file system, Check Disk also
looks for the following errors:
Lost clusters
Invalid clusters
Cross-linked clusters
File system cycles
The next few sections explain these errors in more detail.
Understanding Clusters
Large hard disks are inherently inefficient. When you
format a disk, the disk’s magnetic medium is divided into small storage
areas called sectors, which usually
hold up to 512 bytes of data. A large hard disk can contain tens of
millions of sectors, so it would be too inefficient for Windows Home
Server to deal with individual sectors. Instead, Windows Home Server
groups sectors into clusters, the size of which depends on the file system and the size of the partition, as shown in Table 1.
Table 1. Default Cluster Sizes for Various File Systems and Partition Sizes
Partition Size | FAT16 Cluster Size | FAT32 Cluster Size | NTFS Cluster Size |
---|
7MB–16MB | 2KB | N/A | 512 bytes |
17MB–32MB | 512 bytes | N/A | 512 bytes |
33MB–64MB | 1KB | 512 bytes | 512 bytes |
65MB–128MB | 2KB | 1KB | 512 bytes |
129MB–256MB | 4KB | 2KB | 512 bytes |
257MB–512MB | 8KB | 4KB | 512 bytes |
513MB–1,024MB | 16KB | 4KB | 1KB |
1,025MB–2GB | 32KB | 4KB | 2KB |
2GB–4GB | 64KB | 4KB | 4KB |
4GB–8GB | N/A | 4KB | 4KB |
8GB–16GB | N/A | 8KB | 4KB |
16GB–32GB | N/A | 16KB | 4KB |
32GB–2TB | N/A | N/A | 4KB |
Still, each hard disk has many thousands of clusters,
so it’s the job of the file system to keep track of everything. In
particular, for each file on the disk, the file system maintains an entry in a file directory, a sort of table of contents for your files. (On an NT File System [NTFS] partition, this is called the Master File Table, or MFT.)
Understanding Lost Clusters
A lost cluster (also sometimes called an orphaned cluster)
is a cluster that, according to the file system, is associated with a
file but has no link to an entry in the file directory. Lost clusters
are typically caused by program crashes, power surges, or power outages.
If Check Disk comes across lost clusters, it offers
to convert them to files in either the file’s original folder (if Check
Disk can determine the proper folder) or in a new folder named Folder.000 in the root of the %SystemDrive%. (If that folder already exists, Check Disk creates a new folder named Folder.001 instead.) In that folder, Check Disk converts the lost clusters to files with names like File0000.chk and File0001.chk.
You can take a look at these files (using a text
editor) to see whether they contain any useful data and then try to
salvage the data. Most often, however, these files are unusable, and
most people just delete them.
Understanding Invalid Clusters
An invalid cluster is one that falls under one of the following three categories:
A file system entry with an illegal value.
(In the FAT16 file system, for example, an entry that refers to cluster 1
is illegal because a disk’s cluster numbers start at 2.)
A file system entry that refers to a cluster number larger than the total number of clusters on the disk.
A file system entry that is marked as unused but is part of a cluster chain.
In this case, Check Disk asks whether you want to
convert these lost file fragments to files. If you say yes, Check Disk
truncates the file by replacing the invalid cluster with an end of file
(EOF) marker and then converts the lost file fragments to files. These
are probably the truncated portion of the file, so you can examine them
and try to piece everything back together. More likely, however, you
just have to trash these files.
Understanding Cross-Linked Clusters
A cross-linked cluster
is a cluster that has somehow been assigned to two different files (or
twice in the same file). Check Disk offers to delete the affected files,
copy the cross-linked cluster to each affected file, or ignore the
cross-linked files altogether. In most cases, the safest bet is to copy
the cross-linked cluster to each affected file. This way, at least one
of the affected files should be usable.
Understanding Cycles
In an NTFS partition, a cycle is a corruption in the file system whereby a subfolder’s parent folder is listed as the subfolder. For example, a folder named C:\Data should have C:\ as its parent; if C:\Data is a cycle, C:\Data—the same folder—is listed as the parent instead. This
creates a kind of loop in the file system that can cause the cycled
folder to “disappear.” In this case, Check Disk restores the correct
parent folder, and all is well again.
Understanding Windows Home Server’s Automatic Disk Checking
How does Windows Home Server know when a hard
drive needs fixing? It uses a behind-the-scenes service to periodically
run the Check Disk tool in read-only mode. This means that Check Disk
does not try to repair errors. Instead, if Check Disk reports that a
drive is generating errors, it changes the drive’s status to Failing,
changes the overall network health status to Warning (orange), and
enables the drive’s Repair option in Windows Home Server Dashboard.
All this means that you probably don’t have to run a
basic Check Disk by hand very often, particularly if your system is
showing no signs of possible hard disk failure (such as intermittent
system lock-ups, program crashes, and corrupt documents). However, if
you do notice any of this behavior, it’s always a good idea to run Check Disk as soon as possible, as described in the next section.
What you will do
with Check Disk is run the more thorough scan that performs a
sector-by-sector check of the physical disk. If you do this about once a
month, you can give yourself a heads-up about potential problems.
Running Check Disk
Check Disk has two versions: a graphical user interface (GUI) version and a command-line version. Here are the steps to follow to run the GUI
version of Check Disk:
Note
The GUI version of Check Disk only works with local
partitions that have assigned drive letters. In Windows Home Server,
this means you can use Check Disk on the system partition (C:) and the
primary data partition (D:). However, you can’t use Check Disk on
secondary data partitions because these exist as mount points in Windows
Home Server, so they don’t have drive letters. To check mount points
for errors, you need to use the CHKDSK command-line utility.
1. | Select Start, Computer.
|
2. | Right-click the drive you want to check, and then click Properties. The drive’s property sheet appears.
|
3. | Display the Tools tab.
|
4. | Click the Check Now button. The Check Disk window appears, as shown in Figure 1.
|
5. | Activate one or both of the following options, if desired:
- Automatically Fix File System Errors—
If you activate this check box, Check Disk automatically repairs any
file system errors that it finds. If you leave this option deactivated,
Check Disk runs in read only mode and just reports on any errors it
finds.
- Scan for and Attempt Recovery of Bad Sectors—
If you activate this check box, Check Disk performs a sector-by-sector
surface check of the hard disk surface. If Check Disk finds a bad
sector, it automatically attempts to recover any information stored in
the sector and marks the sector as defective so that no information can
be stored there in the future.
Caution
A sector-by-sector check can take several hours or
more, depending on the size of the partition. Therefore, only run this
more intensive check when you won’t be using Windows Home Server for a
while.
|
6. | Click Start.
|
7. | If
you activated the Automatically Fix File System Errors check box and
are checking a partition that has open system files, Check Disk tells
you that it can’t continue because it requires exclusive access to the
disk. It then asks whether you want to schedule the scan to occur the
next time you boot the computer. Click Yes to schedule the disk check.
|
8. | When the scan is complete, Check Disk displays a message letting you know and provides a report on the errors it found, if any.
|
If you click Yes when Check Disk asks whether you want to schedule the scan for the next boot, the program adds the AUTOCHK utility to the following Registry setting:
HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\BootExecute
This setting specifies the programs that Windows Home Server should run at boot time when the Session Manager is loading. AUTOCHK
is the automatic version of Check Disk that runs at system startup. If
you want the option of skipping the disk check, you need to specify a
timeout value for AUTOCHK. You change the timeout value by using the AutoChkTimeOut setting in the same Registry key:
HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\BootExecute
When AUTOCHK is scheduled with a timeout value greater than 0, you see the following the next time you restart the computer:
A disk check has been scheduled.
To skip disk checking, press any key within 10 second(s).
You can bypass the check by pressing a key before the timeout expires.