Ubuntu installation on computers with Intel(R) RST enabled

Overview

Intel Rapid Storage Technology (RST) is a solution built into a range of Intel chipsets. On platforms that have RST support built and enabled in the computer’s BIOS, it allows users to group and manage multiple hard disks as single volumes. This functionality is known as the Redundant Array of Independent Disks (RAID).

In some usage scenarios, RAID offers various advantages over the use of several disks independently. RAID offers multiple configurations - levels - which focus on performance and redundancy.

A complete user guide is available through the official Intel documentation.

RST & Ubuntu installation

If you intend to install Ubuntu on a computer that supports RST functionality, you may need to make operational adjustments to your setup before you can proceed.

By default, the Ubuntu installer can detect certain RAID configurations, but it may not necessarily be able to access and use the hard disks grouped in them.

If the Ubuntu installer cannot detect the hard disks you need, then before you can install Ubuntu, you will need to turn off RST in the computer’s BIOS. The exact terminology and steps required to access and manage RST in BIOS often depend on the specific implementation by the platform vendor. For instance, Dell computers may have different settings from Lenovo or HP computers.

Furthermore, you may already have Windows installed on the computer that uses RST. If you disable RST in the BIOS or change the RST configuration, Windows may become unbootable, as it may no longer be able to find and use the hard disks.

Possible installation scenarios

Broadly, there are two main configurations you may encounter when you try to install Ubuntu on a computer that supports and uses RST:

  • RST used and enabled, no operating system installed.
  • RST used and enabled, Windows installed.

RST enabled, no operating system installed

Again, there are two possible scenarios here:

  • The Ubuntu installer correctly detects the hard disks and can use them. In this case, you can proceed normally.
  • The Ubuntu installer detects a conflict with RST and will notify the user that RST configuration is required.

The latter scenario can be resolved by either one of the two changes:

  • Turning RST off completely in BIOS.
  • Changing the storage controller protocol from RST to Advanced Host Controller Interface (AHCI).

AHCI is a relatively new specification that describes how computer storage is accessed and managed, and it supersedes several older specifications. It is primarily designed to utilize advanced features of hard drives connected via the Serial ATA (SATA) bus. Typically, these will be 2.5-in and 3.5-in hard disks, including both mechanical and SSD devices. The change from RST to AHCI may result in the loss of some of the advanced functionality that the RST module offers (for instance TRIM for SSD).

The exact terminology and steps required to access and manage controller type in BIOS often depend on the specific implementation by the platform vendor.

RST enabled, Windows installed

Similarly, there are two possible scenarios available:

  • The Ubuntu installer correctly detects the hard disks and can use them. In this case, you can proceed normally. You will need to create a side-by-side configuration for Windows and Ubuntu.
  • The Ubuntu installer detects a conflict with RST and will notify the user that RST configuration change is required. In this case, the change will affect the installed Windows operating system.

Caution: Please note that changes to storage configuration can be destructible and lead to irrecoverable loss of data! If you break a RAID setup, your data may no longer be accessible. Likewise, if you change the controller type from RST to AHCI, Windows may no longer be able to boot.

How to safely re-configure Windows to use AHCI

If the Ubuntu installer detects RST, and you have Windows installed on your system, there are several steps you need to do to allow Ubuntu to install side by side with Windows, without any loss of data and functionality.

  • Back your data up - any hard drive structure or configuration change, or installation of new operating systems on a hard drive that already contains data can potentially lead to a data loss. You need to make sure your personal data is safe. Even simply copying the important files to an external drive can minimize the risk of data loss.
  • Verify which controller mode is in use in Windows. You can do this through the Device Manager. If the controller mode is set to anything other than “Standard SATA AHCI Controller”, then you will need to make a change that allows Windows to boot safely in AHCI mode. This can be done using the Registry Editor.
  • Start Registry Editor, and navigate to:

    HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\iaStorV\

  • Here, in the right column, double-click on the Start key, and change its value to 0.
  • Next, double-click on the iaStorV entry in the left column to expand it, select the StartOverride entry, and then in the right column, change the value of the key 0 to 0.

  • Repeat this set of changes for the following path in the Registry Editor:

    HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\storahci\

Once this step is complete, reboot Windows and start your computer’s BIOS. Normally, BIOS is accessed by hitting the F2 or Del key during the early boot sequence. In the BIOS menu, change the hard disk controller type to AHCI. The exact terminology and steps required to access and manage controller type in BIOS often depend on the specific implementation by the platform vendor.

Exit BIOS, and let the system boot. Windows should load normally, and you can check the controller mode in the Device Manager. It should read: Standard SATA AHCI Controller.

Possible boot problems

