type to search

By: Asked

Fails to install GRUB on NVMe PCI Express SSD

I can not install the GRUB boot loader on a SSD with NVMe (Non-Volatile Memory Express). I try to install Debian 8.7.1 64 bit (debian-8.7.1-amd64-netinst.iso), but the installation program refuses to install GRUB. This means that I can not start/boot Debian when I reboot after the (failed) installation.

During install I get the following messages:

Continue without boot loader
No boot loader has been installed, either because you chose not to or because your specific architecture doesn’t support a boot loader yet. You will need to boot manually with the /vmlinuz kernel on partition /dev/nvme0n1p2 and root=/dev/nvme0n1p2 passed as a kernel argument.
Install the GRUB boot loader on a hard disk
An installation step failed. You can try to run the failing item again from the menu, or skip it and choose something else. The failing step is: Install the GRUB boot loader on a hard disk

I have searched the internet about the error, but I can not figure out if it is a showstopper or if there is a solution to this. On the internet, I have seen error reports (for Debian and Ubuntu) of GRUB boot loader failing to install on NVMe SSD’s connected to PCIe port (via for example M.2 interface on motherboard).

When I tried to install Debian on a regular HDD on SATA 3, then I had no problems, and Debian started up.


  • SSD with NVMe: Corsair Force MP500 M.2 240GB PCI Express 3.0 x4 (CSSD-F240GBMP500)
  • Motherboard: Gigabyte GA-X170-EXTREME ECC
  • CPU: Intel Xeon E3-1245 v5.




I booted the computer with the Debian install USB-memory-stick. In the Debuab GNU/Linux UEFI installer menu, I selected advanced options > graphical expert install. When I had the message that GRUB could not be installed, I ran a shell (from within the graphical expert install). This is what I wrote in the shell:

cd /target
mount --rbind /proc proc/
mount --rbind /sys sys/
mount --rbind /dev dev/
mount --rbind /run run/
chroot . /bin/bash

I got a root@XXX:/# prompt where I wrote:

apt-get update
apt-get install grub-efi-amd64

I quit the shell and finished the installation with the graphical expert install. Please note that, because I had already installed GRUB via the command line, I declined to install GRUB when asked by the graphical interface. I withdrew the USB-memory-stick and rebooted. Then I could log into Debian!!!

grub-efi-amd64 above should be replaced by grub-efi-amd32 for a 32-bit architeture. If one writes grub-efi-amd, then the correct architecture is chosen automatically.

It seems like the problem is solved!
or Cancel
You need to join Debian to complete this action, click here to do so.