Hard drive vanished from device list

I got my librem 15 without installed OS. I have two hard drives installed.

I installed Gentoo on one of it.

During installation I already recognized that the hard drive I was installing
on was vanishing from the list of boot devices sometimes. After I finished
installation the hard drive I installed on was in the boot device list, but after
I chosen it to be the boot device, booting stuck with “Booting from Hard Disk…”.

After boot from an external USB I checked the devices with fdisk, and I could
not find the hard drive anymore. Is this some special problem with SeaBIOS,
or is it more likely a hardware problem with the hard drive.

Update I:

Setup is

ACHI/0 SATA #This is the drive that disappeared
ACHI/2 M.2

Found several reports of problems with SATA and M.2 installed in parallel. Might this be the issue here too?

Update II:

Removed the M.2 and installed it again. After that the SATA drive was in the block device list again. Would be nice to know, if this is a common problem, if it can happen again, and what can be done to not let it happen again.

Looks like the “booting stuck with “Booting from Hard Disk…”” problem is some wrong use of grub-install. I will update this post when I found out the mistake i made. I just used

grub-install --target=i386-coreboot

Does not look like I could be possible to make amistake. Help welcome!

1 Like

Could you please check your Coreboot version (using dmidecode for example)?

BIOS Information
Vendor: coreboot
Version: 4.6-a86d1b-Purism-4
Release Date: 06/29/2017
ROM Size: 16384 kB
Characteristics:
PCI is supported
PC Card (PCMCIA) is supported
BIOS is upgradeable
Selectable boot is supported
ACPI is supported
Targeted content distribution is supported
BIOS Revision: 4.0
Firmware Revision: 0.0

I don’t have any suggestion other than to try this: Building coreboot from source (official script)

No, I haven’t seen any such issues, I don’t think that’s your problem. My thought is that it’s a problem with your sata HDD itself, not with coreboot/seabios, seeing as you’re the only one with a similar problem (the only other person who reported his ssd not appearing in his OS later confirmed that the problem was the SSD itself that was defective).

Since it’s the SATA drive, not the M.2, you might be able to test the drive on another computer to confirm if it’s working or not. Also make sure the SATA drive is inserted correctly and screwed so it doesn’t “slip out” of the connectors.

After removing and installing the M.2 the problem did not occur again. The SATA drive is working.

Was your suggestion to build coreboot myself correlated to the drive problem, or to the bootloader problem?

I have still no idea how to fix the Grub problem.

I read here:

to check with

dd bs=512 count=1 if=/dev/sda 2>/dev/null| strings

if Grub can be found. I got

/`8:

as output. Compared to

ZRr=
`|f
|f1
GRUB
Geom
Hard Disk
Read
Error

when checking the drive with PureOs installed.

@kakaroto Do you have any idea regarding the Grub problem?

Not really, I’d say you need to install grub on the device itself with ‘grub-install /dev/sda’ but also, you need to make sure that your system is installed as legacy boot, not as UEFI boot.
I suggest you read this and maybe it will help you find what the issue is : https://wiki.archlinux.org/index.php/GRUB

After compiling grub without coreboot support and installing grub with i386-pc, grub was working and started the gentoo drive without a problem.

Why are you using i386-pc and not i386-coreboot? Is there some specialty in using coreboot on the librem hardware?

Oh, I hadn’t noticed you used i386-coreboot before, I was sure I read it as i386-pc…
The ‘coreboot support’ for grub doesn’t mean that it’s grub on a computer that runs coreboot, it means that grub itself is used as a payload for coreboot. In that case, grub is compiled and injected as a blob inside of the coreboot firmware and flashed onto the SPI flash rom, and coreboot boots directly into grub (and the grub config is also flashed to the rom in this case). But that’s not the case right here. In our case, coreboot uses SeaBIOS as its payload, and seabios will boot your HDD using legacy bios mode, and that’s regardless of what’s in it (windows, LILO or grub, it’s all the same to it).
So yeah, grub-coreboot is grub as a coreboot payload so your boot process is coreboot->grub->linux, and regular grub is just grub installed on your HDD so the boot process remains coreboot->seaBIOS->grub->linux