Is it sufficient to refresh an archival external HDD with chkdsk?

Simple yet effective method to refresh data is to use badblocks, it's a linux utility that can check for bad blocks. It has a feature which allows non-destructive read-write test, which rewrites data on hdd by testing pattern, checks that pattern and write back original data.

Almost every linux distribution contains this utility as a part of e2fsprogs package. You can use for example live cd/usb SystemRescueCD

It is also part of cygwin packages, so you may be able to use it under Windows.

I'm not sure about this, but I think that chkdsk is performing only read test.


While Windows 7's chkdsk option to locate bad sectors (/R) will be sufficient to read most of blocks [*] from a partition, and while there are utilities that re-read a whole physical disk (like mentioned HDDScan, HDD Tune, badblocks), I strongly suggest you to use utility which would re-write your physical disk (or partition) while leaving all user data intact.

For now I know only one such tool (and it's for Windows) -- it is DiskFresh:

DiskFresh is a simple yet powerful tool that can refresh your hard disk signal without changing its data by reading and writing each sector and hence making your disk more reliable for storage. It also informs you if there are any damaged/bad sectors so you know the right time to replace your disk. The best part is, unlike other tools it does all this when Windows is running and it does not interfere with the speed of your work at all.

Main Features

  • A very simple interface with an extremely powerful engine.
  • Can refresh individual partitions or entire physical drive.
  • Can also refresh only the selected area of the disk.
  • Can work in read-only mode too so as to just inform about bad sectors.
  • Supports command line for advanced usage.
  • Can refresh system drive while Windows is running.

...

DiskFresh is compatible with Windows XP/2003/Vista/2008/7/8/2012 including 64 bit versions. It provides native support for 64 bit versions.

And it's freeware:

Free for private and non-commercial use only. (Can use for test purpose before buying commercial license).

Found today, haven't tested yet. Quoting the review:

In order to keep the data signal from fading, you need to re-write the data. This is often known as “hard disk maintenance”, and should be done 3 or 4 times a year.

While it does not prevent data from being corrupted or deleted, it can go a long way towards ensuring that the magnetic signal does not fade away completely. The way it works is to read every sector of the drive, and then re-write the data found there, provided the drive reported no errors. If this is done on a regular basis, the magnetic signal of every part of the drive will be refreshed long before the signal fades or becomes ambiguous.

This technique also gives the drive controller the opportunity to decide whether to retire any sectors that are becoming too unreliable, before any important data is lost. DiskFresh is not the first program to do this, but it is the first program for the PC that allows you to continue to use the drive while the refresh is being performed.

I find this argument very logical.

So in general my answer is no, using chkdsk isn't sufficient.


[*] Except for volume slack, partition slack or filesystem slack -- see Figure 1 in Data Hiding Tactics for Windows and Unix File Systems (there is some uncertainty about these terms).

... Plus except some parts of MBR, Boot Sector(s) and maybe some metadata from FAT/NTFS structures (I'm not sure about the latter).