Upgrading from Vista to Windows 7
Recently I upgraded a client’s Vista computer (Toshiba Qosmio, 4Gb, Intel Core Duo P7350, 7200-RPM 200-Gb disk) from Vista Ultimate 64-bit to Windows 7 Ultimate 64-bit. Being a Unix sysadmin this is not something I usually do. How did the experience compare to upgrading HP-UX, Solaris or SLES? In a nutshell: I’d rather walk around all day in wet underwear than attempt to upgrade Vista ever again. The process was more time-consuming and frustrating than when I was upgrading a pair of Sun E6500s from Solaris 8 to Solaris 10 with a simultaneous upgrade of Veritas HA cluster software and VxVM with encapsulated boot disks.
The Windows 7 fun started right after I punched in my credit card number to purchase the Windows 7 Ultimate Upgrade for $219.99. Once the transaction went through, I was given the product key and links to download three files: a 75-Mb executable that contained the setup utility launcher and two “setup*.box” files worth about 2.7Gb together. The download was very slow and the problem was not with my 20/20-mbps Verizon Business FiOS line. Running route trace revealed some major delays on Microsoft’s side of the network.
The download took almost three hours and the setup utility spent another twenty minutes unpacking the “Box” files. Then it scratched the hard drive for another fifteen minutes or so checking for upgrade compatibility issues. It told me to decrypt all PGP volumes as the Vista version of PGP Desktop was not compatible with Windows 7. The setup utility also informed me that I need 12-point-something gigabytes of free space for the upgrade to run. I only had nine. Finally, the setup utility told me that the upgrade wouldn’t work because I am running a 64-bit version of Vista and using a 32-bit upgrade image of Windows 7. This was particularly annoying because it specifically says on Microsoft’s site that the upgrade package is supposed to include both 32- and 64-bit versions.
It turns out that by default you are offered to download 32-bit upgrade image. Apparently, the Microsoft Store site is not smart enough to identify which version of Windows you are running. I had to spend another hour downloading the 64-bit version of Windows 7. This time the download was going a bit faster, probably because the files were located on a different server. Suggestions to Microsoft so far: a) make sure users download the correct version of software for their platform on the first try; b) provide more bandwidth for downloads; c) setup utility should be able to identify compatibility issues without having to unpack the entire 2.7-Gb archive first; d) if critical compatibility issues are identified (not enough disk space, wrong platform version, etc.), this information should be displayed immediately, giving the user an option to cancel the rest of the verification process and save time. Microsoft has been in the OS-development business for more than twenty-five years: I think it’s finally time it gets some basic workflow concepts right.
So I cleaned up the hard drive, removed a couple of non-compatible applications (VMWare Player and Abbyy FineReader) and launched the correct 64-bit upgrade installer. It went through the usual steps – unpacking the archives, running compatibility analysis, etc. – and about half-an-hour later informed me that the upgrade process is ready to commence. The installer wanted to go online to get the latest updates for the installation. It told me that “your computer will remain connected to the Internet throughout the installation process.” Naturally, I selected the option to do an offline upgrade, since Microsoft is yet to invent an operating system that can remain connected to the Internet while the computer is rebooting (and Windows 7 upgrade requires a multitude of reboots).
Once initiated, the upgrade process tells you the following: “That’s all the information we need right now. Your computer will restart several times during the upgrade.” This seemed to imply that the rest of the upgrade process is automated and does not require user interaction. As it turned out, however, this was not the case. The upgrade process goes through five phases:
Copying Windows files
Gathering files, settings, and programs
Expanding Windows files
Installing features and updates
Transferring files, settings, and programs
Each phase takes a very long time. The “Expanding Windows files” stage took two hours and for a while it seemed to be stuck at 18%. The “Transferring files, settings, and programs” step took the most time, but this would depend on how much software you have loaded on your PC. After the “Transferring files…” process reached 62% the screen went blank. I patiently waited for about four hours, after which I power-cycled the computer. Upon booting up, it told me the following: “Your upgrade was not successful. Your previous version of Windows is being restored. Do not restart your computer during this time.” The restore took about three hours, but – to my amazement – it actually worked. The upgrade utility provided no information about the nature of the problem it encountered. So after two days of upgrading I was back at square one.
If this was a Unix system, I would have assumed that there was some unusual firmware or hardware problem preventing the upgrade from completing. A failed upgrade for a Unix operating system would have also created a detailed log file detailing any problems it encountered. But this was Vista: with no error logs from the upgrade and no obvious hardware issues I just restarted the upgrade process. Naturally, I had to go through all the same time-consuming steps. It even had to expand the Box files again, even though the files were already expanded into a directory on the Desktop during the previous upgrade attempt.
I restarted the upgrade process around 9am on Saturday. When I finally came back to check on it around 7pm it was still sitting at the “Transferring files…” screen, but this time it got a bit farther: 72%. There was also a pop-up windows asking me to insert the disk for Exceed 2008 64-bit version. For those of you who are not familiar with this application, Exceed is a remote desktop application of sorts for connecting to Unix computers from Windows. I clicked “Ignore” and in about another hour the Windows 7 upgrade finally completed. It seems the process is not entirely automated and user interaction may be required. This would never happen when installing or upgrading a Unix operating system: Unix prefers to ask you all the questions ahead of time.
When Windows 7 is booting up for the first time, it asks you to enter the product key. The product key was emailed to me when I purchased the upgrade from the Microsoft Store. I wonder how many people forget to write down the product key on a piece of paper before upgrading their computer. This is another workflow issue with Windows 7. The rest of the process was uneventful: the computer booted up, Windows 7 loaded and I got the desktop. One annoying issue was that all taskbar shortcuts were gone. Permanently. Apparently, the trivial task of preserving these shortcuts during the upgrade process was beyond Microsoft’s technical expertise. Another unexpected issue that came up with Windows 7 had to do with the eSATA drive: from time to time Windows would seem to lose connection to the drive.
Why did the upgrade failed on the first attempt I will probably never know. I made no changes on the system before restarting the upgrade. If this was a Unix operating system I would have never tried running the upgrade a second time before figuring out why it failed in the first place. Unix is consistent: if a process failed once, it will fail again unless the underlying problem was resolved. Apparently, this is not the case with Windows 7, where a process may fail today but work fine tomorrow. I’d rather have an OS that fails consistently on a specific task than an OS that fails from time to time on the same task: if a problem is consistent – it can be analyzed and fixed. On the other hand, if a problem is intermittent, you can only pray. And I am not a man of faith.
Most of the problems that arose during the upgrade from Vista to Windows 7 had to do with poor workflow of the process. With a few simple changes to the sequence of events the upgrade could have been made far less tedious, even if it still took eleven hours to complete. Microsoft lacks attention to detail: it always has and probably always will. The future of Windows in the long run will undoubtedly be some Microsoft-branded version of Linux. All the hype surrounding it notwithstanding, Windows 7 is the Last of the Mohicans. It is widely accepted that Windows 7 is what Vista was supposed to be before it was pushed out on the marked half-baked because the project was years behind schedule.
It took Microsoft eight years to come up with an adequate replacement for Windows XP. With this kind of a development cycle, Microsoft really has no choice but to make some very drastic changes to the very nature of its operating system and its development methodology. During the same period of time (2001-2009) that it took Microsoft to make one step from Windows XP to Windows 7, there were five major releases of SuSE Linux, four major releases of Solaris, multiple releases of Red Hat Linux, HP-UX and AIX. From the very beginning, Windows was behind Unix in terms of power, stability and features. Taking one step forward in the same time Unix take four or five is not how Microsoft going to catch up with the big boys.
For a while Windows has been in the lead in terms of hardware compatibility. When a hardware manufacturer released a new device, they provided a Windows driver but did not bother writing a Linux driver because of the relatively small market share of Linux PCs. At best, the hardware maker would publish the specs for the new device and let volunteers from the Linux development community write their own drivers. Over the past few years this dynamics has changed, as more and more hardware manufacturers now choose to spend money to develop Linux drivers in addition to Windows drivers. This robs Windows of a critical (even if unfair) marketing advantage. If Microsoft continues to release a new OS every six to eight years, very quickly Windows will become an operating system that old people use to read email.