Samsung SSD 840 Pro not properly recognized in bios

bootgptssduefi

I recently purchased a Samsung ATIV Book 6 laptop, and swapped out the hard drive for a Samsung SSD 840 PRO Series (512 GB). Unfortunately, I can't seem to boot off of it. On the main BIOS screen, it's clearly recognized as the device plugged into the SATA Port 1. However, over at "Boot Option Priorities" where you specify the boot order, the page is entirely blank showing no options (i.e. no devices).

When I boot up with a bootable USB stick, it gets recognized fine. I've created a GPT, installed Gentoo with no issues whatsoever. However, after unmounting it and rebooting the computer, the problem persists.

I think it's weird that the BIOS doesn't list the SSD as a bootable device and does not try to boot from it, and yet it can be mounted without any problems and written to / read from. I think it's even weirder that in spite of not being listed as a bootable device, it gets recognized by name as the device plugged into the SATA port 1. Does anyone have any ideas on how to solve this?

Detected on SysInfo tab:
Detected fine as plugged into SATA Port 1

Missing from boot order
and yet missing from boot order

Here's the boot order with a flash drive plugged in
enter image description here
Both of those are the flash drive…

Best Answer

Recent computers use EFI, not BIOS, although manufacturers are confusing the issue by using the term "BIOS" in reference to their EFIs. The EFI boot process doesn't involve loading boot code from the disk's first sector, as it does with BIOS. Thus, disks aren't really bootable under EFI in the same sense that disks are bootable under BIOS. Instead, the EFI boot process involves booting files from a FAT partition, known as the EFI System Partition (ESP), on the hard disk. Ordinarily, these boot loaders must be registered with the EFI, which stores data about them in NVRAM. Removable disks can be booted by storing the boot loader using a fixed name (EFI/BOOT/bootx64.efi for x86-64 systems), and this fixed-name approach also usually works on hard disks. Built-in EFI boot loaders often present menu options for this fallback filename as if they were whole-disk boot options, as in your "Boot option #1" in your third screen shot. Boot loaders that are properly registered with the EFI typically have names, like "Gentoo" or "Ubuntu." There can be multiple such entries per disk, or none at all.

There is a twist in all this: Most EFIs include a Compatibility Support Module (CSM), which provides a BIOS compatibility layer that enables the EFI to boot BIOS-mode OSes. If this is enabled, then you may see boot options to boot OSes in BIOS mode, although these boot options often lack "BIOS mode" in their descriptions. Your "Boot Option #2" in your third screen shot is probably such an option. Unfortunately, the options to control CSM mode are entirely non-standardized, so I can't tell how your system is working with respect to CSM; it might be enabled only for external disks or for all disks but it might be ignoring your internal disk if a BIOS-mode boot loader wasn't found.

In any event, you probably need to either enable CSM options or install an EFI-mode boot loader on your hard disk and register it with the EFI. Since you said you used GPT partitioning, I recommend the second option. See my Web page on EFI boot loaders for Linux for information on the boot loaders you can use for this purpose and how to register them with the EFI. If you've already done all this, it's conceivable that you've encountered a bug. In this case, you may need to use another tool, such as the bcfg utility in an EFI version 2 shell, to register your boot loader. See this section of the rEFInd documentation to learn how to do this with rEFInd. (The process would be virtually identical for another boot loader.)

Related Question