How to boot LEAP 15.1 from AirBoot

I’m using a boot manager called AirBoot that resides in the MBR, and I don’t want to replace it. When I installed LEAP 15.1 I checked the box to not install grub on the MBR and also checked the box to install grub on the partiton containing /boot. LEAP 15.1 appears on the AirBoot menu, but selecting it produces an error message. FWIW. I changed the root FS to EXT4.

Hi
Airboot resides after MBR (Track0)[Ref:AirBoot], I’m assuming your booting OS/2 as well on this system? So what does an AirBoot entry look like?

From what I can tell, looking at the air-boot documentation, it seems that air-boot just uses the boot sector of the partition to boot linux. My best guess is that something went wrong with installing grub to the partition.

Do you have a separate “/boot” partition?
If you do, then I wonder whether air-boot is trying to boot the root partition instead of the “/boot” partition.

Hi
I would assume based on the following, one would install the openSUSE bootloader into the /boot partition rather than MBR by selecting the bootloader location at the final install dialog…?

Ref: netlabs.air-boot/1README.TXT at master · rousseaux/netlabs.air-boot · GitHub


Note 4:
-------
AiR-BOOT can also boot Linux, or more accurately, chainload GRUB.
For this to work, GRUB needs to be installed on the partition Linux resides
on, since the MBR is taken by AiR-BOOT. If GRUB is installed in the MBR it
needs to be moved to the PBR. The procedure for such an action depends
on the GRUB and Linux versions used.

Yes, agreed. But my question was about using “/boot” or “/” (root partition) if “/boot” is a separate partition.

But I have since realized that there is another issue. If the boot partition is a logical drive (part of the extended partition), then the openSUSE installer will actually install the boot code to the extended partition itself. And air-boot might not recognize that.

So we need to know from the OP:

(1) is there a separate “/boot” partition
(2) is the partition containint “/boot” a primary partition or is it a logical drive?

Yes, AirBoot resides in the MBR. I used to have a separate /boot but was advised against it. I have only a single drive, with the layout below:

Wed  2-26-20  9:22:05{0}[h:\] lvm /query

Disk                 Size (MB) Free Space:  Total Largest
 D1 ]                  140270              10613    8534
   Disk Partition       Size (MB) Type     Status       Logical Volume
    BOOT MANAGER ]             7 Primary  In use
    FS1 ]                     23 Logical  Available
   DOS boot                    54 Primary  In use       DOS boot
   DOS Data                   101 Logical  In use       DOS Data
   eCS2.1                    4102 Logical  In use       eCS2.1
   ArcaOS503                 4110 Logical  In use       ArcaOS503
   ArcaOS5.0.1               4102 Logical  In use       ArcaOS5.0.1
   ArcaOS5.0.4               4102 Logical  In use       ArcaOS5.0.4
   Data for comm             8202 Logical  In use       Data for comm
   Manuals et al new        20510 Logical  In use       Manuals et al new
   Post mortem               2047 Logical  In use       Post mortem
    FS2 ]                   2055 Logical  Available
   Smedley Builds            4100 Logical  In use       Smedley Builds
   Work Space               16384 Logical  In use       Work Space
   User Data                 8100 Logical  In use       User Data
    FS3 ]                   8534 Logical  Available
   LEAP 15.1                40962 Logical  In use       LEAP 15.1
   swap                      4102 Logical  In use       swap
   /home                     8652 Logical  In use       /home

Except for BM, DOS and DOS data, everything is a logical drive in the extended logical partition. Note that I am no longer using the BM partition.

Almost certainly, Leap 15.1 installed its boot code in the extended partition (not shown in your list). I don’t know whether AirBoot is capable of booting from that. So it is probably trying to boot from the Leap 15.1 root partition, but there’s no boot code there.

To get the openSUSE installer to put the boot code in the right place, you will probably need to tell it to boot from a custom partition, and then give the device name for that partition (maybe “/dev/sda8” but that’s a pure guess and probably wrong).

Assuming that you do not want to reinstall, then you can fix this by going to rescue mode. Boot your install media to the rescue system, and login as root (no password needed).

In what follows, I will assume that the extended partition is “/dev/sda4” and your Leap 15.1 root partition is “/dev/sda8”. Both of those may be wrong. So you will need to change to the correct ones.


cd /tmp
dd if=/dev/sda4 of=bootsect count=1
dd if=/bootsect bs=440 of=/dev/sda8 count=1

And to explain: The first command just changes to a suitable directory for what you need to do.

The second command copies the boot code from the boot sector (the extended partition) to a file.
The third command then copies 440 bytes of boot code to the root partition boot sector.

And again, note that you must change those device names to the correct ones for your system. You can use “fdisk -l” to see the list of partitions as linux numbers them.

This is just a temporary fix to try to get things working. If it works, then you should be able to boot into Leap 15.1. But you are not done yet. Once you are booted into Leap 15.1, you will need to use Yast bootloader to fix things properly. Otherwise you will run into the same problem whenever there is an update to the “grub2” package.

I created https://bugzilla.suse.com/show_bug.cgi?id=1165042 and reinstalled with custom boot, which worked. I’m currently more concerned with saving time down the pike than with the current install, so I’m trying to ensure that I have all of the necessary steps documented for future reference. Thanks.

Yes, I noticed that bug report. I skim through the opensuse-bugs mailing list archives from time to time.

I’m glad that you now have it working.