How to shrink a Windows harddisk and migrate to SSD

I have been switching a lot of people from HDD (hard disk drives: spinning, magnetic disks) to SSD (solid state disk: silicon/flash-based) recently. It can breathe new life into an old PC/laptop, the HDD is almost invariably the slowest part of the system. SSD prices have come down a lot but they’re still quite a bit more expensive than HDDs.

Luckily, most people don’t have that much on their HDDs, and there is quite a lot of free space. For example, a business PC I upgraded recently had a 500GB HDD, and I was able to replace this with a 128GB SSD costing about £60, vs about £200-300 for a ~500GB SSD. There was only about 60GB of data on the disk.

From Windows Vista onwards, there is a “Shrink volume” option within Disk Management (diskmgmt.msc), which will reduce the size of a partition. If you can reduce the sixe of all the partitions down to less than the sixe of a smaller SSD, and still have a reasonable amount of free space, then you can save some money when you upgrade.

The trick is squashing the data up to the front of the disk. Windows tends to spread the data across the disk for various reasons, and the partition will only shrink down to where the last block of data is. Consider the following disk map:

disk-map-pre-compact

Notice the annoying little block of data right at the end of the disk? That is stopping me making the partition any smaller. Luckily, Windows 7 onwards logs which file is preventing the partition from shrinking any further. You can then find out which process has the file open (use the file handle search in Process Explorer – Ctrl-F or click the binoculars on the toolbar), and close it. If the process belongs to a service then it’s a good idea to stop the service via Service Management (services.msc). Then it’s just a case of going through the process again and again until the partition shrinks sufficiently.

Alternatively, download the evaluation of PerfectDisk (or just buy it!) – it has a handy “Prep for shrink” option, which will try and squash the used blocks up towards the front of the disk. Plus, if any blocks are marked as “excluded” you can double-click on them and see what files they contain. Then you can use Process Explorer to identify the processes, and close them, as above.

PerfectDisk can also move the MFT, which is sometimes at the end of the disk – use the boot time defrag option. Aside from the MFT, you might want to temporarily turn off the page file (and reboot). Another thing which seems to keep files locked open is the Windows Search service. On one machine I went through all the running services and stopping anything that wasn’t absolutely necessary. I can’t give a definitive list as this will vary somewhat from machine to machine.

If the HDD is smaller than a sensible SSD, say 80GB HDD going to a 128GB SSD, then you don’t need to worry about any of that. Just clone the HDD over to the SSD – I’ve had success with CloneZilla running from a USB stick. You’ll obviously need a machine with two disk interfaces, which might mean you also need a desktop PC if you’re upgrading a laptop.

If the HDD is bigger, CloneZilla will not like you very much, even if the partition sizes are smaller than the SSD. You can still use it though but you’ll need to do a startup repair to the Windows installation on the SSD after the clone using the Windows installation media or the machine won’t boot from the SSD. Or use Symantec Ghost to do the clone.

You’ll probably want to expand the partition to fill the available space on the SSD, and you might want to switch the disk controller to AHCI mode in the BIOS too, but make sure you enable AHCI in Windows first or it’ll blue screen when it next boots.

This entry was posted in Storage, Windows and tagged , , , , , , , , , , , . Bookmark the permalink.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s