gaming laptop upgrade I: cloning SDD drive to 1TB NVME

I purchased my gaming laptop (.ca) in a hurry, at a time when many others were buying theirs, and was unable to get all that I wanted. Compromises had to be made. But this past December, I took the plunge and upgraded the memory and the hard drive (which was already quite fast, but a little too small).

the HP Pavilion 15z-ec0xxxca motherboard viewAs of this writing, the memory is still in the mail. Let’s start with exposing the mobo, which can be found in numerous YouTube videos, this HP Pavilion Gaming laptop being quite popular.

The existing storage device was a 256GB NVMe PCIe SSD, which was quite fast, but not large enough. Normally, one simply buys a regular SATA SSD, such as the Samsung SSD 860 EVO 2TB (.ca), or the 4TB version (.ca), replacing the dummy drive that can be seen in the right margin of the motherboard photo, but I decided instead for another NVMe drive, the top of the line 970 EVO Plus when I happened upon a sale at its lowest price ever.

The drive I bought might actually be faster than my laptop can use, but that’s not a bad thing. A secondary issue is that the metallic bracket holding the drive in the photo did not come off easily. Maybe it’s part of the drive, maybe not – I did not want to risk it.

I didn’t bother with an enclosure, though I might buy one later. To transfer my data, I thus had to clone / backup my drive to another storage device, replace the drives, then restore the data back to the new drive. While there are a number of commercial solutions, I feared that they weren’t good enough or might allow me to backup yet require payment for the restore, which I wasn’t looking forward to, so I chose instead a free and open source project, Clonezilla. Other people swear by Easeus Todo Backup, Acronis TrueImage, MiniTool Partition Wizard, DriveImage XML, Paragon Backup, NIUBI Partition Editor Free or Macrium Reflect. Most of these install at least 2 services – e.g., MiniTool has MTSchedulerService and MTAgentService and an update checker for startup.


I had forgotten I already had it on one of my USB drives, so I downloaded again (cl-dl), and used sudo dd if=bla.iso of=/dev/sdb bs=1024k status=progress to burn it to my drive. Unless one has a 3-400MB USB key, there will be empty non-partitioned space left, so to make it usable I created a FAT32 partition on it in Windows. Though I used Linux to burn the image, one can also do so in Windows using Rufus or Balena Etcher.

I downloaded first the Debian version, and that didn’t work, so I tried the Ubuntu “alternative” version, and that was fine, or groovy, to be exact. I then pressed Esc, followed by F9 to get into my BIOS boot menu, picked the USB drive, got 4 warnings, chose the defaults mostly (it was appealing to copy the whole thing to RAM but I didn’t want to wait), and then once it started I picked device-image. Since I had my USB storage for the image connected locally, I picked local_dev. I then had to choose between savedisk and saveparts.

On my original (source) drive, I had several partitions:

  1. 260MB EFI System Partition
  2. Windows (C:) 91.23 GB NTFS
  3. 146.48GB RAW (Veracrypt’d data)
  4. 500MB Recovery Partition

