Bug ID | 907672 |
---|---|
Summary | Bootloader grub2-efi installation fails - unable to boot from EFI disk later |
Classification | openSUSE |
Product | openSUSE Distribution |
Version | 13.2 |
Hardware | IA64 |
OS | Other |
Status | NEW |
Severity | Normal |
Priority | P5 - None |
Component | Bootloader |
Assignee | jsrain@suse.com |
Reporter | woa46@yahoo.com |
QA Contact | jsrain@suse.com |
Found By | --- |
Blocker | --- |
Created attachment 615396 [details] strace run of successful invocation of efibootmgr I have a problem with grub2-efi that is similar to Bug 822770. On initial installation, the bootloader installation produced the message about an error in the bootloader system and gave the option of retrying or ignoring it. I tried one retry and it didn't work, so I ignored it. The system did not boot when the installation disk was removed and I booted the rescue system. On typing efibootmgr, I got the following output: BootCurrent: 0002 Timeout: 2 seconds BootOrder: 2002,2003,2001 Boot0000* EFI Network 0 for IPv4 (C4-54-44-04-C9-78) Boot0001* EFI Network 0 for IPv6 (C4-54-44-04-C9-78) Boot0002* EFI DVD/CDROM (MATSHITABD-MLT UJ272) Boot2001* EFI USB Device Boot2002* EFI DVD/CDROM Boot2003* EFI Network I typed: efibootmgr -c -d /dev/sdc -p 2 -L opensuse -l \\EFI\\opensuse\\grubx64.efi It failed with ENOSPC which indicates that the Bios EFI subsystem is out of resources. After this, I tried a number of things and sometimes the same command would succeed with Boot0003 correctly installed. After this, I reflashed the Bios and the command would succeed with the following output: Timeout: 0 seconds BootOrder: 0004,0003,2003,2001,2002 Boot0000* EFI USB Device (KingstonDataTraveler 3.0) Boot0001* EFI Network 0 for IPv4 (C4-54-44-04-C9-78) Boot0002* EFI Network 0 for IPv6 (C4-54-44-04-C9-78) Boot0003* opensuse-secureboot Boot2001* EFI USB Device Boot2002* EFI DVD/CDROM Boot2003* EFI Network Boot0004* opensuse A verbose run of efibootmgr gives the following output: BootCurrent: 0000 Timeout: 0 seconds BootOrder: 0004,0003,2001,2003,2002 Boot0000* EFI USB Device (KingstonDataTraveler 3.0) ACPI(a0341d0,0)PCI(1d,0)USB(0,0)USB(0,0)HD(1,800,200001,5b8c0aab)RC Boot0001* EFI Network 0 for IPv4 (C4-54-44-04-C9-78) ACPI(a0341d0,0)PCI(1c,3)PCI(0,0)MAC(c4544404c978,0)IPv4(0.0.0.0:0<->0.0.0.0:0,0, 0RC Boot0002* EFI Network 0 for IPv6 (C4-54-44-04-C9-78) ACPI(a0341d0,0)PCI(1c,3)PCI(0,0)MAC(c4544404c978,0)030d3c000000000000000000000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000RC Boot0003* opensuse-secureboot HD(1,800,200001,5b8c0aab)File(\EFI\opensuse\shim.efi) Boot2001* EFI USB Device RC Boot2002* EFI DVD/CDROM RC Boot2003* EFI Network RC Boot0004* opensuse HD(2,200800,32000,30ef0665-2a13-11e3-a895-a67aabe62594)File(\EFI\opensuse\grubx64.efi) (by now, I was booting off of a flash drive) I made an strace of a successful run of efibootmgr and have left it in the attachment efibootmgr.strace. Again, when I try to boot off of the disk, it indicates that there is no bootable device and when I boot off of the rescue system, the opensuse boot that I just installed is not there. It appears that for some reason, the EFI subsystem of the Bios is deleting the disk boot on system reboot. Or else, the ops->set_variable command of the EFI efi_runtime_services_64_t table is accepting the command to set the variable and silently discarding it. There is another problem that appears to be with the EFI subsystem. The intel_bios_dumper command fails with EIO. An strace of this command in operation is in the attachment for bios.strace. Finally, I tried to set up a windows boot on my flash drive with the following grub2 code: menuentry 'Windows Boot Manager (on /dev/sdc2)' { insmod chain insmod part_gpt insmod fat search --fs-uuid --set=root 62a3-a7b0 set prefix=(${root})/EFI/Microsoft/Boot echo $prefix: ls $prefix chainloader $prefix/bootmgfw.efi } On booting this entry, it properly lists the contents of the /EFI/Microsoft/Boot directory, but then fails on the invocation of the chainloader command with the message "not a valid root device". At the lower level in the grub2-efi code, it is making a call to the ops->open_protocol function of the efi_boot_services_64_t table. I cannot get the returned status with strace since this is a boot program. On conlusion, it appears that the EFI subsystem of the Bios is not performing correctly. Whether this is configuration issue or there is a more serious problem. I thought that at the minimum, your technical support staff would be able to find out why it is deleting the new boot entry on boot. I would think that this problem has occurred before during development. I thank you sincerely for any help that you can provide.