grub2 failure; no menu entries anymore; only boot to default possible; diskfilter

Installing opensuse 13.1 since a few weeks and ever so often it appears that grub2 has changed by updates or other reasons, sometimes with disastrous results. Because of the unreliabilty of grub I have disabled probing with “GRUB_DISABLE_OS_PROBER=true” in /etc/default/grub and copied the menu entries I wanted to have verbatim from a working grub.cfg into 40_custom (which now contains the entries for my previous version opensuse 11.4 and a windows 2000). I though this would be safe, and it worked nicely for some time until today.

After an update done today, grub starts:
"
GRUB loading.
Welcome to GRUB!

error: diskfilter writes are not supported.
"
and then it starts the default opensuse 13.1 system without showing the other menu entries. The error messages is only visible for a fraction of a second (I used my mobile to make a video to actually see what the message was).

I checked the diffs of the grub.cfg file with previous (saved) versions, but there are only slight non-important differencences. Somewhere this error message has been reported a couple of months ago (https://bugzilla.redhat.com/show_bug.cgi?id=1006289) with the remark that apparently grub want to write something in diskfilter, but that this is not supported when writing to a RAID array (as my /boot is). These writes are the “save_env” entry statements in grub.cfg. Is there a way to test this ? Any thoughts or a way to disable any writing by grub? Or is there something else wrong?
I
Thanks

probably kernel updates

which?

Which desasters?

You have /boot on LVM?

You probably hibernated your system before that or selected reboot from KDM menu or similar. It comes from using grub2-reboot to set next boot entry, but unfortunately the way it is implemented makes it impossible to reset next boot from grub itself.

After you have booted into 13.1 use the following to reset it:


grub2-editenv - unset next_boot

To be sure, post here output of

grub2-editenv - list

grub had difficulties to find other OS, sometimes it was there, then suddenly not anymore. Than there were entries, which did not work. Windows 2000 never correct. OK, not disasters, but pretty annoying.

Cheers, Charles

I hibernated only once, just to test it, but it did not complete and was interrupted by me.

Before cleaning with “grub2-editenv - list”
"
charles@fiume:~> grub2-editenv - list
saved_entry=openSUSE 13.1
next_entry=openSUSE 13.1
"
After cleaning:
"
Root Password:
fiume:~ # grub2-editenv - unset next_boot
fiume:~ # logout
charles@fiume
charles@fiume:~> grub2-editenv - list
saved_entry=openSUSE 13.1
next_entry=openSUSE 13.1
charles@fiume:~>
"
My grub default = 0 (reboot first entry).

Thanks, Charles

Oops, my bad - it should have been “next_entry” of course:

grub2-editenv - unset next_entry

I hibernated only once, just to test it, but it did not complete and was interrupted by me.

Probably it was the reason - you have interrupted it so it did not have chance to clean up.

Here are the results:

fiume:~ # grub2-editenv - list
saved_entry=openSUSE 13.1
next_entry=openSUSE 13.1
fiume:~ # grub2-editenv - unset next_entry
fiume:~ # grub2-editenv - list
saved_entry=openSUSE 13.1
fiume:~ # 

I rebooted, and, lo and behold, my menu entries are back, like magic. Many thanks!

Cheers, Charles