After making the necessary changes to allow Ubuntu to install side by side with Windows, you may encounter a situation where Windows no longer boots. For instance, this could happen if you made the BIOS change without making the registry changes in Windows. In this case, you will need to recover your Windows.

You will most likely see a blue screen with a Stop code: INACCESSIBLE BOOT DEVICE.

Windows will attempt to restart and automatically diagnose and repair the boot-related problems, but it will most likely not be able to complete the task itself, and you will need to manually launch the command prompt from the recovery screen, and fix the issue.

On the screen that gives you the result of the Automatic Repair, click on Advanced Options. Under Choose an option, select Troubleshoot. Next, selected Advanced Options again. Finally, select Command Prompt.

Command prompt, diskpart and bcdedit

This will launch the Windows command prompt, where you can run commands to diagnose and repair problems, including boot-related issues. The first step is to run the disk partition tool to see and understand the disk layout.

On the command line, type diskpart. Next, you will need to display the list of volumes, make sure the volume that contains Windows is correctly assigned the letter C: (if it’s not, you will need to change this), make this volume active, and then run the boot repair command.

The full sequence of commands is as follows:

diskpart
list volume
select volume [number]
assign letter=[letter]

For example, a “wrong” volume may be assigned the letter C:, so you will need to select it first, assign it a different letter (e.g.: F: or H:), select the volume that contains Windows, and then assign it the letter C:.

Finally, exit the diskpart utility.

exit

Now, run the bcdedit repair command:

bcdedit /deletevalue {default} safeboot

If the above does not work, alternative commands you can run are:

bcdedit /deletevalue {current} safeboot
bcdedit /deletevalue safeboot

If this command completes successfully, exit the command prompt, the Windows recovery console will restart, and Windows should load normally, with the controller mode set to AHCI.

If Windows does not start correctly, you can then manually recreate the bootloader file.

Bcdboot

To this end, you will need to access either the System partition or the EFI partition on your computer. The Windows disk layout will typically include one of these two configurations:

  • A volume that contains Windows (C:) and a small hidden partition, usually 100MB in size called System partition, formatted as NTFS. It contains the files needed to start (boot) Windows, as well as recovery tools to help you diagnose and repair your system when it does not start correctly.
  • On UEFI-powered computers, a volume that contains Windows (C:) and a boot partition (also called EFI), typically 256-512MB in size, formatted as FAT32. This partition will contain the files needed to start (boot) Windows.

You will need to access the partition to make the necessary changes. If you have already run the diskpart utility, you do not need to do anything at this point, you only need to check the letter that is assigned to this partition (e.g.: letter F:).

Switch to the boot partition, move the existing boot file aside, and then create a new one. The sequence of commands to do this is as follows (assuming letter F: for the boot partition):

F:
cd boot
ren BCD BCD.bak
bcdboot c:\windows /l en-us /s f: /f ALL

The bcdboot command will initialize the system partition by using BCD files from the C:\Windows folder, use the en-us locale (/l en-us), target the system partition assigned letter F: (/s option), and create boot files both for UEFI and BIOS (/f ALL option).

windows-10-boot-fix

Once this command completes, reboot. Windows should start normally. You can now re-launch the Ubuntu installer and finish the side-by-side setup of the two operating systems.

3 Likes

The following section doesn’t match the picture.

  • Start Registry Editor, and navigate to:

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\iaStorAV\

It’s supposed to be iaStorV, and iaStorAV has no key / values or child under the tree.

I can also confirm that this method of switching to AHCI doesn’t work in my case.

I’m using Alienware m15 R2 with two SSDs:
PC601 NVMe SK hynix 512GB

Configured at purchase with Intel Precision Raid, RAID0 (Stripe).

Every time I change it to AHCI, even after registry editing and booting in safe mode, the laptop just refused to boot.

Does 2 SSDs always have to be configured in RAID mode? Then why Ubuntu is not able to support Intel RST driver?

NVME drives are not backward compatible with AHCI. BTW, when you say, configured at purchase, what do you mean by that?

Yes, thank you, this is a typo.

I purchased the laptop pre-installed with Windows 10, and the SSDs are already configured as RAID.

hello,
I cant seem to do the

I created a drive and I’m using the UEFI-powered computer.
please could you help?

Hi there!
I’ve been trying to follow your guide, but in the BIOS menu, I can’t change the hard disk controller type to AHCI.
I’ve been trying to install ubuntu in my laptop, but intel optane has been giving me a lot of trouble. I’ve tried following this guide: https://www.youtube.com/watch?v=2uXgbF3P2F8 but got stuck at changing to AHCI. Tried to install it anyways but it prompted me that I’ve got RST enabled

The model is: hp laptop model 14-cf0005la
Do you know of any solutions? I can try taking pictures of the BIOS but obviously they won’t be quite pretty.
Thanks!

