Any opinions expressed here are my own and not necessarily those of my employer (I'm self-employed).

Apr 13, 2011

The importance of verifying file integrity

I've just wasted a couple of hours trying to install Windows 7 on a laptop.  I downloaded the Windows 7 Enterprise Edition x32 image from MSDN, burned it to a cd, and thought that all was well.

To my surprise I got this interesting error message early in the install:
A required CD/DVD device driver is missing. If you have a driver floppy disk, CD, DVD, or USB flash drive, please insert it now.
What? Windows 98 revisited? After some googling it seemed I wasn't the only one experiencing the problem, and several people reported that the problem was caused by a bad download or a bad cd. I didn't quite suspect this, as downloads are rarely problematic these days. After spending a considerable amount of time searching for drivers around the Internet, I therefore realized that there was only one thing right to do.

Verifying file integrity
I had downloaded the Win 7 ISO file to my Mac. Calculating the SHA-1 hash for a file is straightforward on OS X, since OpenSSL is preinstalled.

klings$ openssl sha1 en_windows_7_enterprise_with_sp1_x86_dvd_620186.iso 
SHA1(en_windows_7...620186.iso)= bd06158ceb24ad345d4d83104acf16aebbe5be67

Unfortunately, the hash should have been: 4788041EB06E0F49720C112FBD256AC637909D4F. It turns out that my ISO file is not identical to the one on MSDN! No wonder this didn't work out... I'll blame this one on Chrome, MSDN, or both. Chrome reported my download to be successful.

Don't go wasting your life before you've checked the integrity of the files you download!

For Windows, you might want to check out the Microsoft File Checksum Integrity Verifier, it seems to get the job done.


Copyright notice

© André N. Klingsheim and www.dotnetnoob.com, 2009-2015. Unauthorized use and/or duplication of this material without express and written permission from this blog’s author and/or owner is strictly prohibited. Excerpts and links may be used, provided that full and clear credit is given to André N. Klingsheim and www.dotnetnoob.com with appropriate and specific direction to the original content.

Read other popular posts