Back in the day, due to MS-DOS legacy decisions, you could only have 4 primary partitions on an MBR partition table, and additional partitions on a logical drive, but UEFI / GPT bumped that up to 128.

    I wanted to restore the Veracrypt partition last on the disk, to avoid having to deal with two Windows partitions, but that didn’t work as planned, unfortunately. Choosing saveparts with a few extra options, such as saving the MBR code worked on the save part, but failed at restore, so I went through it again, this time choosing savedisk. I left it overnight, then, the next evening, I switched the SDDs, booted again from the USB key with Clonezilla, then restored using restoredisk and – boom! – it worked.

    There are numerous video tutorials on YouTube, (apart from Clonezilla’s own documentation, which didn’t answer my questions), and one of the latest is Clone Any System (14:08). One has also the option of doing a fresh Windows install – this optimization guide can help (uses msmg-tk, ame-nfo and sdi).

    To move or change the Windows RE image, use reagentc /setreimage /? (msd-rgntc).

    The system booted up without a hitch and I ended up with over 600 GB of free space, which I promptly partitioned with diskmgmt.msc (it’s called something else these days) into NTFS. I also left about 200 GB unpartitioned at the end of the drive, in the hope of moving the Restore and Veracrypt partitions to the very end of the drive, so that I can expand the C:/ or Windows one. The old Defrag used to call a similar though different process “consolidating free space”.


    With my system fully restored and working, I proceeded to move some stuff from my C: Windows partition to the new one. There wasn’t much data, as that was mostly on the Veracrypt partition, but a number of large apps might have to be uninstalled and re-installed to E: after having changed the default “Program Files” folder, as NOT suggested by ms-progfiles; the key is HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion and the downside is that updates may fail to install to the existing programs that had already been installed in C:\Program Files. Perhaps I will leave it as is and only change it before installing a new one. Ideally, I should be able to move the Recovery & Veracrypt partitions to the end of the drive and have one single contiguous Windows C: partition – to be done later (part-*).

    To force Windows to take notice of the change without restarting, open Task Manager and in the Processes tab right-click on explorer.exe and select Restart.

    One can also “change where new content is saved” from Settings –> System –> Storage, which modifies “new” apps, documents, music, photos, videos and offline maps.

    Finally, to move the WSL installation – kali-linux in my case – I used the .ps1 script from move-wsl, but first I “backed it up” with

    wsl.exe --export kali-linux <Tar-FileName>

    followed by

    wsl.exe --import kali-linux <Folder-To-Install> <Tar-FileName>

    Instead of that last –import step, I used the aforementioned ps1 script which did a pretty good job. I had to kill my –s –sl kex, and then found that the default user had been switched to root. To fix it, I created /etc/wsl.conf. and added to it



    To exit kali I had to issue wsl -t kali-linux.

    My ext4.vhdx file has a size of 3672064 KB (I have a few things installed) and now I can start to add more kali-metas, such as kali-linux-default (everything). I thus managed to free about 26 GB on my main C: drive

    Next, I focused on scoop, which I had previously installed as I felt that its portability will make moving it to a new drive easier. Unfortunately, it seems that I will have to uninstall (scoop uninstall scoop), set a variable, then re-install. Scoop was supposed to be at ~\appdata\local\scoop, but mine was just ~\scoop so here are the steps to take (AussieLuke):

    1. I copied the whole directory tree to the new drive
    2. scoop uninstall scoop – left behind empty directory
    3. Assuming the target directory is e:\scoop, in a PowerShell command console, run:
    4. $env:SCOOP='E:\scoop'
      iwr -useb | iex
    5. Move directory from backup to new

    The installed apps were 7zip, adb, cowsay, dark, git, lessmsi, python, scoop and scrcpy, taking altogether 1.17GB (scp-sowhat).

    Let’s see if I can keep it this way for a while..


    In anticipation of the memory sticks, I will install a few benchmarking programs to see what difference the new memory will make (last visited 2018). I haven’t gone through the exercises above to “strip down” Windows to bare metal, so the results are to be considered for regular usage. The goal is not to get the best score but rather to measure changes in performance brought on my different hardware changes – on regular use.

    In summary, while the tests were running, I had at least one Chromium browser window open with between one and four tabs and several extensions, Windows Explorer, OLW, a password manager, One Drive, at least one USB3 connected external HDD, a mouse, Microsoft Defender, Veracrypt with at least one drive mounted, etc

    I haven't seen much use in Samsung Magician, but nonetheless, ran its benchmark, getting 3539 MB/s read, 3267 write, 228027 IOPS read, 177246 write.

    A better known and used measure of SDD or HDD performance is CrystalMark.
    CrystalDiskMark 8.0.0 x64 (C) 2007-2020 hiyohiyo
                                      Crystal Dew World:
    * MB/s = 1,000,000 bytes/s [SATA/600 = 600,000,000 bytes/s]
    * KB = 1000 bytes, KiB = 1024 bytes
      SEQ    1MiB (Q=  8, T= 1):  3007.276 MB/s [   2868.0 IOPS] <  2786.57 us>
      SEQ  128KiB (Q= 32, T= 1):  3238.443 MB/s [  24707.4 IOPS] <  1293.69 us>
      RND    4KiB (Q= 32, T=16):  1680.686 MB/s [ 410323.7 IOPS] <  1200.98 us>
      RND    4KiB (Q=  1, T= 1):    46.377 MB/s [  11322.5 IOPS] <    87.85 us>
      SEQ    1MiB (Q=  8, T= 1):  3248.895 MB/s [   3098.4 IOPS] <  2575.72 us>
      SEQ  128KiB (Q= 32, T= 1):  3208.657 MB/s [  24480.1 IOPS] <  1305.12 us>
      RND    4KiB (Q= 32, T=16):   887.846 MB/s [ 216759.3 IOPS] <  2280.44 us>
      RND    4KiB (Q=  1, T= 1):   130.055 MB/s [  31751.7 IOPS] <    31.19 us>
    Profile: Default
       Test: 1 GiB (x5) [C: 72% (66/91GiB)]
       Mode: [Admin]
       Time: Measure 5 sec / Interval 5 sec 
       Date: 2021/01/04 17:08:58
         OS: Windows 10  [10.0 Build 19042] (x64)

    I have an image for the results above, but the text is sufficient.

    UserBenchmark yielded several results, ranging from44.5% for the RAM, to 68% for the CPU to 312.2% for the NVMe drive. 

    **CPU**|[AMD Ryzen 5 3550H]68%
    **SSD**|[Samsung 970 Evo Plus NVMe PCIe M.2 1TB]312.2%
    **HDD**|[Seagate Expansion 4TB]41.5%
    **RAM**|[Hynix HMA81GS6DJR8N-VK 1x8GB]44.5%
    **MBD**|[HP Pavilion Gaming Laptop 15-ec0xxx]

    This was quite interesting, simple and detailed.

    7zip’s benchmark reports a “total rating” of 702%, with 3295 MIPS Rating/Usage and 23705 MIPS Rating.

    I had fired up 7zip’s benchmark from a portable install on my encrypted drive.

    3Dmark Time Spy was 2209 (gr 2089, CPU 3281), Cinebench R23 showed 4137 multicore and 903 single with 4.58 ratio, while Novabench yielded 1991 (CPU: 922, RAM: 189, GPU: 627, Disk: 253). Find more results to compare at cpu-monkey

    pcgamebenchmark results based on entered data rather than automated discovery Though I’m not a gamer, and plan to use it mostly for video editing, I was curious what games can this laptop play, and found the 53% score above by merely entering the "best guess" values, without running their ID app.

    After having gone through the tests, I decided to go through my services and stop / disable a few, after creating a restore point..

    1. HP Analytics service – this was running and Automatic, but was criticized in the past (PCmag, CW, gH)
    2. Futuremark SystemInfo Service – not running benchmark all the time
    3. Novabench Service – as above
    4. Connected User Experiences and Telemetry – spyware
    5. AarSvc_5201d – IoT, unnecessary
    6. Bonjour (was running, automatic)
    7. HP App Helper HSA S/ CASL Framework S/ Comm Recovery / Omen HSA S/ System Info HSA S (TBR)
    8. Two Brave services (don’t use that browser so much)
    9. Payments and NFC/SE Manager (don’t have NFC); I don’t use biometrics or bitlocker either, but I feared it may interfere with other services

    Some advice on HP bloatware can be found at coolblue, while a general debloater is on GitHub.

    I plan to repeat the benchmark tests once I get the memory chips.

    Sources / More info: move-wsl, so-mvwsl, ms-progfiles, kali-metas, smsng-mgcn, cl-dl, msmg-tk, sdi, ame-nfo, tr-bnchmrk, ms-decrap, ms-how2, ms-userecpart, esus-mvprt, gh-msfix, hddt-how2 2, msd-rgntc, AussieLuke, scp-sowhat


    Popular posts from this blog