@jessearmand Do you know how the RAID was configured? Did you (or whoever set it up) need to load drivers from a thumb drive, or something similar? BTW, if you break RAID0 (stripe), you might not necessarily be able to use the data, as it is spread over two devices.

@mohmeeee Can you please provide more information? If the command does not run or throws an error, it means you’re probably not on the right volume, right folder, or perhaps there is no such file there.

@saroxan Unfortunately, I don’t have any immediate workaround that I can suggest. Every vendor has its own implementation, and sometimes, laptops have limited sets of options available in their BIOS menus. If that is so, you are out of luck. One thing that can sometimes help is to upgrade the BIOS to a new version if available. And please make sure you have a data backup in place.

@igorljubuncic Thanks, it does seem like I’m out of luck. I’ve downloaded the latest BIOS updates, and tried basically everything I could. Thanks again, I think I’ll have to try with a VM.

Hi,
I have fixed the error

@igorljubuncic I suppose it’s configured with Intel Rapid Storage Technology:

https://downloadcenter.intel.com/download/29339/Intel-Rapid-Storage-Technology-Intel-RST-User-Interface-and-Driver

I can see the RAID configuration is there, exactly as what is displayed in the BIOS:

Now, I’m curious. Is this the only way to configure 2 NVMe SSDs? or is there a better way? How does Ubuntu storage controller works?

@jessearmand Typically, when you configure RAID, this is done in BIOS, or you manually load a driver during the operating system installation. The user interface part allows you to see what has been configured, and perhaps make some adjustments, but it relies on the driver in the operating system, and how the operating system (Windows in this case) supports the underlying platform capabilities.

When you ask about the ways to configure the SSD - it really depends what you need. For example, stripe configuration in this case gives you a single “larger” disk to work with, and perhaps some data read performance improvement. But overall, in most cases NMVe drives are fast enough that you will not be bottlenecked on the disk operations to begin with. I can’t really think of a typical desktop workload that would push the disk bus to the maximum with NVMe drives.

Ubuntu - and for that matter - any operating system really - work the same way. If you have the needed driver functionality loaded into memory (either it’s part of the kernel or an additional module), then the operating system can make direct use of storage commands, which can lead to optimized usage (performance, data integrity, etc).

For instance, you could use a generic Windows driver for SSD, or you could use the drivers provided by the vendor. In some cases, the latter may give you additional functionality - this isn’t necessarily something you will see as a user, or interact directly. We’re talking about the storage functions.

Now, Ubuntu:

Depending on the type of hardware you have, and the filesystem configuration in use, Ubuntu will use different drivers to interface with the storage. You can check with drivers are loaded into memory with the lsmod command.

Then for instance, you will see drivers like this (just an example):

ahci - which is sata low level driver
dm_crypt - module for encryption/decryption (say if you use it)

Some drivers are necessarily loaded early in the boot process - these are bundled in the initrd file. You can check what’s contained inside one by extracting it.

Copy a file from under /boot, say:
unmkinitramfs /boot/initrd.img-something ~/initrd/

Then, change into the ~/initrd/ and see what’s contained there. You will see a nice tree of drivers, grouped by their functionality - crypto, fs, virt, drivers/ata, drivers/video, drivers/md (this is raid), drivers/usb, etc.

So this can give you a rough indication of what you can expect when you boot Ubuntu on a piece of hardware. The drivers are of course loaded in the right sequence - from low-level drivers, then filesystem, etc.

I hope this gives you a little more understanding of what goes on under the hood.

Hello,
when, in the BIOS, I set the hard disk controller type to ACHI the BIOS tells me this change will delete everything in the drivers, will this compromise windows or just my files?

@mbett It is impossible to know from just that message. I would assume the worst and make sure you have the necessary data backup - personal files and a full system image.

Then, in my case it will best to clone my storage before I reinstall everything. As I don’t see any clear way for Ubuntu to read the existing RAID configuration. Then it will probably be better to just use 2 separate SSDs as separate disks.

Also, what does AHCI implies here in case of NVMe, I’m still not clear on this part. Why does the BIOS is using SATA, while it’s a PCIe interface. It puzzled me that OEM vendors have no information or have not updated their default installation method.

I am trying to follow this guide that you have kindly provided. I have gotten as far as diskpart.

I did “list volume” and found that the windows partition is volume 0 and already has the letter C assigned to it.

So I did “select volume 0” and then “activate”.

It seems that DISKPART does not know the “activate” command. It has the command “active”, but when I try this, I get the response “The selected disk is not a fixed MBR disk. The ACTIVE command can only be used on fixed MBR disks.”

I am unsure how to proceed. Any help would be much appreciated.

@jessearmand I really can’t say anything about specific implementations by vendors. Personally, I would use separate disks, and have a system imaging and data backup setup in place.