GRUB2 (No EFI) - Cannot chainload other OS'es (Windows and FreeBSD)

Hi,

Yet another dual boot issue. :wink:

Just installed Leap 15.2 and copied my custom GRUB2 script from my old system (Leap 15.1) to the new one.
But didn’t work for me. Currently I have two other OS’es (Windows 10 and FreeBSD 12), which GRUB2 doesn’t load.
I have an old system (> 10 years) without EFI.

The following script has worked on Leap 15.1 without issues. But unfortunately not with Leap 15.2:

#!/bin/sh
exec tail -n +3 $0
# This file provides an easy way to add custom menu entries.  Simply type the
# menu entries you want to add after this comment.  Be careful not to change
# the 'exec tail' line above.

menuentry "Windows 10 Pro" {
    set root='(hd1.0)'
    chainloader +1
}

menuentry "FreeBSD 12.0" {
    set root='(hd4.0)'
    chainloader +1
}


Were there changes in the configuration script syntax from GRUB2 since Leap 15.1?

Please post the output from

fdisk -l

(run that as root).

No problem:

 $ fdisk -l 
**Disk /dev/sdb: 477 GiB, 512110190592 bytes, 1000215216 sectors**
Disk model: Samsung SSD 850  
Units: sectors of 1 * 512 = 512 bytes 
Sector size (logical/physical): 512 bytes / 512 bytes 
I/O size (minimum/optimal): 512 bytes / 512 bytes 
Disklabel type: dos 
Disk identifier: 0x000c7700 

**Device****Boot****    Start****       End****  Sectors****  Size****Id****Type**
/dev/sdb1  *         2048  418740038 418737991 199.7G  7 HPFS/NTFS/exFAT 
/dev/sdb2       418740224  419839999   1099776   537M 27 Hidden NTFS WinRE 
/dev/sdb3       419842048 1000210431 580368384 276.8G  7 HPFS/NTFS/exFAT 


**Disk /dev/sda: 931.5 GiB, 1000204886016 bytes, 1953525168 sectors**
Disk model: Samsung SSD 860  
Units: sectors of 1 * 512 = 512 bytes 
Sector size (logical/physical): 512 bytes / 512 bytes 
I/O size (minimum/optimal): 512 bytes / 512 bytes 
Disklabel type: dos 
Disk identifier: 0xac2dc54a 

**Device****Boot****    Start****       End****   Sectors****  Size****Id****Type**
/dev/sda1            2048  335546367  335544320   160G 83 Linux 
/dev/sda2       335546368  360712191   25165824    12G 82 Linux swap / Solaris 
/dev/sda3  *    360712192 1953525167 1592812976 759.5G 83 Linux 


**Disk /dev/sdc: 465.8 GiB, 500107862016 bytes, 976773168 sectors**
Disk model: WDC WD5000AAKX-2 
Units: sectors of 1 * 512 = 512 bytes 
Sector size (logical/physical): 512 bytes / 512 bytes 
I/O size (minimum/optimal): 512 bytes / 512 bytes 
Disklabel type: dos 
Disk identifier: 0x5e80f0d4 

**Device****Boot****Start****      End****  Sectors****  Size****Id****Type**
/dev/sdc1        2048 976773167 976771120 465.8G 83 Linux 


**Disk /dev/sdd: 465.8 GiB, 500107862016 bytes, 976773168 sectors**
Disk model: Hitachi HDP72505 
Units: sectors of 1 * 512 = 512 bytes 
Sector size (logical/physical): 512 bytes / 512 bytes 
I/O size (minimum/optimal): 512 bytes / 512 bytes 
Disklabel type: dos 
Disk identifier: 0x00084fb0 

**Device****Boot****Start****      End****  Sectors****  Size****Id****Type**
/dev/sdd1        2048 976773119 976771072 465.8G 83 Linux 


**Disk /dev/sde: 372.6 GiB, 400088457216 bytes, 781422768 sectors**
Disk model: ST3400633A       
Units: sectors of 1 * 512 = 512 bytes 
Sector size (logical/physical): 512 bytes / 512 bytes 
I/O size (minimum/optimal): 512 bytes / 512 bytes 
Disklabel type: dos 
Disk identifier: 0x90909090 

**Device****Boot****Start****      End****  Sectors****  Size****Id****Type**
/dev/sde1  *       64 781422767 781422704 372.6G a5 FreeBSD 
**$**



Okay, solved it.
Layer 8 problem. lol!

Always forgot to update the menu configuration file under /boot/grub2/grub.cfg.

Always executed this command…

grub2-mkconfig /boot/grub2/grub.cfg

…instead of the correct one:

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

Sorry, for wasting your time. :\

We are glad that you have it fixed.

This is wrong, separator between disk name and partition number is comma, not dot.