How to move Windows from one hard drive to another?

I have a desktop PC with multiple SATA ports on the Motherboard, two USB drives, two SATA cables and two (internal) hard drives:

  • 1x 250 GB SATA HDD, contains C: with Windows installed.
  • 1x 500 GB SATA HDD, empty.

I want to move Windows from the smaller to the bigger hard drive to utilize the additional space.

The data on C: is not critical, I'm willing to go without a backup.

Ideally the process would not require additional devices and would involve open source software only.


Solution 1:

1. Prepare

  1. Download unetbootin, Clonezilla (.iso file) and GParted Live (.iso file).
  2. Use unetbootin to make a Clonezilla usb flash drive and one GParted live flash drive.
  3. Turn off the computer.

2. Clone

  1. Connect both drives to the motherboard.
  2. Connect the Clonezilla USB flash drive.
  3. Boot into Clonezilla (F11 for boot menu or DEL, F1, F2 or F12 for BIOS).
  4. Follow the process and pick device-device to clone the small local drive to the big local drive.
  5. Wait. Cloning took one hour from a 250 GB 54,000 rpm to a 500 GB 72,000 rpm drive in my case.
  6. Shut down and disconnect the flash drive.

3. Resize

  1. Connect the GParted Live flash drive and boot from it.
  2. Use defaults to launch GParted.
  3. In GParted, right-click the C: partition and resize it to fill the remaining space.
  4. Apply changes
  5. Shut down.

Now all you have to do is disconnect the small hard drive or make sure BIOS uses the larger one to boot and enjoy the new big C: partition.