Bootloader configuration in OpenSUSE 11.3

Bootloader seems to be recurring topic in this form, but I still could not find a suitable answer. I have 3 OpenSUSE 11.3 machines, and none of them seems to be 100% clean as far as bootloader configuration is concerned.

Machine 1 is an appliance, it doesn’t have yast installed. The machine has been cloned in the past, so the UUID of the (only) disk has changed. In order to make it boot I have edited the UUID in /boot/grub/menu.lst

This works until the kernel is updated, then /boot/grub/menu.lst is overwritten and I need to made the change again. Fair enough there is a comment in menu.lst that I should actually edit
/etc/sysconfig/bootloader. However I was unable to find what command to run after editing that file in order to have menu.lst updated.

There are plenty of examples in the Web, and everybody advises to edit menu.lst, the comment in the file saying not to do so is typically nicely visible too…

So I thought I try it out in machine 2, which is a small LXDE installation without any non-standard settings. There in yast’s sysconfig editor I changed the VGA mode (which shouldn’t cause any drastic problems) and saved. I thought this way I would learn, which command to run after editing
/etc/sysconfig/bootloader in machine 1, which has no yast. As activation command sysconfig editor runs /sbin/SuSEconfig. But /boot/grub/menu.lst is not touched at all, timestamp is weeks back. A bug in sysconfig editor???

Machine 3 is a bit more complicated case. I has an encrypted hard-drive and dual boot with Ubuntu. I know that Ubuntu’s grub2 is installed to the MBR and OpenSUSE’s grub to its boot
partition (sda2). It has been installed there by the OpenSUSE installer and nothing has been changed after installation. It all works fine for the moment. Still if I look in yast’s sysconfig
editor the LOADER_LOCATION is empty, and the default value is said to be MBR. I conclude that OpenSUSE configuration tools believe that their bootloader is in the MBR although it is
not. Wonder when that will cause trouble, doesn’t sound like a very stable situation when update scripts etc. are executed.

Sorry, long posting. In summary:

  • Q1: What command to run after editing /etc/sysconfig/bootloader?

  • Q2: Why changes made in sysconfig editor seem to end up in /dev/null

  • Q3: Should I be worried about incorrect configuration in /etc/sysconfig/bootloader although the machine boots nicely and has survived at least one kernel upgrade.

Read this GRUB bootloader - Full tutorial and this HowTO: Edit Boot Loader to add/modify/delete entries in openSUSE | SUSE & openSUSE

Not sure whether whether I should say thanks for your quick answer here. Obviously you didn’t even bother reading the question.

The first link you give is grub in general it doesn’t even mention SUSE’s /etc/sysconfig. But my question was clearly sysconfig-specific and had little to do with grub as such.

The second link you give is how to use yast bootloader tool. But I said the my machine 1 has no yast and questions 2 & 3 are about yast sysconfig editor, not about yast bootloader.

Sometimes no answer is better than just quick copy paste.

Should have been device ID instead of UUID, sorry about the confusion. But that doesn’t change the question in any way.

geuder wrote:
> Bootloader seems to be recurring topic in this form, but I still could
> not find a suitable answer. I have 3 OpenSUSE 11.3 machines, and none of
> them seems to be 100% clean as far as bootloader configuration is
> concerned.

I can’t add much, I’m afraid but as I often encounter difficulties with
opensuse boot, I sympathise and can add a few thoughts.

> Machine 1 is an appliance, it doesn’t have yast installed. The machine
> has been cloned in the past, so the UUID of the (only) disk has changed.
> In order to make it boot I have edited the UUID in /boot/grub/menu.lst
>
> This works until the kernel is updated, then /boot/grub/menu.lst is
> overwritten and I need to made the change again. Fair enough there is a
> comment in menu.lst that I should actually edit
> /etc/sysconfig/bootloader. However I was unable to find what command to
> run after editing that file in order to have menu.lst updated.

I guess there is a command, which sadly I don’t know, but there might be
another approach. Change the entry in menu.lst, so it works now, and at
the same time edit /etc/sysconfig/bootloader at the same time. Hopefully
it will then keep working when the next kernel update comes along.

