type to search

Fails to install GRUB on NVMe PCI Express SSD

Asked by , Edited by Lakef

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.

or Cancel

1 answer




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

Your answer

You need to join Debian to complete this action, click here to do so.