Eating Microsoft's Dog Food - A Self-Experiment With Windows 7, Part 1: Preparation
- Windows General
- Published Mar 19, 2009
After reading a lot about the speed and stability of Windows 7 (beta 1), I decided it was time for me not only to use it for real work, but also to move from 32-bit Windows to a 64-bit installation. This mini-series serves as a documentation of the steps I took and the lessons I learned.
You may call me reckless for using a beta, and an early one at that, on my production system, and you may even be right - time will tell. But at least I am trying not to be negligent: I chose not to replace my Vista installation with Windows 7, but install Win7 into a virtual hard disk (VHD) file that can be located anywhere on an existing NTFS volume.
Space Requirements
I reckoned I would need a 40 GB partition in order to really be able to work with the Windows 7 installation. Add to that the size of the paging file (located on the partition containing the boot loader). All in all I would need at least 45 GB of hard disk space.
Taking stock of the free space on my laptop’s hard drive, I realized that:
- the VHD file would have to be stored on Vista’s installation drive (C:), and
- that some serious cleaning-up was required to make enough room even on C:.
Housekeeping: Cleaning Up Vista’s System Partition
The Windows (Vista) partition where I wanted to install Windows 7 has a size of 60 GB of which 20 GB were free. Not enough for production use. First I tried several conventional steps to make room for the VHD:
- Removal of Vista SP1 uninstallation files by running
vsp1cln.exe.
Result: No change in free space. I may have done that already without remembering… - Deactivation of system restore on C:. Yield: ~9 GB. Now free: 29.67 GB.
- Uninstallation of programs I do not really need. Yield: 2.9 GB. Now free: 32.61 GB.
- Removal of the cache used by Lenovo System Update, located in
C:\Program Files\Lenovo\System Update\session. Yield: 1.2 GB. Now free: 33.80 GB.
Moving and Linking
Still around 10 GB missing. I had to resort to more drastic measures. I looked around the C: drive for large folders that would warrant moving to a different partition. Of course, directories that can be moved without consequences are scarce on the operating system volume. But I would not simply move data, I would make use of one of the lesser-known features of NTFS, junctions. A junction basically is a link pointing from one directory to another. So, after moving a folder from C: to E:, I would create a junction pointing from the original to the new location. Junctions, unlike Explorer’s links, are implemented by the file system and thus completely opaque to most applications.
Here is what I did in detail:
Move of MS Office’s MSOCache folder from C: to a different volume and replacing the original with a junction pointing to the new location:
robocopy /move /e c:\MSOCache "e:\Backup From Vista\MSOCache"
mklink /j c:\MSOCache "e:\Backup From Vista\MSOCache"
Yield: 655 MB. Now free: 34.55 GB.
Move of VMware Workstation’s pkg folder from C: to a different volume and replacing the original with a junction pointing to the new location:
robocopy /move /e "c:\Program Files\VMware\VMware Workstation\pkg" "e:\Backup From Vista\Program Files\VMware\VMware Workstation\pkg"
mklink /j "c:\Program Files\VMware\VMware Workstation\pkg" "e:\Backup From Vista\Program Files\VMware\VMware Workstation\pkg"
Yield: 640 MB. Now free: 35.19 GB.
Move of Visual Studio’s Windows CE folder from C: to a different volume and replacing the original with a junction pointing to the new location:
robocopy /move /e "c:\Program Files\Microsoft Visual Studio 9.0\VC\ce" "e:\Backup From Vista\Program Files\Microsoft Visual Studio 9.0\VC\ce"
mklink /j "c:\Program Files\Microsoft Visual Studio 9.0\VC\ce" "e:\Backup From Vista\Program Files\Microsoft Visual Studio 9.0\VC\ce"
Yield: 590 MB. Now free: 35.78 GB.
Move of the MSDN library folder from C: to a different volume and replacing the original with a junction pointing to the new location:
robocopy /move /e "c:\Program Files\MSDN\MSDN9.0" "e:\Backup From Vista\Program Files\MSDN\MSDN9.0"
mklink /j "c:\Program Files\MSDN\MSDN9.0" "e:\Backup From Vista\Program Files\MSDN\MSDN9.0"
Yield: 540 MB. Now free: 36.32 GB.
Move of the Windows ‘Installer’ folder from C: to a different volume and replacing the original with a junction pointing to the new location:
robocopy /move /e "c:\Windows\Installer" "e:\Backup From Vista\Windows\Installer"
mklink /j "c:\Windows\Installer" "e:\Backup From Vista\Windows\Installer"
Yield: 1,550 MB. Now free: 37.87 GB.
Move of the Windows driver store from C: to a different volume and replacing the original with a junction pointing to the new location:
robocopy /move /e c:\Windows\System32\DriverStore\FileRepository "e:\Backup From Vista\Windows\System32\DriverStore\FileRepository"
Manual step: Take ownership of the DriverStore folder and temporarily allow the administrators to create folders
mklink /j c:\Windows\System32\DriverStore\FileRepository "e:\Backup From Vista\Windows\System32\DriverStore\FileRepository"
Manual step: Restore permissions to their original state before taking ownership
Yield: 1,520 MB. Now free: 39.39 GB.
Final Steps
As a last cleanup step I ran “Disk Cleanup” which mainly removed the hibernation file. Yield: 3 GB. Now free: 42.4 GB. Along with the page file, which would be recycled by Windows 7, I had roughly 45 GB available. I reckoned that would be enough.
As a final preparatory step I defragmented the C: drive to create larger contiguous blocks of free clusters.
In the next article I will describe how to install Windows 7 x64 into a VHD located on a 32-bit Vista partition. Hint: The by now well-known method of booting the Windows 7 DVD and choosing “Windows Repair” does not work in this scenario because the x64 installation DVD does not allow repairing 32-bit installations.








Comments