LEAP 42.2 Grub2 problem

Hi all,

I have the problem with boot again.
Till now I was able to upgrade my OS without big issue.

But last week when I update from 13.2 to Leap 42.2, Now the opensuse is not loading.

My first bootscreen is still on Windows (I am using windows boot screen first, then it will load Grub),
When I select Opensuse, it will say that loading Grub2… not do noting.

I guess something is wrong with the Grub2.

Please help.

Rahul

That sounds more like a windows problem than grub. If windows is supposed to load grub but won’t.
It would be better to boot with grub and have windows as default if that’s your preference.

Hi,

It was working fine for Opensuse 11.4 till 13.2

but as soon as I upgrade to LEAP 42.2 it stopped.

I prefer to boot from Windows.

-Rahul

Start with describing how you configured Windows to load grub. The more details you provide the more likely someone can help.

I have ran following command


grub
grub> find /boot/grub/stage2
 (hd0,8)
grub> root (hd0,8)
 Filesystem type is ext2fs, partition type 0x83
grub> setup (hd0,8)
 Checking if "/boot/grub/stage1" exists... yes
 Checking if "/boot/grub/stage2" exists... yes
 Checking if "/boot/grub/e2fs_stage1_5" exists... yes
 Running "embed /boot/grub/e2fs_stage1_5 (hd0,8)"... failed (this is not fatal)
 Running "embed /boot/grub/e2fs_stage1_5 (hd0,8)"... failed (this is not fatal)
 Running "install /boot/grub/stage1 (hd0,8) /boot/grub/stage2 p /boot/grub/menu.lst "... succeeded
Done. grub> quit

After that


dd if=/dev/sda4 of=/mnt/windows/suse.bin bs=512 count=1

then copied suse.bin to Windows drive in C:

then created a boot.ini file like this


[boot loader] 
timeout=0
default=multi(0)disk(0)rdisk(1)partition(1)c:\suse.bin
[operating systems]
 c:\suse.bin="openSUSE"

Now when I select opensuse in the boot screen,

It shows “loading grub stage2”.

so I guess, the part with Windows boot loader must worked fine, since it load grub stage1.

The problem is it couldn’t load stage2.

Your title says “grub2” and your commands show grub legacy. So which one is correct?

 Running "embed /boot/grub/e2fs_stage1_5 (hd0,8)"... failed (this is not fatal)
 Running "embed /boot/grub/e2fs_stage1_5 (hd0,8)"... failed (this is not fatal)
 Running "install /boot/grub/stage1 (hd0,8) /boot/grub/stage2 p /boot/grub/menu.lst "... succeeded
Done.

Did you run these commands before or after update of openSUSE to 42.2?

I thought opensuse 11.4 onwards runs on Grub2.

I ran all those command when I installed 11.4.
After that I only upgrade the system, didn’t do anything about grub, because everything works perfectly.

Now after 42.2 I can’t boot or can give “grub” in the command line

How is system default related here? You run these commands, not system. It was your choice to use grub legacy.

I ran all those command when I installed 11.4.
After that I only upgrade the system, didn’t do anything about grub, because everything works perfectly.

In this case what most likely happened - during upgrade grub package was updated and replaced files in /boot/grub. Because in your case stage1.5 could not be embedded, grub bootblock contains reference to absolute disk location. When stage2 file was replaced, this disk location now contains undefined content. It is hard to tell more precisely, but error picture is very similar.

Now after 42.2 I can’t boot or can give “grub” in the command line

Boot install DVD in rescue mode, chroot and run the same commands again (including copying bootblock to Windows after that).

Thanks.
Now the grub is working after the chroot.

But couldn’t find stage2


grub> find /boot/grub/stage2
Error 15: File not found

What should I do now?
Is there any way to install stage2, or other better way to solve the issue?

Sorry, I do not understand this. What is working? Can you boot now?

sorry for the confusion.

What I meant is now the grub command is working after chroot.

I still couldn’t boot linux

If your /boot is on separate partition, you obviously need to mount it inside of your chroot as well.

If your /boot is on separate partition, you obviously need to mount it inside of your chroot as well.

