No grub menu - only grub console at boot

Leap 42.3 KDE Core i3 Desktop with G03 nvidia blob, dual boot windows 10. This is a secondary (backup) work machine, not frequently used.

Yesterday after the updates below, boot screen shows only grub console prompt.

Security updates for:

ucode-intel
mariadb
kernel-firmware
java-1_8_0-openjdk

Security update for ghostscript tabooed due to new version incompatibility with pstoedit ( https://forums.opensuse.org/showthread.php/530087-pstoedit-(ghostscript)-error-converting-PDF-to-DXF )

Recommended updates for:

xorg-11-server
wireless-regdb
systemd (228-44.1 > 228-47.1)
pithon3-py
messagelib
gcc7

I’ve been looking at https://doc.opensuse.org/documentation/leap/startup/html/book.opensuse.startup/cha.trouble.html#sec.trouble.boot but it seems a bit convoluted (item 16.3.1 calls 16.6.6.3, 16.6.6.4, chroot, etc.)

Apparently the way is to re-install the boot loader using grub2-mkconfig -o /boot/grub2/grub.cfg, or is it safer to use the “Boot Linux System” option from the install disk?

Probably I can start W10 from the “boot from installed system” install disk option or from UEFI, but I don’t want to mess the W10 install as it has activated paid-for software, and recovering the activation form the vendors is a PITA. It seems that some vendors think that hard drives never fail, motherboards never break, etc.

How may I fix this problem?

Thank you,

Bruno

Both and windows 10 and linux root are installed in the same SSD. Smart short test from partition magic live disk show no problems on the SSD (/dev/sda).

Item 16.6.2.4 of troubleshooting manual says:

Check that the GRUB 2 boot loader is installed on the system. If not, install the package grub2 and run

grub2-install /dev/sda

 

How do I check where the boot loader is installed? Is it enough to specify /dev/sda or it could be in a partion? The disk is UEFI/GPT, I’ll post the partitioning scheme shortly.

I don’t think there was anything that should cause this problem.

On my system, “grub.cfg” was updated. I think that’s related to the ucode update, and the rebuilding of the “initrd”. But “grub” was not reinstalled. So it should still be able to read and display its menu.

However, this could be a delayed effect from an earlier grub update. I don’t think that happens on a UEFI system. But on a legacy system, if the installed grub boot code is relying on block lists to access “core.img”, that can still work if “core.img” is removed, but can later fail when the disk sectors are re-used for something else.

In any case, you will probably need to boot into rescue mode, and reinstall grub. Ask if you need more details.

root@PartedMagic:~# parted -l
Model: ATA Samsung SSD 840 (scsi)
Disk /dev/sda: 250GB
Sector size (logical/physical): 512B/512B
Partition Table: gpt
Disk Flags: 

Number  Start   End    Size    File system     Name                          Flags
 1      1049kB  473MB  472MB   ntfs            Basic data partition          hidden, diag
 2      473MB   577MB  104MB   fat32           EFI system partition          boot, esp
 3      577MB   593MB  16.8MB                  Microsoft reserved partition  msftres
 4      593MB   108GB  107GB   ntfs            Basic data partition          msftdata
 5      108GB   117GB  8590MB  linux-swap(v1)  swap
 6      117GB   154GB  37.6GB  btrfs           root
 7      154GB   250GB  95.9GB  xfs             home


Model: ATA WDC WD10EZEX-00R (scsi)
Disk /dev/sdb: 1000GB
Sector size (logical/physical): 512B/4096B
Partition Table: msdos
Disk Flags: 

Number  Start   End     Size    Type     File system  Flags
 1      1049kB  301GB   301GB   primary  ntfs
 2      301GB   310GB   8590MB  primary  xfs
 3      310GB   312GB   2147MB  primary  xfs
 4      312GB   1000GB  688GB   primary  xfs

I thought I could use the instructions below from item 16.3.1 of the guide, but it refers to MBR only, and the disk is GPT, so it doesn’t apply, right?

 Alternatively, you can use the Rescue System to fix the boot loader as     follows. Boot your machine from the installation media. In the boot screen,     choose More › Boot Linux     System. Select the disk containing the installed     system and kernel with the default kernel options.    

Figure 16.3: Select Disk +&comment=Figure%26nbsp%3B16.3%3A%20%20Select%20Disk%20%0A%0Ahttps%3A%2F%2Fdoc.opensuse.org%2Fdocumentation%2Fleap%2Fstartup%2Fhtml%2Fbook.opensuse.startup%2Fcha.trouble.html%23fig.rescue.selectdisk&assigned_to=fs%40suse.com&version=Leap%2042.2"]Report Bug](https://bugzilla.opensuse.org/enter_bug.cgi?&product=openSUSE%20Distribution&component=Documentation&short_desc=[doc) #

 When the system is booted, start YaST and switch to     System › Boot     Loader. Make sure that the Write generic     Boot Code to** MRB** option is enabled, and press     OK. This fixes the corrupted boot loader by overwriting     it, or installs the boot loader if it's missing.    

Could I try to boot the installed LEAP (from the install disk) and just rewrite the boot loader from Yast, if at all possible (it doesn’t seem to have this option)?

Probably not, I also updated a backup server box at the same time and had no problems. The main difference is that it has a Celeron J1800 CPU with integrated graphics.

Can I do this from the grub console itself?

It should also work for GPT. However, if this is UEFI, then something else is wrong.

You can actually reinstall in that case, too. But the problem you have seems less likely, unless there is major file system corruption.

Could I try to boot the installed LEAP (from the install disk) and just rewrite the boot loader from Yast, if at all possible (it doesn’t seem to have this option)?

I don’t think there’s an option for that. But maybe there is, but I haven’t needed it.

Otherwise:
Mount partitions. Mount root partition to “/mnt” then mount everything relative to that. For UEFI, that includes mounting “/boot/efi” For “btrfs” you have to also mount the subvolumes.

mount --bind /dev /mnt/dev
mount --bind /proc /mnt/proc
mount --bind /sys /mnt/sys
chroot /mnt

For “btrfs” you can perhaps mount subvolumes from inside the chroot environment. It might be easier that way.

After that, use something like:

grub2-install --force /dev/sdaX

install to the boot device. For UEFI, you should only need “grub2-install”.

While still in that chroot environment


grub2-mkconfig -o /boot/grub2/grub.cfg

The “exit” from chroot, reboot, and

The “Boot from Linux” install disk option didn’t work, the screen got garbled and it kept beeping each 60 seconds or so.

I did boot to windows from the UEFI menu and deactivated the online licenses of certain applications, but of course I want to preserve W10 installation since reactivating it is probably a PITA - When I changed W10 from a VM to this desktop, the reactivation process by phone was awful, I had to type a gazillion codes to reactivate. And now I’m waiting for it to download a few GB of updates. Ah, the joys of windows…

I don’t think there’s anything wrong with the disk, but I could run a fs check from partition magic livecd. I’m not sure about btrfs, thou.

If I reinstall I can keep home but all my installed software in /, including updates, will be lost, right? Or if I don’t format the partition the installer smart enough to keep what is already there? I think not, because of the updated kernel.

Thanks,

That’s what I’m a bit wary of, IINM there are a lot of subvolumes to mount - it is a standard LEAP installation.

PS: sdaX is the root partition (sda6), EFI (sda2) or another?

Thank you!

Yes, a normal install would format “/” but you can keep “/home” as is.

Actually, I’m not sure if there is an option to not reformat with “btrfs”, since a lot of it is done with the subvolumes.

You can also consider just an upgrade, using the DVD installer. That does not reformat.

Sorry, that’s what I meant, an upgrade - from 42.3 to 42.3! Or perhaps to 15 in a few weeks? That would bypass the whole rigmarole.

It looks as if Leap 15.0 release date will be late May.

You can probably upgrade now to the beta. It is working pretty well, and the packman repo is already available. After that, just use “zypper dup” to keep it up-to-date until the official release, and “zypper up” after that.

Thanks for the tips, I’ll probably try it since this box is secondary, just as a backup I can switch to if (when) my main box go tits-up (I hope this term is not a site rules violation :P).

I decided to try a 42.3 -> 42.3 “upgrade”.

At the start the installer warned that “The installed version may not be compatible with the upgrade version”, or something like that. Perhaps because of the updated kernel.

It is restarting now, let’s see…

Wow, got my boot menu back! Now to some testing…

No entry for W10.
Apps like synergy and syncthing appear to be running correctly.

Starting bootloader yast module took a long time, first with kworker process and then with btrfs, both using 100% of one core.

btrf process still running, not sure if I should wait for it to finish.

btrfs process ended after a couple minutes.

Hmm. Probe foreign OS is checked in bootloader options.

Ah, made a little change in kernel parameters (console resolution) and rebooted, now the boot menu has a Windows boot manager entry.

It boot OK to W10 - by the way, what’s the problem with it, that as soon as it boot it starts hogging my bandwidth, downloading hundreds of MBytes, this after being updated only a few days ago? Really, MS? And windows update status say it is updated…

Edit: it might be MSOffice 2016 updating, I rebooted before checking that.

Anyway: booted back to LEAP, everything seems OK. Some packages from non standard repos (like wolfi’s sysinfo) need to be reinstalled. Curiously, wallpaperswitcher is working OOTB.

Now for updates and check root free space, in case previous btrf snapshots were not removed.

Community repos were also removed (packman, nvidia). during the upgrade these repos were listed, with (checked) check boxes before them. Perhaps I saw wrong, but I don’t think so.

Started Yast updates and it shows no updates available! And this seems to be correct, All installed packages I looked at in Yast are in their latest version. Sweet!