Upgrade from Leap 42.3 to 15.0 results in grub weirdness and an unbootable system.

I upgraded from 42.3 to 15.0 via zypper. All 3rd party repos other than google chrome were disabled. I’d successfully upgraded to 15.0 using this method on two other machines without incident. In this case, third time was definitely not charm.

What happens is this:

Following a reboot, I get to the grub menu like normal. Allow it to boot 15.0. I see a brief message about loading initrd and then I suddenly go back to the grub menu only this time if I select anything, I see errors like “error: can’t find command insmod” or “error: can’t find command linux” or “error: can’t find command echo”. In fact, I get an error for each line in the grub.conf file.

Grub command line is useless in this state as the only commands available are: “.”, “”, “acpi”, “all_functional_test”, “authenticate”, “background_color”, “background_image”, and “backtrace”. Nothing else.

Any ideas how to recover?

You are going to need bootable media to fix this. Maybe a linux CD or DVD or USB that you can boot.

Quick followup: after a lot of head-scratching, I’ve managed to get the machine to boot again.

Operating on the assumption that grub was somehow corrupted, I booted a rescue thumbdrive and re-ran Yast->Bootloader to reinstall grub. That didn’t appear to have any effect. I saw the same behavior after rebooting.

So I tried something that shouldn’t have had any effect: noting that there are 6 SATA ports on the mainboard, I moved the cable from SATA 1 to SATA 2. Upon booting, I still got “command not found” errors from Grub but instead of only 8 commands available on the grub command line, there were maybe 30 or 40. Everything from ‘A’ through ‘K’. So the “linux” lines in the grub.cfg still resulted in a command-not-found error.

Moved to SATA 3. This time the system would reset before it grub displayed its main menu.

Moved to SATA 4. This one booted! I don’t know if grub is fully-functional but it supports enough commands to boot the kernel.

So I’m left to wonder…what in the hell? Why would moving from one SATA port to the next cause such wild variations in behavior? This hard drive is the only SATA device in the machine so it’s not like grub is getting confused by re-ordering. And why would grub only partially load its commands?

You might have grub installed on different disks. Moving the cable around changes the BIOS boot order.

OP has one (S)ATA device. Doesn’t “order” presume “count > one”?

How old is this PC? When “off”, is it customarily powered down, so that the CMOS clock requires power from the motherboard battery? The BIOS/NVRAM state could be corrupted, in need of a reset and better battery.

You stood behind OP shoulder? Because I do not see where OP tells how many devices are present.

P.S. OK, sorry, it was indeed the very last bit if information. My apologies.

Hi guys. Correct, this drive, a 250GB Samsung 850 EVO SSD, is the only device plugged into the machine. I don’t even have a DVD drive connected.

When the machine is “off” but with the power plug still connected, the mainboard is still powered as evidenced by the fact that my video card’s fan still spins, albeit very slowly. Still, I wouldn’t be surprised if the CMOS battery is dead. That’s something I hadn’t considered.

Machine is a 2010/11-era IBM x3100 M4 workstation. I think this machine originally came with an LSI RAID card that was removed long ago so I’m just using the SATA connectors on the mainboard. As near as I can tell, it’s UEFI with always-on legacy BIOS compatibility mode (there’s no option to enable/disable legacy mode).

This whole behavior is very weird. I would have expected all SATA ports to have behaved the same. Or at least I’d expect SATA 1-4 to behave the same; the manual says that SATA 5/6 are for CD/DVD so who knows that would happen if I connected a hard drive to one of those. Instead, I have 4 different behaviors depending on which of the SATA port is in use.

I could perhaps even understand if grub booted but couldn’t find the kernel. That would at least imply a problem with grub.cfg that I could correct. But for grub to load only a partial command set (and to load different amounts of that command set depending on which SATA port is used!) is something…I can’t explain…

Output of GitHub - arvidjaar/bootinfoscript may help in better understanding your configuration. Upload to https://susepaste.org/