How can I find it where the grub is.
I normally use the following command to find it. and it will return where it is.


grub> find /boot/grub/stage2
 (hd0,8)

but this time it returned

Error 15: File not found

Post /etc/fstab from your root and “fdisk -l” output.


**linux-rahul:/home/rahul #** fdisk -l
**Disk /dev/sda: 596.2 GiB, 640135028736 bytes, 1250263728 sectors**
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: 0xc3ffc3ff

**Device****Boot****     Start****       End****  Sectors****  Size****Id****Type**
/dev/sda1             2048     206847    204800   100M  7 HPFS/NTFS/exFAT
/dev/sda2           206848  209717247 209510400  99.9G  7 HPFS/NTFS/exFAT
/dev/sda3  *     209717248  419432447 209715200   100G  7 HPFS/NTFS/exFAT
/dev/sda4        419432448 1250260991 830828544 396.2G  f W95 Ext'd (LBA)
/dev/sda5        419434496  629149695 209715200   100G  7 HPFS/NTFS/exFAT
/dev/sda6        629151744  838866943 209715200   100G  7 HPFS/NTFS/exFAT
/dev/sda7        838868992  943726591 104857600    50G  7 HPFS/NTFS/exFAT
/dev/sda8        943728640  954228735  10500096     5G 82 Linux swap / Solaris
/dev/sda9        954230784 1059084287 104853504    50G 83 Linux
/dev/sda10      1059086336 1250242559 191156224  91.2G 83 Linux




**Disk /dev/sdb: 58.6 GiB, 62889394176 bytes, 122830848 sectors**
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: 0x135a2181

**Device****Boot****Start****    End****Sectors**** Size****Id****Type**
/dev/sdb1        4084   11643    7560  3.7M ef EFI (FAT-12/16/32)
/dev/sdb2  *    11644 8562687 8551044  4.1G 17 Hidden HPFS/NTFS

and fstab

/dev/disk/by-id/ata-TOSHIBA_MK6465GSX_11P7P1EFT-part8 swapswapdefaults0 0
/dev/disk/by-id/ata-TOSHIBA_MK6465GSX_11P7P1EFT-part9 /                    ext4acl,user_xattr1 1
/dev/disk/by-id/ata-TOSHIBA_MK6465GSX_11P7P1EFT-part10 /home                ext4acl,user_xattr1 2
/dev/disk/by-id/ata-TOSHIBA_MK6465GSX_11P7P1EFT-part1 /windows/C           ntfs-3g    default,locale=en_US.UTF-8 0 0
/dev/disk/by-id/ata-TOSHIBA_MK6465GSX_11P7P1EFT-part2 /windows/D           ntfs-3g    default,locale=en_US.UTF-8 0 0
/dev/disk/by-id/ata-TOSHIBA_MK6465GSX_11P7P1EFT-part3 /windows/E           ntfs-3g    users,gid=users,fmask=133,dmask=022,locale=en_US.UTF-8 0 0
/dev/disk/by-id/ata-TOSHIBA_MK6465GSX_11P7P1EFT-part5 /windows/F           ntfs-3g    default,locale=en_US.UTF-8 0 0
/dev/disk/by-id/ata-TOSHIBA_MK6465GSX_11P7P1EFT-part6 /windows/G           ntfs-3g    default,locale=en_US.UTF-8 0 0
/dev/disk/by-id/ata-TOSHIBA_MK6465GSX_11P7P1EFT-part7 /windows/H           ntfs-3g    default,locale=en_US.UTF-8 0 0


OK, so /boot is on root partition. Do you actually have /boot/grub at all? What “ls -lR /boot” says? Also “rpm -q grub”?

This appears to be a EFI boot but I could be wrong. If so you use grub2-efi not grub2 and nothing is install in MBR or any partition.

Please be clear on which boot method used MBR or EFI

Is it a joke? We are discussing grub legacy all the time. Did you bother to at least read previous discussion?

No joke look at the partitions. sda1 could be a EFI boot partition or it could be a Windows partition. With GPT formatting it could go either way.

I want to be sure that mixed booting methods are not being used