Booting from an NVME SSD on an older PC using Clover

Back in October when I set up my new Ryzen PC, I thought it might be good to get an NVME SSD for the older desktop as well – I’d pinched all the drives from it for the new PC, and I didn’t want to be stuck using my old, slow HDD. NVME SSDs were quite cheap at the time, so I got myself a second hand 500GB Samsung OEM one commonly found in laptops.

However, there was a problem. The old PC (an Alienware X51 R2) didn’t have a M.2 slot to accommodate an NVME drive, which is common on systems of that age (circa late 2013). Fortunately, there is a way to get these super-fast storage devices working on older desktop PCs (unfortunately this won’t work on laptops).

This will work for booting both Windows and Linux, on systems with either BIOS or EFI/UEFI firmware. Similar steps can be followed for rEFInd, but that will only boot EFI/UEFI-based systems, whereas Clover can boot both BIOS and EFI/UEFI systems. You’ll see reference to rEFInd in the comments, but this is because I somehow got confused and thought I was using rEFInd instead of Clover. The post has since been updated.

M.2 and PCI Express

So first I should point out that some M.2 drives actually use SATA, but I wasn’t interested in those as I could just connect a SATA SSD. I was really interested in the PCI Express/PCIe drives. Fortunately, any recent desktop will use PCIe for the graphics card, and my old PC was no exception. If you’re using a standard ATX motherboard, you may well have multiple PCIe slots, but in my case I had to ditch the graphics card, which was an acceptable compromise for me because I wasn’t using it anyway.

In order to connect an M.2 drive to a PCIe slot, there are various adaptors available. In the end, I went for this one because it was cheap and it looked like I could boot from it – some other adaptors have caused problems with this.

Installing the adaptor

Installing the adaptor is usually pretty easy. I don’t have detailed steps for your system, but I can show you how it worked on mine. The process varies depending on your case, but it’s usually as simple as taking the side panel off your case, removing a blanking plate, and then inserting and screwing the card in. Note that you’ll need to insert your NVME SSD into the card first.

Unscrewing the side-panel screw
Unscrewing the side-panel screw
The inside of the case
The inside of the case
The adaptor card inserted into my GPU cage
The adaptor card inserted into my GPU cage. Yes, it looks a bit ridiculous XD
The access lights on the back of the PC
The access lights on the back of the PC with the card installed

Booting from the NVME SSD

If you want to boot from the drive, you’ll probably now encounter another problem: when you power on, your system won’t “see” the drive as a boot device.

There are a number of solutions to this problem, but the safest one (and the one I chose), is to install Clover to a USB stick, and have the PC use that as a boot menu. With the right driver, Clover can then detect your new SSD and boot from it. This sounds a bit complicated, but it’s easy to set up. You also only need a small USB stick – an old 512 MB or 1 GB stick will be just fine.

EDIT: You can download an image I made to then write to your USB stick with no further steps from https://www.hamishmb.com/files/Downloads/misc/Clover.img.7z. You may need 7-zip on Windows to extract this.

Clover can be downloaded from https://github.com/CloverHackyColor/CloverBootloader/releases, and Refind can be downloaded from http://www.rodsbooks.com/refind/getting.html. You want the ISO or “USB flash drive image” option, which you can then write to the disk using a tool like GNOME Disks (Linux), Rufus (Windows), or Etcher (all OSes).

Once written to your USB stick, you’re almost done but first you need to download the NVME driver. You can search for “NvmExpressDxe.efi”, or you can download this one that I used, and have tested to work.

Once you’ve got your driver, navigate to your USB drive and place it in

EFI -> CLOVER -> drivers -> BIOS

and

EFI -> CLOVER -> drivers -> UEFI

These locations are similar for rEFInd if I recall correctly.

Now you can safely eject your USB stick and boot the new machine from it. You may need to select the USB stick as a boot device in the firmware setup, or it may just boot from it automatically. You’ll be presented with a boot menu, and you should now install your operating system. Your installation media will appear in Clover’s boot menu.

Installing the OS

This varies depending on your setup, whether you’re installing Linux or Windows, or whether you’re cloning an existing disk. As such, I won’t really cover this here, but as long as you start the installation media from Clover (especially if you’re installing Windows), it should all work as usual. Once installed, your OS will appear in Clover’s boot menu, where you can boot it.

Summary

This has been a slightly longer post, but I hope it is useful. The steps involved can take a while, but they are quite simple to follow. As always, if you need me to clarify anything, let me know in the comments.

That’s it for now, but stay tuned!

Tagged , , , . Bookmark the permalink.

About Hamish McIntyre-Bhatty

