Create a gist now

Instantly share code, notes, and snippets.

What would you like to do?
Switching between AHCI and RAID on the Dell XPS 15 (9560)

Switching between AHCI and RAID on the Dell XPS 15 (9560)

This guide likely applies to other models and, potentially, even laptops from other OEMs that have NVME drives. However, I've only tested this on my Dell XPS 15 (9560) with the OEM Windows installation from the Signature Edition model.

Switching from RAID to AHCI

Switching from RAID to AHCI is significantly simpler than switching from AHCI to RAID. All that's needed is a successful boot to Safe Mode.

  1. To set the default boot mode to Safe Mode, use msconfig.exe or open an admin cmd/PowerShell window and run:

    bcdedit /set '{current}' safeboot minimal
  2. Reboot and hit F2 to enter the BIOS.

  3. Change the SATA mode to AHCI.

  4. Save and reboot.

  5. After Windows successfully boots into Safe Mode, disable Safe Mode with msconfig.exe or open an admin cmd/PowerShell window and run:

    bcdedit /deletevalue '{current}' safeboot
  6. Reboot one last time. If you open the Device Manager, there should now be a Standard NVM Express Controller device under Storage Controllers.

Switching from AHCI to RAID

Switching from AHCI to RAID is complicated and involves fiddling with the registry so that the RAID controller exists in the PnP database. Make sure you have a backup of your installation before proceeding.

NOTE: I've tested this under the OEM Windows 10 installation only.

  1. Before starting, ensure that the Intel RST drivers from the Dell support page are installed.

  2. Download DevManView and extract the ZIP file. This will be used to find the registry keys for the RAID controller because Device Manager is not available in the Recovery/WinPE environment.

  3. Hold down shift and click the Reboot button in the start menu. This will bring up the Advanced Startup menu on the next boot.

  4. Hit F2 to enter the BIOS when the system reboots.

  5. Change the SATA mode to RAID.

  6. Save and reboot.

  7. When the Advanced Startup menu appears, select the Command Prompt. It may ask for a login.

  8. The Recovery/WinPE environment contains its own copy of the Intel RST drivers so it is possible to access the Windows installation in RAID mode. Run DevManView from the Command Prompt to get a list of all the devices. For example:

    C:\Users\chenxiaolong\Downloads\devmanview-x64\DevManView.exe
  9. Hit Ctrl + F and search for RAID. There should be a device named Intel Chipset SATA RAID Controller.

  10. Right click the device and click Open in RegEdit. It should open regedit.exe and nagivate to a path similar to the following:

    HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Enum\PCI\VEN_8086&DEV_282A&SUBSYS_07BE1028&REV_31\3&11583659&0&B8
    
  11. Open notepad.exe in the Command Prompt and copy/paste the value of ClassGUID from the registry. It will be needed later. In my case, the GUID was:

    {4d36e97b-e325-11ce-bfc1-08002be10318}
    
  12. Right click the key in the treeview and export it to a file named intel_raid_pnp.reg.

  13. Navigate to HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Class\@ClassGUID@\0000 where @ClassGUID@ is the ClassGUID value obtained in step 11.

  14. Right click the key in the treeview and export it to a file named intel_raid_class.reg.

  15. At this point, we have all the registry keys, taken from the Recovery environment, almost ready to be applied to the Windows installation. There are just a few changes that need to be made because the .inf file referenced may not match what's in the Windows installation.

  16. Load the SYSTEM registry hive from the Windows installation. In the treeview, click on HKEY_LOCAL_MACHINE and select File -> Load Hive....

  17. Select C:\Windows\system32\config\system and name the key INTEL_RAID_FIX.

  18. Nagivate to HKEY_LOCAL_MACHINE\SYSTEM\DriverDatabase\DriverPackages, find the key that begins with iastorac.inf_, and make a note of the (Default) value. This is the .inf file for the Intel RST driver in the Recovery environment. In my case, this was oem21.inf.

  19. Nagivate to HKEY_LOCAL_MACHINE\INTEL_RAID_FIX\DriverDatabase\DriverPackages, find the key that begins with iastorac.inf_, and make a note of the (Default) value. This is the .inf file for the Intel RST driver on the Windows installation. In my case, this was oem44.inf.

  20. Open both of the exported .reg files (intel_raid_pnp.reg and intel_raid_class.reg) and find and replace every instance of the following strings in both files:

  • \SYSTEM\ -> \INTEL_RAID_FIX\
  • Value from step 18 -> Value from step 19 (eg. oem21.inf -> oem44.inf in my case)
  1. Save and close the .reg files.

  2. The registry changes are now ready to be merged. In the File -> Open dialog of Notepad, right click each of the .reg files and click Merge.

  3. Navigate to the paths in steps 10 and 13, but change the location in the address bar from \SYSTEM\ to \INTEL_RAID_FIX\. Verify that the correct .inf file is being referenced in the values. If the values are incorrect, please follow the instructions carefully, starting from step 10 again.

  4. Navigate to HKEY_LOCAL_MACHINE\INTEL_RAID_FIX and select File -> Unload Hive....

  5. Set the default boot mode to Safe Mode by running the following command:

    bcdedit /set '{default}' safeboot minimal
  6. Close all of the windows and reboot. With any luck, Windows will successfully boot into Safe Mode.

  7. After Windows successfully boots into Safe Mode, disable Safe Mode with msconfig.exe or open an admin cmd/PowerShell window and run:

    bcdedit /deletevalue '{current}' safeboot
  8. Reboot one last time. If you open the Device Manager, there should now be an Intel Chipset SATA RAID Controller device under Storage Controllers.

  9. It may be worth reinstalling/updating Intel RST from the Dell support page to ensure that everything is in a consistent state.

@TestSmirk

This comment has been minimized.

Show comment Hide comment
@TestSmirk

TestSmirk Jan 3, 2018

hi have you test this script on your Xps?

hi have you test this script on your Xps?

@Firefishy

This comment has been minimized.

Show comment Hide comment
@Firefishy

Firefishy May 17, 2018

Thank you. 👍

Thank you. 👍

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment