This is a followup to an
older journal post.
I decided to finally do something and got me a 1TB WD Blue.
I knew I didn't want to lose several days of work doing a clean Windows install followed by hunting down drivers and installing all the stuff I already had, so I decided to take a different route - cloning the old drive into the new one.
I looked into the suggestions posted and also had a look out there in the vastness of the internet. It looked like dd was an easy enough option.
I borrowed my dad's desktop and plugged both drives to it (and unplugged his because it didn't have any more SATA cables). Booted up a Linux Mint live disc and thought, why not use GParted? So that's what I did instead. I copied all the partitions into the new drive with GParted, set the same boot flags, put the disk back in the laptop and... nothing. A measly blinking cursor welcomed me.
Five hours of messing with it later, turns out it was failing because I didn't copy the MBR. So I copied it using dd and NOW I FINALLY HAVE A WORKING DRIVE.
So if anybody finds themselves in need of doing this too*, here's a summary of the process:
1. Plug both drives into the same computer
2. If said computer doesn't have Linux on it already, boot a live disc.
3. Run GParted, triple check which drive is your original drive and which drive is your target drive.
4. Copy every single partition from the original drive into the new drive.
5. Make sure the boot flag is set in the exact same partition (and any other flags the original drive may have). This still won't boot yet because the MBR hasn't been copied.
6. The MBR is located at the first 512 bytes of the drive. Assuming your original drive is /dev/sda and your target drive is /dev/sdb (otherwise replace accordingly), fire up the console and copy it with this command:
dd if=/dev/sda of=/dev/sdb bs=512 count=17. Put the new drive back in the target computer and leave the old drive in the back of a drawer until the end of time.
After this I only booted up Windows from the new drive and created a new partition in the unused space. Now the most I have to do is move some files over to balance the free space. The great thing is that the new drive is a lot quieter than the old one! Noise drives me mad.
As a side bonus, I now have a complete backup of the entirety of my files on this computer including Windows up until today.
I may also move my Steam installation to the other partition. Haven't decided yet.
*I'm also writing it here to save myself a future search.
If you are gonna go the DD way and especially if you have HDD's involved set some dd flags to avoid the eventual read errors that will occur.
Example:
dd if=/dev/sda of=/dev/sdb conv=sync,noerror
Sync - if a read error is encountered due to bad blocks it will pad the empty space with zeroes instead of truncating and leaving inconsistencies.
Noerror - won't quit if an error is encountered.
Depending on the age of the hard drive there will be some errors (bad blocks) and unless its spitting them out like crazy can be safely ignored.
I looked all over GParted but there didn't seem to be a more automated way. Copying and pasting seemed to work except for the flags.
As for dd, I only had to copy the one sector - the MBR. So as far as I know I don't need to worry about it skipping sectors.
Careful with the -w option.
Yeah if you got a error in the MBR you probably already know about it
Since I copied the entirety of my drive into a larger drive and there was a lot of unused space left over, I created an additional partition to take up that remaining space. I've been moving about half my files to that one to even out the used/free space.
For those with OCD about the moved files not keeping their original created/modified dates, you can use the robocopy utility from the command prompt which will do just that. (Well- copy. You'll have to manually delete the original copies)