I'm currently studying for a Computing and IT degree with the Open University, and am a software developer as well. I enjoy coding in Python, C++ (still learning), and Java. Having written 4 open-source programs (hosted on launchpad.net), set up my own website, and started volunteering at Wimborne Model Town to work on their river control system, I still find the time to enjoy cycling, acting, photography, and playing bass guitar. I go climbing every now and then as well. More recently, I wrote my first commercial program, Disk Verifier, and created a PSID Unlocker GUI for Parted Magic. I also create tutorial and other informative videos for Parted Magic LLC.

26 Responses to Booting from an NVME SSD on an older PC using Clover

  1. mark says:

    Hey Hamish,
    Thanks for the wonderful guide. I am currently stuck on the step of adding the .efi driver to the USB. Once I use Rufus to install the image of refind on my USB my windows 10 no longer recognizes the USB stick.

    I mounted the USB stick with MiniTool but it says I don’t have permission so I go to try and find the security tab but its missing.

    It seems like the refind image is corrupt but I double-check the download it seems fine. Do you have any guidance on how I could add the NVMe driver to the refind image?

    Thanks again,
    Mark

    • Hi Mark,

      I just tried this myself in Windows and I had the same issue. If I plug the USB stick into a Linux machine I can then access the files and folders inside, but Windows seems to try to prevent this.

      I think this can be resolved by either using the Windows Command Prompt, or using a Linux live disk. Are you comfortable with either of these options? If it comes to it, I could just upload an image of my USB stick that has the driver pre-installed.

  2. Mark says:

    Thanks for such a quick response! I have a basic understanding of Linux terminal. If you have an image of your USB stick that you can upload that would be amazing for me and it might also help other people that follow your guide in the future.

  3. Mark says:

    Thanks! I really appreciate all your help. This is perfect.

  4. Jon S says:

    Hello, Hamish;
    Great article, I like it, thanks, pal!
    Only 1 prob, I can’t find that “SupaGeek” adapter.
    Any ideas where I can find one?
    I’ll have to get it online because of where I live.
    Any advice greatly appreciated.

    • There’s an Amazon link in the blog post for it, but I imagine you can probably also buy it from other suppliers like Newegg.

      If you can’t get that particular adaptor where you live, there’s a good chance others will work too. Note that some people have had issues with Marvell ones I think, but that was a while back so they might all work fine now.

      Hope this helps.

  5. Michael says:

    Hi- the title and contents of this post suggest that you are using rEFInd, yet the file paths you give are for the Clover bootloader, and the .img file seems to only contain Clover bootloader-related files. Am I crazy, or does this not have anything to do with rEFInd?

  6. I think it’s worth bearing in mind that this is kind of old now. I downloaded from there, and this is what I got when I did, but the interface is different now. Either way, the method seems almost exactly the same for rEFInd

  7. R says:

    I have two motherboard from the 2014 era. Both seem to have BIOS/UEFI.
    (Asrock H77Pro4, MSI Z97 Gaming 7)

    I am attempting to boot them from x4 PCIE 3.0 slots with adapters, using 970 Samsung Evo’s.

    Should I download the nvme driver you have here, or the driver from the 970 product download page? (That one was an .exe, not an .efi)

    Also what’s your take on this method: https://linustechtips.com/topic/592133-howto-get-nvme-support-on-older-motherboards/

    It’s a different method, but he mentioned downloading both “nvme modules” and “SAMSUNG_M2_DXE module required to boot from XP941 / SM951 (AHCI) devices.” — Is that required for this method?

    • In order:

      #1 (which driver to use):

      I assume you’d want both, because the drive on the 970 product page, if an EXE file, will be a Windows driver. You’ll also need an EFI firmware driver (like the one here) to boot from that drive on a 2014 system (probably – I haven’t checked your exact motherboard).

      #2 (my opinion on the other article):

      Okay, from what I can tell, the other guide you’ve linked to is about flashing the new drivers on to the firmware so you don’t need a USB stick to boot. However, this carries inherent risks in that, if anything goes wrong your system may be rendered unrecoverable. If you flash corrupted or incompatible firmware, it may not be possible to re-flash with good firmware as the system might not boot again after that.

      Doing it the USB stick way doesn’t modify your firmware and is thus much less risky.

      #3 (what is the other driver for):

      I haven’t looked in detail at that driver, but seeing as it has AHCI in the name, I assume it must be for SATA-based M.2 drives as opposed to NVME/PCI Express ones like the 970. You probably don’t need the second (AHCI) driver, but including it should not be a problem.

      Hope this helps. Please note that I won’t take any responsibility for you damaging your drives or your motherboard if you flash modified firmware or lose data from following my guide (I did this with a clean SSD, and wouldn’t recommend without a backup on a drive that has already been in use).

      Hamish

  8. Mihai says:

    Hello Hamish,
    Good work with this tutorial. Some practical ideas:
    1. Your “Refind.img.7z” have an “NvmExpressDxe.efi” in EFI>CLOVER>drivers>UEFI – and work fine for UEFI boot;
    2. ONLY Intel 8X chipsets (Haswell) or newer support NVMe.
    Personally I used a Q85 MB with [email protected] gen. 2 PCIe slot.
    3. I prepared Refind-CLOVER stick using “Rufus-3.9p”.
    4. I prepared USB UEFI W10 kit using “Media creation tool”
    5. I instaled W10/64 UEFI directly from USB, first pass.
    6. After restart I used “Refind” USB to continue installation.
    7. My working ideea – use old SATA HDD from booting: Convert to GPT, create a FAT16, 122MiB partiton at the beginning, copy Refind here, set “boot+esd” flags, boot from HDD without any USB stick!
    Mihai

  9. A says:

    Hello again. What are your thoughts on using Clover instead of Refind? They seem to do the same thing, I also found a tutorial for clover than was almost the same as yours:

    Similar tutorial #1: https://www.tachytelic.net/2020/10/dell-poweredge-install-boot-pci-nvme/?amp=1

    Similar tutorial #2: https://www.win-raid.com/t2375f50-Guide-NVMe-boot-without-modding-your-UEFI-BIOS-Clover-EFI-bootloader-method.html

    • Both those tutorials look pretty solid as well, although one is for a server – the process may be slightly different.

      Clover also used to be used for Hackintosh stuff, but it’s more generally useful as a boot manager, as in this case.

      Both should work, although I’ve not used Refind for this process.

  10. A says:

    Thanks for the fast reply. One other thing.

    Although I have your pre-made image as a backup…I have been trying to create my own custom image file using the tools you recommended.

    The problem I am encountering is that once I create the bootable usb, I have no idea how to edit the files inside. (To add nvme driver, and to replace the theme with something more modern).

    In windows, the usb disappears from explorer. And on a Linux virtual machine I could view it but cannot add files to the usb.

    I’ll use your premade image file in the meantime, but I would love to add a new theme to it. Just can’t figure out how to make changes to any of these image files.

    • Ah yes, I remember this issue on Windows. For some reason Windows doesn’t recognise the file system. I forget why, but the easier solution is to use Linux.

      On Linux, you can’t add files as easily as usual because they are owned by the super user, IIRC. You may need to start your file manager as root/superuser with a command like:

      sudo -H

      Where is the name of your file manager. Probably one of “nautilus”, “nemo”, “pcmanfm”, “caja”, but depends on your distribution.

      Hope this helps,
      Hamish

  11. E says:

    Just wanted to say thank you very much for this guide. The Refind.img.7z worked like a charm.

  12. Mihai says:

    Almost all documentations link NVMe support with Intel Haswell 8X chipset – in reality is linked with UEFI version – I don’t remember exact number…
    Personally I used Refind (with UEFI driver and Puppy icon) – multiboot from SATA HDD (first disk, UEFI boot) .
    1. Win10 is full installed on NVME (Patriot 256GB M2 SSD with no name PCIe adapter) – 2nd disk.
    2. UEFI Frugal Bionic Puppy Linux is installed on SATA HDD (2nd partiton) (very useful for GParted and to write /modify Refind/Clover/Boot ). Both disks in GPT format.
    Clover is smarter and more complicated, is possible to boot from MBR and older boards… I don’t have one.

  13. Mihai says:

    Thank you for information.
    BTW I’ve tried Clover too. It works fine. My conclusion:
    If the old motherboard have a fast processor and an empty PCIe slot X4, X8 or X16, is OK to “move” Win10 from SATA HDD (SSD) to NVMe (3X faster minimum) and use Clover to boot from the old drive. All work like a charm, Windows, games and other OS multiboot.

  14. Roger Latapie says:

    Hi Hamish.

    Thank you so much for such an informative post. I have cloned my Win 10 OS to an NVMe drive but my older computer can only see the drive as storage.
    I tried to go the easy route that you included in your post and tried to download your file:https://www.hamishmb.com/files/Downloads/misc/Refind.img.7z.

    The link is no longer on your site. Could you make this available again ?.

    Thanks again for the very helpful information.

  15. Roger Latapie says:

    Hi Hamish.

    I left a reply earlier but it seems to have been deleted.
    I followed your instruction for a Win 10 USB Clover boot disk, but no matter what I do I get no result.
    My motherboard is an ASUS A88X Pro with an AMD A10 780K Processor. I have installed a WD Black SN750 1TB.
    I downloaded your file:https://www.hamishmb.com/files/Downloads/misc/Clover.img.7z and followed your instruction, but not having any luck.
    PS: if you were to supply this setup on a USB disk for Win 10 I would gladly pay for it. I have spent all day today trying to create the USB boot drive to be able to boot the NVMe which I have cloned my Win 10 OS onto.
    When you have t waste that amount of time you have to consider it it is really worth the trouble.
    I would have loved to have got this to work. Do you have any suggestions that may help.

    Regards

    Roger

Leave a Reply

Your email address will not be published. Required fields are marked *