9

Some background:

I have been helping my uncle, a photographer, maintain a system of storage for all his work (Terrabytes of images!).

We do this by using two external hard drives for his data storage.

One of them we call the "Work Horse" drive, which he uses for working on files in Photoshop etc. thoughout the day. The other, called "Archive", receives any changes (using SyncToy) to the Work Horse on a daily basis.

When the external drives start to get full, the pair of drives are eventually disconnected from the system, replaced by a new pair of drives. The full work horse is then stored on-site , the Archive at a family member's house.

We have used this approach for the past few years - and I am now starting to think about 'refreshing' some of the older drives to prevent the effects of 'bit flux' or 'bit rot'.

The Question:

Is using the bad sector check included in Windows 7's chkdsk sufficient for revitalising every bit of data on these drives? If not, do any of you have a better solution?

Please bear in mind, I am aware using Tape backups would probably be best (as they are purpose built for archiving) but these are not an economically viable option for my uncle at present.

5
  • 3
    Remember that a complete verification (read+write) of every single bit on massive HDDs will probably take hours, especially if connected via USB (even USB 3.0). That said, if you're looking for a Windows utility check out HDDScan and HDD Tune among others.
    – Karan
    Commented Dec 4, 2012 at 21:42
  • @Karan thanks, am aware it is a slow process, but could just be left to run over night. The utilities you provided are fine for checking SMART attributes and benchmarking, but not to do a bit-by-bit read or read/write... unless I'm missing something? Commented Dec 6, 2012 at 12:01
  • As per the screenshots on the site HDDScan seems to have a surface test feature that has read, erase and verify options, but maybe I misunderstood what they do.
    – Karan
    Commented Dec 6, 2012 at 14:32
  • @Karan, I must apologise you're spot on. Tired eyes this morning! I'll give these a go +1 for your first comment. Would be good to know if a chkdsk bad block check does something similar. Commented Dec 6, 2012 at 15:47
  • I don't think chkdsk does a full read+write+read+compare, but I could be wrong.
    – Karan
    Commented Dec 6, 2012 at 16:24

3 Answers 3

7

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.

5
  • Thanks week! I am a linux user myself, however admit I've never used/seen badblocks before. I'll have a look into it, however I am aware my uncle is not such a proficient PC user. Ideally would be great for him to have a set of instructions I can prepare that uses a native Windows program or app. Commented Dec 3, 2012 at 13:07
  • @killercowuk For those purposes I use AutoIT scripts, it's possible to create simple GUI wrapper around executables with just a few lines of VB like code. They have a great forum, where you can find bunch of examples. You can create simple app with one button, pack it with cygwin version of executable.
    – week
    Commented Aug 7, 2019 at 9:56
  • 1
    Might be better to only do this with an uninterruptible power supply because it can take days on large drives and in case of a (short) blackout, the currently tested blocks will end up with random data in them. I had that luck. Fortunately, I had a full backup and even though it was encrypted only 3 files / ~5GB of data was hit by the ~64MB corrupted tested block. But it could have ended worse if the block in question had been a file system superblock or the volume encryption header.
    – mxmlnkn
    Commented Dec 23, 2021 at 12:04
  • Simple, effective and godawfully slow, as badblocks is meant to test that each sector can be written with a specific pattern which will look correct when read back, and only then it restores the original data that it has stored in a buffer. So its nondestructive read-write mode (-n) is probably its absolute slowest mode available, in which it will perform double the reads and double the writes you needed if all you wanted was to refresh your data.
    – Don Joe
    Commented Aug 4, 2023 at 20:48
  • badblocks /dev/whatever with no switches/options?
    – einpoklum
    Commented Jun 30 at 19:20
4

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).

1
  • PS: if anyone knows about such tool for *NIX systems (or another one for Windows), I will appreciate your signal:)
    – saulius2
    Commented Feb 21, 2015 at 12:38
0

Check out ExactFile. It's freeware that will calculate a hash on files and store the hash values. You can then recheck at any time to see if any bits have changed. I have used it on 300 GB at a time and use it for many data transfers and it works beautifully. Very easy to use, too. Note: it will READ your data and confirm that it is still all there but it won't re-write your data.

Perhaps get another disk and copy the "stale" disk to the "fresh" disk and then check with ExactFile to see that every single bit has transferred OK. Do that 3-4 times a year and you'll be OK. If the HDD isn't used for many months, it might start getting mechanically flaky (?). And keep a backup somewhere else too! Perhaps get a disk enclosure or caddy to swap disks.

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .