How can I tell if a downloaded ISO is complete?

I just ran into a nasty problem with an ISO download from Microsoft. I successfully burnt it to a rewritable DVD, and copied the contents to the local hard drive on another machine, but when I went to run them they were corrupt. It turns out the download had been truncated.

Now, OK, sometimes that happens - but it surprised me that the truncated file (which was only slightly more than 60% of the actual ISO) burnt successfully and seemed to be presenting me with a sensible file system, to the extent that I could (apparently) successfully copy the files.

So, is there some way I could have tested the file to see if it was complete or not? The MS web site did not provide any information about the expected size, so I'm looking for a generic solution: given an ISO file which may or may not be truncated, is there some way to tell? Do commonly used CD/DVD (data) formats include any embedded information about how much data is supposed to be on the disk, or even better, some kind of CRC?

A solution that detects most truncated images will be accepted, it doesn't need to be perfect. (I'd prefer something that doesn't give false positives, though.)

[Addendum: a comparison of the disk burnt with the truncated image with the files extracted from the full image suggests that chunks of the data from many of the files were replaced with random information, perhaps from the contents of a previous burn to the same rewritable disk.]


Solution 1:

A quick-n-dirty method: if you install 7-Zip, you can right-click an ISO and open it as an archive - something I usually do anyway to unpack it (as an alternative to burning to DVD). From there, you can test the archive using the 'Test' command in the toolbar.

Solution 2:

The easiest way, assuming that the source provides the correct output for you, is to take a hash of the completed file. If the hashes match, you're good to go. In this specific example, I know Microsoft publishes the MD5 or SHA-1 hash of their major ISOs. (I believe most legitimate software vendors who provide ISO files have this readily available these days.)

EDIT: This information may not be readily available directly on the download page, but you can often find it if you look. This is really the only 100% foolproof way to be absolutely sure you have what you're supposed to.

Solution 3:

The ISO from the download center is the same one you can get from MSDN.

The MD5 is 61c2088850185ede8e18001d1ef3e6d12daa5692 vs2010sp1dvd1.iso

I hope that helps. If you don't have a MD5, you can download one here.

http://corz.org/windows/software/checksum/simple-checksum.php