(SOLVED) Installing Linux on an M.2 SSD

I've got a new M.2 SSD. I'm trying to install Grub with Arch Linux on it.

In the UEFI for my Motherboard, if only UEFI is allowed for boot, the M.2 SSD disappears. It only shows up when Legacy is enabled.

I have an MSI Z70 PC Mate motherboard.

Is there something I'm missing in this? I know UEFI implementation can be quirky between motherboard manufacturers, but a new technology like M.2 not supporting UEFI on an otherwise UEFI motherboard seems weird.

If I try to boot from the M.2 SSD with Legacy enabled, it doesn't find Grub, which makes sense.

I can re-do the install with Ye Olde BIOS, but I'd rather not just because I'd rather not redo my configuration. But if I have to, I will.

Just wanted to see if anyone has had this issue and if they could chime in if they have.

Assuming you have a Z170 PC Mate and that's just a typo, which bios revision are you using? Do you have any other drives hooked up to the motherboard? A weird issue I had was that if the M.2 drive I was trying to install (this was for various windows versions, so not linux but still worth noting) too was not the first hard or solid-state drive in the boot order besides the usb, it would not recognize the drive as boot-able and would not install to it.

The other idea I had was to update your motherboard bios. If its running one of the earlier bios revisions, updating could definitely help, as NVMe was basically in its infancy when Z170 was first rolling out. There was some NVMe support on Z97, but it really came into relative maturity with Z170 and X99 updates.

can you enable to boot both uefi & legacy? for my laptop i have m.2 and i have to boot with both

Yeah, I've done that. It boots to the M.2, but doesn't find Grub because Grub was installed with UEFI.

@thecaveman I will try that when I get back to work tomorrow.

A different boot loader might do the trick. I am running Arch Linux and had trouble using GRUB in UEFI mode so I tried systemd-boot which is doing just fine.

1 Like

I second the systemd-boot suggestion. have a m.2 in my desktop, and have a nvme drive in my laptop and systemd-boot works fine with those.

1 Like

try disabling secure boot && Fast startup.

Secure boot usually has the issue of not showing drives

1 Like

It is a Mobo problem. Opensuse, Ubuntu and Debian had no problems seeing it

As others have said make sure you have the newest firmware.

1 Like

Wow, I completely forgot about Secure Boot. That may be my whole issue.

i was messing with my bios this morning and thought of this thread. i had forgotten that usually causes that similar issue

1 Like

So, it still won't boot.

Secure Boot was disabled already.
There is this weird function in the BIOS I've never seen before that appears as the following:
Settings\Advanced\Windows OS Configuration
Windows 8.1/10 WHQL Support - Disabled
Windows 7 Installation - Enabled

MSI Fast Boot - Disabled
Fast Boot - Disabled

> Internal GOP Configuration
> Secure Boot

That's the entire menu. It appears that Windows 7 Installation was enabled while I was installing Arch. I can't imagine that would cause an issue, but I am not sure.

I presume that's a driver type of thing for installation because the info box for the Windows 7 Installation says the following:

Only for Windows 7 installation process.

The Windows 8.1/10 WHQL Support has the following for it's info box:

Enables the supports for Windows 8.1/10 or disables for other operating Systems.

Gonna try updating the BIOS after I try and disable both those Windows options and see if that makes it work. It's just confusing to me because the SSD doesn't appear in the boot options at all. It appears as being installed though in the BIOS. Though I guess that makes sense.

If I disable both Windows options, Secure Boot disappears entirely. That's a bit confusing because it implies Secure Boot is on even when it says "disabled" to me if it appears like that. Though I guess it also makes sense that it would only be usable when you were intending to boot Windows in general.

I can't seem to find the place where I would re-order the HDDs boot order themselves. Like, not "boot USB HDD -> UEFI HDD -> Legacy HDD" but where I say "use M.2 SSD as UEFI HDD instead of Seagate 2TB HDD".

Can you see the M.2 in Windows? Not sure if it has been asked.

1 Like

I cannot because I don't have Windows installed on this machine.

The M.2 Shows up fine in the BIOS under Legacy HDDs, but won't appear when using exclusively UEFI. There isn't a UEFI Hard Drive BBS Priorities menu like there is in this guy's case:

I'll just reinstall and use MBR with BIOS. :/ This is a strange issue honestly.

Does the Linux installer see it?

I may know the issue now.

1 Like

Have you looked for firmware upaates? Looking at the MSI site, they've got a few BIOS updates that may be relevant.

I would have a look at that.

EDIT: bios update link: https://us.msi.com/Motherboard/support/Z170A-PC-MATE.html#down-bios

Also when you installed linux did you create a /boo/efi partition with fat file32 system. If not you need to. 500MB should be more than plenty space for it.


Yes. I've already successfully installed Arch on the device. It's booting that's the issue since it's not seen and Grub won't come up.


I have, but finding a USB that would work is difficult atm. I'd have to wait until Monday as this is a work PC, and 3 day weekend.

I have three USBs, one with Easy2Boot, and two others that are essentially broken. Windows can't access the devices. I need to get into Linux to format them as I feel like I'd have more success with that.

Interestingly, one of them is currently formatted as FAT12, since I needed it for a much older (2007) BIOS update. The other can't be accessed at all.

I'll definitely update the BIOS, but I was hoping for a solution before leaving today. It seems I won't be able to do that.

Look at the post above your own I bet that is the issue.

1 Like

Yes, I created a FAT32 EFI system partition on the M.2 SSD as the first partition. It is around 600MB big, and was mounted at /mnt/boot when I installed Arch (meaning, once in the OS and not the installer, it will be mounted on /boot).

I've installed Arch a lot (at least 10 times). That's not the issue.

I believe my issue is that no drives are listed if I use UEFI only, but both my drives are listed if I use Legacy + UEFI in my Motherboard's UEFI Firmware. So hopefully an update will fix that, but it'll have to wait.

Given what you've said, It leads me to believe that you're having an issue with the UEFI Firmware. I wish I had better news for you, but that's about the best I can give now.

I've never mounted an ESP on /boot before. Will that work? (the FHS standard is to mount /boot as linux fs and do the fat32 ESP on /boot/efi)

1 Like