Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

efibootmgr crashes with segmentation fault when creating boot entry on HP ProBook x360 11 G1 #92

Closed
marcinwfilewave opened this issue May 28, 2018 · 1 comment

Comments

@marcinwfilewave
Copy link

Hello, I'm currently trying to create boot entry on specific type of hardware and it results in segmentation fault. Using other type of hardware with exactly the same kernel and efibootmgr compilation I experience no issues when creating boot entry.

Command I'm using is:

efibootmgr -c -d /dev/sda -p 2 -l \EFI\Microsoft\Boot\bootmgfw.efi -L Windows boot loader

After segmentation fault my terminal (bash) is still responsive for everything except any operation that works on EFI variables (like listing them with efivar or efibootmgr).

Excerpt from system log:

May 17 10:46:59 filewave user.warn kernel: invalid opcode: 0000 [#1] SMP PTI
May 17 10:46:59 filewave user.warn kernel: Modules linked in: x86_pkg_temp_thermal
May 17 10:46:59 filewave user.warn kernel: CPU: 0 PID: 2503 Comm: efibootmgr Not tainted 4.16.2 #1
May 17 10:46:59 filewave user.warn kernel: Hardware name: HP HP ProBook x360 11 G1 EE/82EE, BIOS 01.09 04/10/2017
May 17 10:46:59 filewave user.warn kernel: RIP: 0010:0x230
May 17 10:46:59 filewave user.warn kernel: RSP: 0018:ffffb51980263af8 EFLAGS: 00010083
May 17 10:46:59 filewave user.warn kernel: RAX: 0000000065fcf190 RBX: 0000000000000002 RCX: 0000000000000004
May 17 10:46:59 filewave user.warn kernel: RDX: 0000000000000002 RSI: 0000000000000000 RDI: 0000000000000002
May 17 10:46:59 filewave user.warn kernel: RBP: ffffb51980263bd0 R08: ffffb51980263b40 R09: ffffb51980263c30
May 17 10:46:59 filewave user.warn kernel: R10: 0000000000000000 R11: 0000000000000004 R12: 0000000000000000
May 17 10:46:59 filewave user.warn kernel: R13: 0000000000083fb0 R14: ffffb51980263c30 R15: ffffb51980263c38
May 17 10:46:59 filewave user.warn kernel: FS: 00007fda91879700(0000) GS:ffffa0963fc00000(0000) knlGS:0000000000000000
May 17 10:46:59 filewave user.warn kernel: CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033
May 17 10:46:59 filewave user.warn kernel: CR2: 0000000000618000 CR3: 000000017f10a000 CR4: 00000000003406f0
May 17 10:46:59 filewave user.warn kernel: Call Trace:
May 17 10:46:59 filewave user.warn kernel: ? ata_scsi_write_same_xlat+0x2ce/0x2ce
May 17 10:46:59 filewave user.warn kernel: ? legitimize_mnt+0xc/0x21
May 17 10:46:59 filewave user.warn kernel: ? lookup_mnt+0x3f/0x4d
May 17 10:46:59 filewave user.warn kernel: ? dput+0x30/0x16e
May 17 10:46:59 filewave user.warn kernel: ? follow_managed+0xaa/0x209
May 17 10:46:59 filewave user.warn kernel: ? efi_call+0x58/0x90
May 17 10:46:59 filewave user.warn kernel: ? virt_efi_query_variable_info+0xd5/0x14f
May 17 10:46:59 filewave user.warn kernel: ? efi_query_variable_store+0x82/0x18c
May 17 10:46:59 filewave user.warn kernel: ? efivar_entry_set_get_size+0x93/0x1af
May 17 10:46:59 filewave user.warn kernel: ? efivar_entry_set_get_size+0x93/0x1af
May 17 10:46:59 filewave user.warn kernel: ? efivarfs_file_write+0xaa/0x12d
May 17 10:46:59 filewave user.warn kernel: ? __vfs_write+0x1c/0x103
May 17 10:46:59 filewave user.warn kernel: ? vfs_ioctl+0x16/0x23
May 17 10:46:59 filewave user.warn kernel: ? do_vfs_ioctl+0x479/0x524
May 17 10:46:59 filewave user.warn kernel: ? vfs_write+0xbd/0x140
May 17 10:46:59 filewave user.warn kernel: ? SyS_write+0x48/0x81
May 17 10:46:59 filewave user.warn kernel: ? do_syscall_64+0x60/0xf4
May 17 10:46:59 filewave user.warn kernel: ? entry_SYSCALL_64_after_hwframe+0x3d/0xa2
May 17 10:46:59 filewave user.warn kernel: Code: Bad RIP value.
May 17 10:46:59 filewave user.alert kernel: RIP: 0x230 RSP: ffffb51980263af8
May 17 10:46:59 filewave user.warn kernel: ---[ end trace 47d32e1b1011c9bf ]—

I tested two combinations of efibootmgr and efivar versions:

  • efibootmgr 14 with efivar 28,
  • efibootmgr 15 with efivar 34.

I also tried multiple kernels:

  • built-in house kernel 4.16.2,
  • kernel 4.8.0 pulled from Ubuntu repo,
  • kernel 4.8.5 pulled from Fedora 25 repo,
  • kernel 4.11.3 pulled from Fedora 25 repo.

Is there any other way how I can try to scope down the problem of this segmentation fault and track the root cause? If there is any important information that I failed to include here please let me know.

@marcinwfilewave marcinwfilewave changed the title efibootmgr crashes with segmentation fault when creating boot entry efibootmgr crashes with segmentation fault when creating boot entry on HP HP ProBook x360 11 G1 May 28, 2018
@marcinwfilewave marcinwfilewave changed the title efibootmgr crashes with segmentation fault when creating boot entry on HP HP ProBook x360 11 G1 efibootmgr crashes with segmentation fault when creating boot entry on HP ProBook x360 11 G1 May 30, 2018
@vathpela
Copy link
Contributor

vathpela commented Mar 6, 2019

This appears to be your system firmware crashing while setting a boot variable, which is pretty impressive, since the kernel will return an error if we try to create a boot variable that's not well-formed. I'm not quite sure why this manifests as a segfault instead of an error return, but either way, I don't think there's any way we're going to be able to fix this from efibootmgr.

@vathpela vathpela closed this as completed Mar 6, 2019
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants