Hello everyone (Especially Microsoft technical support),
I just replaced my original 256 GB SSD with a new 1TB SSD with PCIe 4.0 connection. I have followed the extensive guide provided by Microsoft and everything has worked... terribly.
First of all, I have not found any information anywhere about the PCIe version of the Surface Pro 8, so I assumed (wrongly) that I could connect a PCIe 4.0 SSD without any problem, always knowing that in the worst case, it would work with PCIe 3.0 connection specifications (This was not the case).
Secondly, I thought that after changing the SSD it would be as easy as indicated in the guide. Remove the old one and insert the new one. Perform a disk cloning or do a fresh installation from scratch.
Nothing could be further from the truth. New installations are impossible to complete, errors related to the hard drive appear, which makes you suspect that the hard drive you bought is defective, and cloning, although it manages to boot Windows, lasts no more than 3 minutes until a blue screen appears and the system starts to restart. I'm not the first one with this problem. (Case 1, Case 2, Search in Windows Forums)
All this makes you suspect that you may have a problem with your SSD, since Microsoft's official instructions have no special information about the type of SSD you have, so after spending hours and hours reinstalling, cloning, reinstalling, cloning, testing, testing the SSD... Finally, you realize that the problem has nothing to do with the SSD.
So, you start browsing through different internet forums until you find that in order to use a PCIe 4.0 SSD, you have to modify the power usage settings (Page 2 of the link, lalaneta Reply), which ensures that IF YOU MANAGE TO BOOT WINDOWS, it remains stable (I don't know if a Windows update will put you back in the restart loop).
However, this solution only guarantees that when you manage to boot Windows, there are no errors. However, during boot, approximately 50% of the time, the boot system says it doesn't detect any operating system on the hard drive (It makes sense, the power management modifications have been made in Windows, once the OS has booted and not in the BIOS, since these options do not exist for the user).
I suppose the ultimate solution lies in Microsoft caring a bit about the users of the devices they sell and releasing a firmware update for the Surface that fixes these errors. We'll keep waiting... They know about this error at least since the end of 2021 and they did nothing.
I'm leaving the gathered information on how to solve it down below. Many thanks to the solution's author for dedicating their time to help us.
Solution by Lalaneta. Really grateful for his solution. It works great once windows boots. |
|
|
|
|
|
|
|
|
|
|
|
|
My install experience (without the following fix) is that after the installer copied the Windows files and rebooted, the machine will reboot unexpectedly shortly after (or during) the OOBE setup wizard.<br><br><br><br> I came up with a way to install Windows using the normal installer and avoid reboots during the installation process, this is done by modifying registry settings to apply the necessary changes before windows has finished the installation. Here's how:<br><br><ol><li><p data-prewrap="true">After Windows installer finishes copying files and initiating a reboot (the stage just before OOBE experience) <em>do not let it boot from the hard drive to finish the installation. </em>Instead of continuing the installation normally, boot again from the installation medium (long press volume up and power button to reach UEFI settings and change boot priority to installation USB)<br></p></li><li><p data-prewrap="true">Once the setup window appears again, press Shift+F10 to enter command prompt.<br></p></li><li><p data-prewrap="true">On command prompt use DISKPART to mount the partition where the Windows is to be installed (note the partition is already populated with Windows files and was created during the first stage of the install). For me, the partition is on disk0 partition3. In this example I'll mount the disk as drive letter T: using the following command sequence:</p><ol><li><p data-prewrap="true">select disk 0</p></li><li><p data-prewrap="true">select part 3</p></li><li><p data-prewrap="true">assign letter=T</p></li><li><p data-prewrap="true">exit<br></p></li></ol></li><li><p data-prewrap="true">Now load the registry hive from the offline Windows install using <em>reg load HKLM\OFFLINE T:\Windows\System32\config\SYSTEM<br></em></p></li><li><p data-prewrap="true">using the command prompt window, launch <em>regedit</em><strong><em> </em></strong>to modify registry settings to set AHCI Link Power Management - HIPM/DIPM to Active by default as follows:</p><pre><code>Windows Registry Editor Version 5.00</code></pre><pre><code>[HKEY_LOCAL_MACHINE\OFFLINE\ControlSet001\Control\Power\PowerSettings\0012ee47-9041-4b5d-9b77-535fba8b1442\0b2d69d7-a2a1-449c-9680-f91c70521c60]</code></pre><pre><code>"Attributes"=dword:00000002</code></pre><pre><code>[HKEY_LOCAL_MACHINE\OFFLINE\ControlSet001\Control\Power\PowerSettings\0012ee47-9041-4b5d-9b77-535fba8b1442\0b2d69d7-a2a1-449c-9680-f91c70521c60\DefaultPowerSchemeValues\381b4222-f694-41f0-9685-ff5bb260df2e]</code></pre><pre><code>"ACSettingIndex"=dword:00000000</code></pre><pre><code>"DCSettingIndex"=dword:00000000</code></pre><pre><code>[HKEY_LOCAL_MACHINE\OFFLINE\ControlSet001\Control\Power\User\PowerSchemes\381b4222-f694-41f0-9685-ff5bb260df2e\0012ee47-9041-4b5d-9b77-535fba8b1442\0b2d69d7-a2a1-449c-9680-f91c70521c60]</code></pre><pre><code>"DCSettingIndex"=dword:00000000</code></pre><pre><code>"ACSettingIndex"=dword:00000000</code></pre></li><li><p data-prewrap="true">In my experience, setting PCI Express Link State Power Management to Off is also required:<br></p><pre><code>Windows Registry Editor Version 5.00</code></pre><pre><code>[HKEY_LOCAL_MACHINE\OFFLINE\ControlSet001\Control\Power\PowerSettings\501a4d13-42af-4429-9fd1-a8218c268e20\ee12f906-d277-404b-b6da-e5fa1a576df5\DefaultPowerSchemeValues\381b4222-f694-41f0-9685-ff5bb260df2e]</code></pre><pre><code>"ACSettingIndex"=dword:00000000</code></pre><pre><code>"DCSettingIndex"=dword:00000000</code></pre><pre><code>"ProvAcSettingIndex"=dword:00000000</code></pre><pre><code>"ProvDcSettingIndex"=dword:00000000</code></pre></li><li><p data-prewrap="true">close the registry editor window and unload the offline hive using the command <em>reg unload HKLM\OFFLINE</em></p></li><li><p data-prewrap="true">Reboot and continue the installation from the hard disk as usual.</p></li></ol><br><br> -----------------------------<br><br><br><br> Since I am lazy, I scripted this process, so I will not have to type much manually. The patch is made of 4 files. The way I run it is after the first stage of the Windows installation, I'll boot again from the USB drive to the setup window, then launch command prompt, cd to the directory of the patch and run the batch file. Feel free to take a look at neta540/sn740_sp8_win11_install_patch (github.com) for details. I hope this helps some of you folks! |
|
|
|
|
|
|
|
|
|
|
|
|
Note 1:<br><br>I suggest that you make all changes before switching to the new SSD, as the system is stable with the original SSD. Then, clone the SSD to the new one with the appropriate configuration so that everything works directly. This way, you won't have to rush in fear of the system crashing with a blue screen, and it will be stable from the first boot. <br> <br> <br><br><br>Note2:<br><br>If you encounter a situation like mine, where you can't find HKEY_LOCAL_MACHINE*OFFLINE...* and you want to do it directly in the registry, the path is HKEY_LOCAL_MACHINE*SYSTEM...* (and the rest of the path is the same). <br> <br><br><br>Note3:<br><br>For those experiencing permission/errors when modifying the registry entries located at: <br><br><br><br> |
[HKEY_LOCAL_MACHINE\OFFLINE\ControlSet001\Control\Power\User\PowerSchemes\381b4222-f694-41f0-9685-ff5bb260df2e\0012ee47-9041-4b5d-9b77-535fba8b1442\0b2d69d7-a2a1-449c-9680-f91c70521c60]<br><br><br><br> "DCSettingIndex"=dword:00000000<br><br><br><br> "ACSettingIndex"=dword:00000000 |
<br> |
--- |
<br><br><br><br><br>I suggest that you modify these values by opening a terminal with execution permissions and changing these values with the following commands: <br><br><br><br> |
powercfg /SETDCVALUEINDEX 381b4222-f694-41f0-9685-ff5bb260df2e 0012ee47-9041-4b5d-9b77-535fba8b1442 0b2d69d7-a2a1-449c-9680-f91c70521c60 0 |
<br> |
--- |
<br><br><br> <br><br><br><br> |
powercfg /SETACVALUEINDEX 381b4222-f694-41f0-9685-ff5bb260df2e 0012ee47-9041-4b5d-9b77-535fba8b1442 0b2d69d7-a2a1-449c-9680-f91c70521c60 0 |
<br> |
--- |
|
--- |
|
|
|
|
|
|
|
|
|
|
|
|
I'm posting this post to gather information on how to fix this issue, and also to obtain an official response from Microsoft regarding the compatibility of the Surface Pro 8 with PCIe 4.0.
However, primarily, I'm posting it to officially know if they're going to seek an official solution to this problem, which I believe is significant enough for them to take action soon.