Hrmph. There was a 32-bit issue in 0.9.0-1 that was supposed to be fixed in 0.9.0-2:
https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=764797
https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=764796


Any chance you can test with efibootmgr from unstable? I've looked at the changes upstream and don't see anything that seems like it'd be relevant to "efibootmgr -v" segfaulting. However, about "efibootmgr -c -d /dev/sda -o 1 -w -L debian -l \EFI\debian\grubia32.efi" failing, these changes are in unstable's efibootmgr and might be relevant:

8c725c629f2ead41532c4b908e9c713187a7f564 - Make -o's behavior actually match the documented behavior. b857ce058d6f7fa3fa47c839bc86de243cd1fd4e - Make all the other places we're parsing XXXX also do a better job.

Once you test against unstable's efibootmgr, Peter Jones (upstream) can help us try to triage this bug more.

Relatedly, there are a bunch of fixes since 0.9.0-2. Actually, all changes since then are bug fixes. How hard would it be at this point in the game to get an exception to pull 0.11.0 into testing?

--Jared


On Fri, Dec 12, 2014 at 07:05:51PM -0600, Steve McIntyre wrote:
Package: efibootmgr
Version: 0.9.0-2
Severity: serious
Tags: upstream

Hi Jared,

Testing on an i386 EFI installation using OVMF in qemu, efibootmgr
just doesn't work properly. I'm working on i386 UEFI support in d-i,
so I've built an i386 UEFI installer image. During installation,
everything completes without error, but the system didn't boot after
reboot.

Booting the system by hand, I can run efibootmgr by hand and I get
(transcribed by hand, so may have the odd error):

root@debian:~# efibootmgr
BootCurrent: 0000
BootOrder: 0002,0003,0004,0000,0000
Boot0000: I DVD/CDROM
Boot0001: I Floppy
Boot0002: I Floppy 1
Boot0003: I Hard Drive
Boot0004: I Internal Shell

which tells me that the efibootmgr from "grub install" did not
work. Worse, "efibootmgr -v" crashes:

root@debian:~# efibootmgr -v
BootCurrent: 0000
BootOrder: 0002,0003,0004,0000,0000
Segmentation fault (core dumped)

I've attached the core dump for reference.

If I run grub-install by hand, I get more useful output:

root@debian:~# grub-install
Installing for i386-efi platform.

Could not prepare boot variable: No such file or directory

Installation finished. No error reported.

(Useful - clear failure, but grub-install reports no error!)

"grub-install -v" shows me the exact efibootmgr command that fails,
which is:

# efibootmgr -c -d /dev/sda -o 1 -w -L debian -l \EFI\debian\grubia32.efi

As expected, running that by hand gives the same error.

If I install an old version of efibootmgr for i386 (0.5.4-2), this all
works just fine. I can install a boot record for debian using "grub
install" or the "efibootmgr -c" command as above, and it
works. "efibootmgr" and "efibootmgr -v" both work
correctly. Tellingly, once I've used the older efibootmgr to install a
debian boot record, if I upgrade to 0.9.0-2 again and run "efibootmgr"
I now get a badly broken list:

root@debian:~# efibootmgr
BootCurrent: 0000
BootOrder: 0001,0002,0003,0004,0000,0000
Boot0000: I DVD/CDROM
Boot0001: I Floppy
Boot0002: I Floppy 1
Boot0003: I Hard Drive
Boot0004: I Internal Shell
Boot0005: bian

This smells like libefivar is broken on i386, maybe? Actually, not
sure. I've attached a gdb and the backtrace looks like:

(gdb) bt
#0  0x0805036c in unparse_raw_text (buffer=0x0, buffer_size=0, p=0x80570fc "", 
length=4294967260) ar src/lib/unparse_path.c:69
#1  0x0804acb2 in show_boot_vars () at src/efibootmgr/efibootmgr.c:776
#2  0x0804bcec in main (argc=2, argv=0xbffffd74) at 
src/efibootmgr/efibootmgr.c:1272

The length passed into unparse_raw_text() looks a little suspicious
(0xFFFFFFDC, or -36). Debugging further up in show_boot_vars:

boot->data_size is 64
load_option->file_path_list_length is 70
((char *)path - (char *)load_option) is 30

This looks a little wrong to me, but I've not dug any deeper.



--
Jared Domínguez
Server OS Engineering
Dell | Enterprise Solutions Group


--
To UNSUBSCRIBE, email to debian-bugs-dist-requ...@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org

Reply via email to