Jump to content

Moving Windows 10 to a larger disk

jaseg

I recently upgraded my SSD to a larger one and I had some trouble moving my existing Windows installation from the old disk to the new one, so I thought I should write up what worked and what didn't. My goal was to transfer my windows installation from the old disk to the new one without re-installing it, and to keep the old disk in the system for extra storage.

 

My first idea was to simply create a new parittion layout on the large disk using Windowses own partition manager thingy. Great plan, but turns out you can't set the partition types in that interface? In the end I booted into a linux iso, set the partition types there, created the file systems, and copied over the files. I made sure to disable the EFI system partition on the old disk by setting its partition type to some garbage value, then rebooted. The Windows bootloader did not seem to appreciate suddenly waking up from a completely different disk, and the system rebooted once doing some "startup repair" or something. After that, Windows actually booted into its login screen and I was able to log in. Sadly, that is where this story ends since then explorer.exe (the taskbar-and-desktop-icons incarnation, not the folder window one) keep repeatedly crashing at a ~1 second cadence, making the system completely unusable. According to event viewer it was crashing somewhere deep in the guts of some core windows DLL. I suppose Windows got really confused by the partition layout and partition GPT GUIDs changing all of a sudden.

 

After that failed attempt, I again rebooted into my linux iso. Over there, I nuked the new disk's partition table, and simply dd'ed the old disks contents to the new disk (dd is a linux tool that just does a bit-exact copy of one disk to another). Then, to avoid Windows crapping itself over all partition GPT GUIDs suddenly being there twice, I went into a partition editor (gdisk) on the old disk, and used that to assign new random GUIDs to both the old disk and all of its partitions. Finally, to make extra extra sure that the amazing piece of technology that is the Windows bootloader isn't going to do anything stupid, I set all partition types to "Linux Filesystem" to keep Windows from messing with these partitions. I rebooted, and this time everything worked and I got into the Windows desktop. Finally, I only had to resize my old Windows partition using the windows partiton manager thingy, which worked like a charm.

 

TL;DR: In a linux iso, I used dd to directly image old disk to new disk, then used gparted to assign new GUIDs and garbage partition types to all partitions on the old disk. Windows booted from the new disk, and was happy.

Link to comment
Share on other sites

Link to post
Share on other sites

Good job. You learned that OSes want to be cloned and cannot be copy/pasted in the traditional sense. This is part of the reason why the advice generally culminates to "just do a clean install on the new drive".

Crystal: CPU: i7 7700K | Motherboard: Asus ROG Strix Z270F | RAM: GSkill 16 GB@3200MHz | GPU: Nvidia GTX 1080 Ti FE | Case: Corsair Crystal 570X (black) | PSU: EVGA Supernova G2 1000W | Monitor: Asus VG248QE 24"

Laptop: Dell XPS 13 9370 | CPU: i5 10510U | RAM: 16 GB

Server: CPU: i5 4690k | RAM: 16 GB | Case: Corsair Graphite 760T White | Storage: 19 TB

Link to comment
Share on other sites

Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×