Grub2 boot failure after installation of OpenSUSE 13.1 x64 on Dell XPS M1730

Hello,
Grub2 fail to boot on fresh installed openSUSE 13.1 x64 on Dell XPS M1730 bios A11.

Got messages like:
GRUB loadingRead Error or
error: unknown filesystem or error: attempt to read outside of disk

Installation itself went flawlessly, after first reboot grub stuck. During installation noticed couple perl error about grub_installdevice or something.
I can boot system rescue cd and normaly read and write disk so it look not broken. Also got bootinfoscript output after installation here http://paste.opensuse.org/89485938

Anyone know what can be reason of such grub2 behaviour and in which file installation kept its logs from tty1, to find exact errors during install?

Installation logs are in /var/log/YaST2 on your disk.

I had issues with /boot on ext4 after unclean shutdown (where “unclean” does not necessary mean “crash”) due to missing journal replay. But in my case booting rescue, mounting and then unmounting /boot helped. You may try to do it if not already. The point is to unmount manually, not relying on system to do it on shutdown.

I found perl-BL-standalone-log log which contain various errors:

2014-02-06 15:29:29 <3> yast-2698.1 FileIO::ReadFile.85: Error: Failed to open /etc/default/grub_installdevice: No such file or directory
2014-02-06 15:29:29 <3> yast-2698.1 FileIO::ReadFile.85: Error: Failed to open /etc/default/grub: No such file or directory

2014-02-06 15:29:29 <1> yast-2698.1 Core::GRUB2::GrubDev2UnixDev.203: device_map:
2014-02-06 15:29:29 <3> yast-2698.1 Core::GRUB2::GrubDev2UnixDev.215: Error: did not find a match for hd0 in the device map

2014-02-06 15:29:29 <1> yast-2698.1 Library::ExamineMBR.1129: on /dev/sda result unknown

is it critical?

No. I get the same message.

Then i dont know where to look else. From System Rescue CD i can mount all 3 patitions fine and fsck them.

Tried another hdd, same effect.

Is it possible to gather some extra info from Grub Rescue? I found only ls work inside it, it shows my partitions list.

That’s correct, grub rescue provides very limited environment - basically, nothing more than ls and insmod. Additionally, whatever is provided by modules included in core.img, but it is normally filesystem drivers only that do not implement any commands.

But if I understood you correctly, you were past grub2 rescue? If I misunderstood you, please explain in more details what you see. Do you get as far as grub2 menu?

No i can’t past rescue. Grub reports one of two errors unknow filesystem or attempt to read outside of hd0 and enter rescue mode,
nothing else happen.

OK, then it makes sense to try to reinstall grub2. Please try

mount /dev/sda2 /a
mount --bind /sys /a/sys
mount --bind /proc /a/proc
mount --bind /dev /a/dev
mount --bind /run /a/run
chroot /a
script
grub2-install --force --debug /dev/sda2
exit
exit

You will get file /a/typescript with protocol of grub2-install. Upload to susepaste if you still cannot boot.

Thanks for detailed guide. Need also to manualy mount /dev/pts for script to run:

mount -t devpts devpts /dev/pts

Here is output from grub2-install separated into two parts as its too big for paste alone part1 http://paste.opensuse.org/62175278 part2 http://paste.opensuse.org/6097505

Result after manual install is same, error: attempt to read outside of disk hd0 at boot.

All of the information would be stored in /var/log/Yast2

Log in as root and type:

save_y2logs /tmp/y2logs.tgz

Last part is still truncated, but it does look OK.

Well, the only explanation I can think of is that MBR does something strange and clobbers boot drive information from BIOS. bootinfoscript identifies it as “syslinux” and I have never see something like this so far. What you could do, is one of

  • replace MBR with generic one. There is /usr/sbin/fixmbr command; just run (in chroot) “fixmbr /dev/sda” and try again
  • install GRUB2 in MBR instead of partition. You do not have Windows so having GRUB2 in MBR is actually preferred way. But this complicated by the fact that you have two partition tables and GRUB2 identifies it as GPT. In this case grub2 will need small empty partition of special type. You can use gdisk to do remove GPT - select ‘x’ (expert) and ‘z’ (zap GPT). It is expected to preserve MBR … but creating backup of partition tables makes sense anyway. Then just install grub2 in MBR - grub2-install /dev/sda. If it will work, do not forget to edit /etc/default/grub_installdevice and replace reference to partition with reference to whole disk, so that later automatic updates continue to work.

Thanks.

  1. fixmbr dont help, same error on boot
  2. With second method i killed all my gpt table with z and grub2 wont install after that.

As its fresh install i have no backups. So started installation once again to mbr this time and noticed that after all packets installed i dont have phase with kexec boot,
installer says lets reboot and just reboot laptop. With grub2 error on first boot. But now some time not each reboot i can enter grub2 normal menu, not rescue and if i exec “boot” it says that i need to load kernel first. Here is new bootinfoscript output http://paste.opensuse.org/3595449

Is it ok or maybe some phase missing? Can old bios effect that way on grub2? As its pretty old laptop i’m expecting various acpi problems, i had such with previous opensuse versions, like reboot not working out of the box, but grub not working is whole new feature.

This looks very strange. You have GPT but do not “BIOS_GRUB” partition, but still grub2 is claimed to be installed in MBR. I thought it was not even possible. Could you try bootinfoscript from https://github.com/arvidjaar/bootinfoscript/raw/master/bootinfoscript and paste results?

This is exact location of script ive been using in all my dumps. Made diff to be sure, no difference.

Ah, OK, I wondered why it did not parse core.img. Turned out it was script bug; I hopefully fixed it. In case it will be needed again makes sense to fetch updated version.

Anyway - let’s do step by step. I uploaded GRUB2 rescue ISO image (it should be also bootable as USB stick although I did not try it) built from current upstream master 2.02: https://dl.dropboxusercontent.com/u/25585681/grub2.iso When you boot from it, you are in grub2 command prompt. Try manually boot your kernel:

search --no-floppy --fs-uuid 1f08f2f7-8649-4d44-ac68-6f3e42142b2
linux   /boot/vmlinuz-3.11.6-4-desktop
initrd  /boot/initrd-3.11.6-4-desktop
set gfxpayload=keep
boot

Does it boot? At least as far as loading kernel and initrd?

With second method i killed all my gpt table with z and grub2 wont install after that.

Looking at your last BIS output you killed MBR, not GPT. Did you use gdisk or fdisk?

I tried to install openSUSE 12.1 x64 which was installed before 13.1 and result is same, so its look like hardware problem with laptop.
Thanks for help. I will dig inside with screwdriver to investigate further.