> So I thought I try it out in machine 2, which is a small LXDE
> installation without any non-standard settings. There in yast’s
> sysconfig editor I changed the VGA mode (which shouldn’t cause any
> drastic problems) and saved. I thought this way I would learn, which
> command to run after editing
> /etc/sysconfig/bootloader in machine 1, which has no yast. As
> activation command sysconfig editor runs /sbin/SuSEconfig. But
> /boot/grub/menu.lst is not touched at all, timestamp is weeks back. A
> bug in sysconfig editor???

Don’t know but it does sound like it. Perhaps pull this item into a
separate thread with more explicit title and see if an expert spots it?

> Machine 3 is a bit more complicated case. I has an encrypted hard-drive
> and dual boot with Ubuntu. I know that Ubuntu’s grub2 is installed to
> the MBR and OpenSUSE’s grub to its boot
> partition (sda2). It has been installed there by the OpenSUSE
> installer and nothing has been changed after installation. It all works
> fine for the moment. Still if I look in yast’s sysconfig
> editor the LOADER_LOCATION is empty, and the default value is said to
> be MBR. I conclude that OpenSUSE configuration tools believe that their
> bootloader is in the MBR although it is
> not. Wonder when that will cause trouble, doesn’t sound like a very
> stable situation when update scripts etc. are executed.

You can probably tweak that behaviour with some of the obscure
bootloader options, but given your configuration works it seems a happy
accident. I have a system set up in a similar way and as long as you
have some other way to boot into Ubuntu (a CD or whatever) then Ubuntu
can always repair the installation (run grub-update I think from memory)
if there should be an accident. So I wouldn’t worry.

BTW I find that ubuntu and opensuse often seem to come to different
conclusions about the BIOS disk names. ubuntu is generally right, IME.

That should be suseconfig (see man suseconfig). If you use the sysconfig editor (/sbin/yast2 sysconfig), yast will run suseconfig to apply your changes.

They should not.

You should always worry about incorrect configuration in /etc/sysconfig or anywhere else. And you should make a copy of your /boot/grub/menu.lst since some entries from time to time vanished after a kernel update. However they are not openSUSE “native” entries but entries to boot foreign kernels added by the user. It’s a bug. I don’t know if it has been fixed. Chainloader entries are not concerned - only entries booting other kernels directly.

Hi,
According to this doc, part 18.1.4 Chapter 18. The Boot Loader GRUB (yes, it is opensuse 11.4 and yes, it is draft but informative…)

i understood that opensuse does not use /etc/sysconfig/bootloader as the way we thought. I have the same problem here and tried SuSEconfig --verbose from command line and it did not applied the kernel boot parameters that i added in /etc/sysconfig/bootloader to /boot/grub/menu.lst. menu.lst did not change.

The draft doc i linked clearly stated that /etc/sysconfig/bootloader is used in two states. 1) configuring with yast, 2) a new kernel installation.

So until a new info emerges, i assume that we should both change
menu.lst (to actually make the change we needed)
and
bootloader conf file. (to make the change permanent in case of a kernel upgrade/install)

Just to make other sysadmins life easier who struggle with YaST2 mistery here is what I’ve found on first question, which is “when you edit /etc/sysconfig/bootloader how to update GRUB’s menu.lst?”

my answer is:


# /usr/lib/bootloader/bootloader_entry remove kernel-xen vmlinuz-$(uname -r) initrd-$(uname -r)
# /usr/lib/bootloader/bootloader_entry add kernel-xen vmlinuz-$(uname -r) initrd-$(uname -r)

I’ve found this command in kernel post install script. Sadly there are no “refresh” command, so I had to call “remove” and “add” to update value. It calls update-bootloader underneath, if you want you can dig deeper and find exact command which updates menu.lst.

This command has some side-effects, as installing your current kernel as default to boot, and you have to pass actual kernel package name which is kernel-xen in my example.

You might want to have a look at this post on that topic: updategrub for openSUSE Legacy Grub (not update-grub!)