The problem
My wife needs to use Microsoft Windows on her personal computer, for various volunteer work she does. She's using an ASUS ROG gaming PC, mostly because gaming PCs tend to offer the most bang for your buck, especially for models sold in retail stores (we got ours in Costco). Overall, the computer works well, although the RGB lighting sometimes generates raised eyebrows when attending a meeting in person.
Recently, however, we found that the computer was experiencing very bad performance. We ultimately found the cause (using two web browsers at the same time and a mis-configured ad-blocker, which was blocking parts of certain web apps we need to use). But that's not the reason for this article.
After getting the computer back running well, we decided that the internal storage is too small. This computer shipped with a 256GB SSD and a 1TB HDD. This made perfect sense at the time, when large SSDs were too expensive. But now, we want more storage, so it's time to get an upgrade.
Shopping for parts
After doing a bit of shopping, we decided to replace the built-in SSD with a 2TB Inland Performance Plus SSD from MicroCenter (a store we like to use for buying computer parts). We paid $130, which is a pretty good price for 2TB, and this model has an endurance rating of 1400 TBW - the highest endurance of all the 2TB SSDs listed at MicroCenter's web site.
In addition to the SSD, I needed to get a USB interface, because the computer does not appear to have a second M.2 socket. So I can't just install the second SSD, clone Windows to it, and be done. I need to connect one of the drives externally, so both can be used during the clone operation.
For this, I went with the Orico M.2 NVMe-USB enclosure. I have used this enclosure before, when I needed a portable USB SSD for my own personal use, so I selected it again for this task.
Disk cloning software
Finally, I needed disk-cloning software in order to move everything to the new SSDs. On the Mac platform, this is (or was, back when internal storage was easily replaceable) trivially easy - make a backup of the old SSD. Then install the new SSD, boot a macOS installer, and tell it to migrate everything from your backup.
But there doesn't seem to be any equivalent to this in the Windows world. Microsoft says you should store all your documents in OneDrive (buying as much storage as you might need), so it will just appear on your new system after a clean OS installation. Which is true, but that won't back up all your applications - you'd still need to reinstall all of them, which can take a long time.
There are many popular tools for cloning disks. I chose to go with the open source Clonezilla utility. Clonezilla is a Linux-based utility. The recommended use is to download a bootable system image, write it to a USB thumb drive, and then boot from that thumb drive. This ensures that you are running a compatible operating system and (more importantly) that Windows is not running, so there's no risk of something getting corrupted due to it being in use during the cloning process.
Because this computer is new enough to have EFI-based boot code on the motherboard, making the bootable Clonezilla system is as easy as formatting a thumb drive for a FAT file system (the one I bought came formatted that way) and unzipping the contents of the Clonezilla distribution to the root of this drive.
Cloning the SSD
So now it's time to clone the SSD. The procedure was pretty straightforward:
- Power-off the computer.
- Install the new SSD in its USB enclosure and connect it to a USB port.
- Connect the thumb drive with the bootable Clonezilla app to another USB port.
- Boot from the thumb drive.
For this computer, booting the thumb drive means first going into the ROM setup screen (press F2 during the power-on self-test), selecting the thumb drive as the primary boot device, save the configuration and reboot.
- Follow the on-screen prompts to clone the drive.
There are few different versions of the Clonezilla application you can run. I chose the default version, configured for cloning from one device to another. There are also options for running it from a RAM disk and/or for cloning to/from an image file. These options may be necessary if your computer doesn't have enough USB ports to keep the Clonezilla Linux volume and the source/destination devices all connected at the same time.
- When the cloning process completes (it took approximately 35 minutes), shutdown the system
Swap the SSDs and we're done? Or so I thought
At this point, the drive has been cloned. So open up the computer. Remove the old SSD. Install the new SSD, go back to the ROM setup screen (to make the new SSD the default boot device), and we're good to go.
Why didn't it just work?
I'm not 100% sure why cloning the drive didn't just work, but on closer inspection, the original SSD was a SATA device, not an NVMe device. I suspect the Windows installation didn't have any NVMe device drivers and therefore couldn't access the drive the way it wanted.
I suspect that had I manually installed an NVMe device driver (but I don't currently know how to do that) prior to cloning the system, it might have "just worked".
But since the Windows Startup Repair utility was (apparently) able to install this driver, along with its dependencies, it's not actually a big deal. At least now that I know what to expect and what to do about it.
Well, this is how it is supposed to go, but when I did, the system started to boot and then I got a "Blue screen" system error with a Stop Code of "INACCESSIBLE BOOT DEVICE". Great. Now what? Nobody told me that this could happen.
After a bit of web searching (from another computer), I found that Windows 11 includes a "Recovery Environment" that auto-launches after three boot failures. So I powered off/on, got to the same blue screen. Then powered off/on again and the system booted to the Recovery Environment.
Once in the Recovery Environment, I waded through the menus and found the Startup Repair utility. I ran the utility, and when the system next rebooted, I was greeted with the usual login screen. And there was much rejoicing
Final step, grow the Windows partition
At this point, the system is now up and running with the new SSD. But with the same partitions that existed on the original SSD. Which means they're only consuming 256 GB, and not the full 2TB of the new SSD.
Not a problem, Microsoft's Disk Management utility includes the ability to enlarge a partition. So I'll just go do that and .... No luck. You can't enlarge a partition, if there's another partition in the way. Immediately following my existing Windows system volume is an 800MB "Recovery" partition. I need to somehow move this to the end of the 2TB device in order to use the remaining space for the Windows system.
Fortunately, I found a great article describing exactly how to do that. I won't repeat its contents here, but I followed its instructions and it worked. A quick summary is:
- Using an administrator shell, disable the recovery agent.
- Still in the administrator shell, use the "DiskPart" utility to delete the recovery partition.
- Using Disk Manager, you can now enlarge the Window system partition. Don't fill all the remaining space. Leave some room (I left 1GB) for a new recovery partition.
- Still within Disk Manager, create and format an NTFS volume that will become the new recovery partition.
- Going back to the administrator shell (still in the DiskPart utility), set the new recovery partition's GPT ID and attributes flags to magic numbers (mentioned in the article) to specify that the new partition is meant to be used as a recovery partition. Exit the DiskPart utility.
- Finally, still in the administrator shell, re-enable the recovery agent.
And that's it. I rebooted the system and later power-cycled it just to feel comfortable that it's all working, but I suspect that may not actually be necessary.
Useful links
- Inland Performance Plus SSD 2TB capacity
- Orico M.2 NVMe-USB SSD Enclosure
- Clonezilla disk-cloning software
- theDXT: Moving Windows Recovery Partition Correctly .
No comments:
Post a Comment