On Tue, Jun 23, 2015 at 09:01:03PM -0500, Robert Lange wrote:
Package: efibootmgr
Version: 0.12-1
Severity: important

Dear Maintainer,

Until about 1 month ago, efibootmgr was able to modify and delete boot menu
items. I do not know exactly when it started failing, but I just noticed it
today.

Running Debian Testing. Tested with kernel 3.16 from testing as well as kernel
4.0 from unstable.

$ sudo efibootmgr -b 0016 -B
efibootmgr: Boot entry 0016 not found
efibootmgr: Could not delete boot variable: Success
$ echo $?
15

The expected result is that boot entry 0016 is deleted.

-----

For reference:

$ uname -a
Linux iset 4.0.0-2-amd64 #1 SMP Debian 4.0.5-1 (2015-06-16) x86_64 GNU/Linux

$ dpkg -l | grep efibootmgr
ii  efibootmgr  0.12-1  amd64

$ sudo efibootmgr --verbose
BootCurrent: 0016
Timeout: 0 seconds
BootOrder: 0016,0007,000D,0008,0009,000A,000B,000C,000E,0014,0015,0013
Boot0000  Setup FvFile(721c8b66-426c-4e86-8e99-3457c46ab0b9)
Boot0001  Boot Menu     FvFile(126a762d-5758-4fca-8531-201a7f57f850)
Boot0002  Diagnostic Splash Screen      FvFile(a7d8d9a6-6ab0-4aeb-ad9d-
163e59a7a380)
Boot0003  Lenovo Diagnostics    FvFile(3f7e615b-0d45-4f80-88dc-26b234958560)
Boot0004  Startup Interrupt Menu        FvFile(f46ee6f4-4785-43a3-923d-
7f786c3c8479)
Boot0005  Rescue and Recovery   FvFile(665d3f60-ad3e-4cad-8e26-db46eee9f1b5)
Boot0006  MEBx Hot Key  FvFile(ac6fd56a-3d41-4efd-a1b9-870293811a28)
Boot0007* USB CD
VenMsg(bc7838d2-0f82-4d60-8316-c068ee79d25b,86701296aa5a7848b66cd49dd3ba6a55)
Boot0008  USB FDD
VenMsg(bc7838d2-0f82-4d60-8316-c068ee79d25b,6ff015a28830b543a8b8641009461e49)
Boot0009* ATAPI CD0
VenMsg(bc7838d2-0f82-4d60-8316-c068ee79d25b,aea2090adfde214e8b3a5e471856a35405)
Boot000A* ATA HDD0
VenMsg(bc7838d2-0f82-4d60-8316-c068ee79d25b,91af625956449f41a7b91f4f892ab0f600)
Boot000B* ATA HDD1
VenMsg(bc7838d2-0f82-4d60-8316-c068ee79d25b,91af625956449f41a7b91f4f892ab0f605)
Boot000C* ATA HDD2
VenMsg(bc7838d2-0f82-4d60-8316-c068ee79d25b,91af625956449f41a7b91f4f892ab0f604)
Boot000D* USB HDD
VenMsg(bc7838d2-0f82-4d60-8316-c068ee79d25b,33e821aaaf33bc4789bd419f88c50803)
Boot000E* PCI LAN
VenMsg(bc7838d2-0f82-4d60-8316-c068ee79d25b,78a84aaf2b2afc4ea79cf5cc8f3d3803)
Boot000F* IDER BOOT CDROM       PciRoot(0x0)/Pci(0x16,0x2)/Ata(0,1,0)
Boot0010* IDER BOOT Floppy      PciRoot(0x0)/Pci(0x16,0x2)/Ata(0,0,0)
Boot0011* ATA HDD
VenMsg(bc7838d2-0f82-4d60-8316-c068ee79d25b,91af625956449f41a7b91f4f892ab0f6)
Boot0012* All CD:
VenMsg(bc7838d2-0f82-4d60-8316-c068ee79d25b,aea2090adfde214e8b3a5e471856a354)
Boot0013* PCI LAN
VenMsg(bc7838d2-0f82-4d60-8316-c068ee79d25b,78a84aaf2b2afc4ea79cf5cc8f3d3803)
Boot0014  Other CD
VenMsg(bc7838d2-0f82-4d60-8316-c068ee79d25b,aea2090adfde214e8b3a5e471856a35406)
Boot0015  Other HDD
VenMsg(bc7838d2-0f82-4d60-8316-c068ee79d25b,91af625956449f41a7b91f4f892ab0f606)
Boot0016* Debian on SSD0        HD(1,GPT,15920192-e1dd-403d-86ee-
7bc5c39d31ce,0x800,0xcf5f5)/File(\EFI\debian\grubx64.efi)
Boot0017* debian        HD(1,GPT,15920192-e1dd-403d-86ee-
7bc5c39d31ce,0x800,0xcf5f5)/File(\EFI\debian\grubx64.efi)

$ sudo efibootmgr -b 0016 -B
efibootmgr: Boot entry 0016 not found
efibootmgr: Could not delete boot variable: Success
$ echo $?
15

$ dmesg  | grep -i efi
[    0.000000] efi: EFI v2.31 by Lenovo
[    0.000000] efi:  ACPI=0x7cefe000  ACPI 2.0=0x7cefe014  SMBIOS=0x7cd2e000
[    0.000000] efi: mem00: [Conventional Memory|   |  |  |  |   |WB|WT|WC|UC]
range=[0x0000000000000000-0x0000000000058000) (0MB)
[    0.000000] efi: mem01: [Reserved           |   |  |  |  |   |WB|WT|WC|UC]
range=[0x0000000000058000-0x0000000000059000) (0MB)
[    0.000000] efi: mem02: [Conventional Memory|   |  |  |  |   |WB|WT|WC|UC]
range=[0x0000000000059000-0x000000000009c000) (0MB)
[    0.000000] efi: mem03: [Reserved           |   |  |  |  |   |WB|WT|WC|UC]
range=[0x000000000009c000-0x000000000009d000) (0MB)
[    0.000000] efi: mem04: [Boot Data          |   |  |  |  |   |WB|WT|WC|UC]
range=[0x000000000009d000-0x000000000009e000) (0MB)
[    0.000000] efi: mem05: [Reserved           |   |  |  |  |   |WB|WT|WC|UC]
range=[0x000000000009e000-0x00000000000a0000) (0MB)
[    0.000000] efi: mem06: [Loader Data        |   |  |  |  |   |WB|WT|WC|UC]
range=[0x0000000000100000-0x0000000000f6f000) (14MB)
[    0.000000] efi: mem07: [Conventional Memory|   |  |  |  |   |WB|WT|WC|UC]
range=[0x0000000000f6f000-0x0000000035a16000) (842MB)
[    0.000000] efi: mem08: [Loader Data        |   |  |  |  |   |WB|WT|WC|UC]
range=[0x0000000035a16000-0x0000000036d03000) (18MB)
[    0.000000] efi: mem09: [Conventional Memory|   |  |  |  |   |WB|WT|WC|UC]
range=[0x0000000036d03000-0x000000004b3a6000) (326MB)
[    0.000000] efi: mem10: [Loader Data        |   |  |  |  |   |WB|WT|WC|UC]
range=[0x000000004b3a6000-0x00000000683e3000) (464MB)
[    0.000000] efi: mem11: [Boot Data          |   |  |  |  |   |WB|WT|WC|UC]
range=[0x00000000683e3000-0x0000000068403000) (0MB)
[    0.000000] efi: mem12: [Conventional Memory|   |  |  |  |   |WB|WT|WC|UC]
range=[0x0000000068403000-0x0000000069de0000) (25MB)
[    0.000000] efi: mem13: [Boot Data          |   |  |  |  |   |WB|WT|WC|UC]
range=[0x0000000069de0000-0x0000000069df7000) (0MB)
[    0.000000] efi: mem14: [Reserved           |   |  |  |  |   |WB|WT|WC|UC]
range=[0x0000000069df7000-0x0000000069ff9000) (2MB)
[    0.000000] efi: mem15: [Boot Data          |   |  |  |  |   |WB|WT|WC|UC]
range=[0x0000000069ff9000-0x000000006b3d3000) (19MB)
[    0.000000] efi: mem16: [Conventional Memory|   |  |  |  |   |WB|WT|WC|UC]
range=[0x000000006b3d3000-0x000000006b674000) (2MB)
[    0.000000] efi: mem17: [Loader Code        |   |  |  |  |   |WB|WT|WC|UC]
range=[0x000000006b674000-0x000000006b692000) (0MB)
[    0.000000] efi: mem18: [Conventional Memory|   |  |  |  |   |WB|WT|WC|UC]
range=[0x000000006b692000-0x000000006d214000) (27MB)
[    0.000000] efi: mem19: [Boot Data          |   |  |  |  |   |WB|WT|WC|UC]
range=[0x000000006d214000-0x0000000070044000) (46MB)
[    0.000000] efi: mem20: [Conventional Memory|   |  |  |  |   |WB|WT|WC|UC]
range=[0x0000000070044000-0x0000000070058000) (0MB)
[    0.000000] efi: mem21: [Boot Data          |   |  |  |  |   |WB|WT|WC|UC]
range=[0x0000000070058000-0x00000000717aa000) (23MB)
[    0.000000] efi: mem22: [Conventional Memory|   |  |  |  |   |WB|WT|WC|UC]
range=[0x00000000717aa000-0x0000000079da4000) (133MB)
[    0.000000] efi: mem23: [Loader Data        |   |  |  |  |   |WB|WT|WC|UC]
range=[0x0000000079da4000-0x0000000079dae000) (0MB)
[    0.000000] efi: mem24: [Boot Code          |   |  |  |  |   |WB|WT|WC|UC]
range=[0x0000000079dae000-0x000000007a3aa000) (5MB)
[    0.000000] efi: mem25: [Runtime Code       |RUN|  |  |  |   |WB|WT|WC|UC]
range=[0x000000007a3aa000-0x000000007a5aa000) (2MB)
[    0.000000] efi: mem26: [Runtime Data       |RUN|  |  |  |   |WB|WT|WC|UC]
range=[0x000000007a5aa000-0x000000007b3aa000) (14MB)
[    0.000000] efi: mem27: [Reserved           |   |  |  |  |   |WB|WT|WC|UC]
range=[0x000000007b3aa000-0x000000007cd2f000) (25MB)
[    0.000000] efi: mem28: [ACPI Memory NVS    |   |  |  |  |   |WB|WT|WC|UC]
range=[0x000000007cd2f000-0x000000007ce7f000) (1MB)
[    0.000000] efi: mem29: [ACPI Reclaim Memory|   |  |  |  |   |WB|WT|WC|UC]
range=[0x000000007ce7f000-0x000000007ceff000) (0MB)
[    0.000000] efi: mem30: [Boot Data          |   |  |  |  |   |WB|WT|WC|UC]
range=[0x000000007ceff000-0x000000007cf00000) (0MB)
[    0.000000] efi: mem31: [Conventional Memory|   |  |  |  |   |WB|WT|WC|UC]
range=[0x0000000100000000-0x000000047e600000) (14310MB)
[    0.000000] efi: mem32: [Reserved           |   |  |  |  |   |  |  |  |  ]
range=[0x00000000000a0000-0x00000000000c0000) (0MB)
[    0.000000] efi: mem33: [Reserved           |   |  |  |  |   |  |  |  |  ]
range=[0x000000007cf00000-0x000000007fa00000) (43MB)
[    0.000000] efi: mem34: [Reserved           |   |  |  |  |   |  |  |  |  ]
range=[0x00000000b8000000-0x00000000ce100000) (353MB)
[    0.000000] efi: mem35: [Reserved           |   |  |  |  |   |  |  |  |  ]
range=[0x00000000ce100000-0x00000000d0000000) (31MB)
[    0.000000] efi: mem36: [Reserved           |   |  |  |  |   |  |  |  |  ]
range=[0x00000000d0000000-0x00000000f2000000) (544MB)
[    0.000000] efi: mem37: [Reserved           |   |  |  |  |   |  |  |  |  ]
range=[0x00000000f2000000-0x00000000f8000000) (96MB)
[    0.000000] efi: mem38: [Memory Mapped I/O  |RUN|  |  |  |   |  |  |  |UC]
range=[0x00000000f80f8000-0x00000000f80f9000) (0MB)
[    0.000000] efi: mem39: [Memory Mapped I/O  |RUN|  |  |  |   |  |  |  |UC]
range=[0x00000000fed1c000-0x00000000fed20000) (0MB)
[    0.000000] efi: mem40: [Reserved           |   |  |  |  |   |  |  |  |  ]
range=[0x0000000000000000-0x0000000000000000) (0MB)
[    0.000000] efi: mem41: [Reserved           |   |  |  |  |   |  |  |  |  ]
range=[0x0000000000000000-0x0000000000000000) (0MB)
[    0.000000] efi: mem42: [Reserved           |   |  |  |  |   |  |  |  |  ]
range=[0x0000000000000000-0x0000000000000000) (0MB)
[    0.000000] efi: mem43: [Reserved           |   |  |  |  |   |  |  |  |  ]
range=[0x0000000000000000-0x0000000000000000) (0MB)
[    0.000000] efi: mem44: [Reserved           |   |  |  |  |   |  |  |  |  ]
range=[0x0000000000000000-0x0000000000000000) (0MB)
[    0.000000] efi: mem45: [Reserved           |   |  |  |  |   |  |  |  |  ]
range=[0x0000000000000000-0x0000000000000000) (0MB)
[    0.000000] efi: mem46: [Reserved           |   |  |  |  |   |  |  |  |  ]
range=[0x0000000000000000-0x0000000000000000) (0MB)
[    0.000000] ACPI: UEFI 0x000000007CED7000 000042 (v01 LENOVO TP-GN
00002090 PTEC 00000002)
[    0.000000] ACPI: UEFI 0x000000007CED4000 0002E2 (v01 LENOVO TP-GN
00002090 PTEC 00000002)
[    2.293782] EFI Variables Facility v0.08 2004-May-17
[    2.312722] pstore: Registered efi as persistent store backend




-- System Information:
Debian Release: stretch/sid
 APT prefers testing-updates
 APT policy: (500, 'testing-updates'), (500, 'stable-updates'), (500, 
'testing'), (500, 'stable'), (100, 'unstable')
Architecture: amd64 (x86_64)
Foreign Architectures: i386

Kernel: Linux 4.0.0-2-amd64 (SMP w/8 CPU cores)
Locale: LANG=en_DK.UTF-8@corusa, LC_CTYPE=en_DK.UTF-8@corusa (charmap=UTF-8)
Shell: /bin/sh linked to /bin/dash
Init: systemd (via /run/systemd/system)

Versions of packages efibootmgr depends on:
ii  libc6       2.19-18
ii  libefivar0  0.20-1

efibootmgr recommends no packages.

efibootmgr suggests no packages.

-- no debconf information

Robert: Thanks. Looks like you're not alone: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=785786

Peter: I'm building stock efivar (with just the SONAME version patch) 0.20 and stock efibootmgr 0.12 for Debian. Are you seeing this issue as well? Based on #785786, it seems like the issue is in efivar. See my attached strace.

--Jared

--
Jared Domínguez
Infrastructure Software Engineering
Dell | Enterprise Solutions Group
9718  execve("/bin/efibootmgr", ["efibootmgr", "-B", "-b", "0"], [/* 23 vars 
*/]) = 0
9718  brk(0)                            = 0x133c000
9718  access("/etc/ld.so.nohwcap", F_OK) = -1 ENOENT (No such file or directory)
9718  mmap(NULL, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) 
= 0x7f7efcc75000
9718  access("/etc/ld.so.preload", R_OK) = -1 ENOENT (No such file or directory)
9718  open("/etc/ld.so.cache", O_RDONLY|O_CLOEXEC) = 3
9718  fstat(3, {st_mode=S_IFREG|0644, st_size=126085, ...}) = 0
9718  mmap(NULL, 126085, PROT_READ, MAP_PRIVATE, 3, 0) = 0x7f7efcc56000
9718  close(3)                          = 0
9718  access("/etc/ld.so.nohwcap", F_OK) = -1 ENOENT (No such file or directory)
9718  open("/lib/x86_64-linux-gnu/libdl.so.2", O_RDONLY|O_CLOEXEC) = 3
9718  read(3, 
"\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0`\16\0\0\0\0\0\0"..., 832) = 832
9718  fstat(3, {st_mode=S_IFREG|0644, st_size=14592, ...}) = 0
9718  mmap(NULL, 2109712, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) 
= 0x7f7efc850000
9718  mprotect(0x7f7efc853000, 2093056, PROT_NONE) = 0
9718  mmap(0x7f7efca52000, 8192, PROT_READ|PROT_WRITE, 
MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x2000) = 0x7f7efca52000
9718  close(3)                          = 0
9718  access("/etc/ld.so.nohwcap", F_OK) = -1 ENOENT (No such file or directory)
9718  open("/usr/lib/x86_64-linux-gnu/libefivar.so.0", O_RDONLY|O_CLOEXEC) = 3
9718  read(3, 
"\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\240,\0\0\0\0\0\0"..., 832) = 832
9718  fstat(3, {st_mode=S_IFREG|0644, st_size=103336, ...}) = 0
9718  mmap(NULL, 2199384, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) 
= 0x7f7efc637000
9718  mprotect(0x7f7efc647000, 2093056, PROT_NONE) = 0
9718  mmap(0x7f7efc846000, 40960, PROT_READ|PROT_WRITE, 
MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0xf000) = 0x7f7efc846000
9718  close(3)                          = 0
9718  access("/etc/ld.so.nohwcap", F_OK) = -1 ENOENT (No such file or directory)
9718  open("/usr/lib/x86_64-linux-gnu/libefiboot.so.0", O_RDONLY|O_CLOEXEC) = 3
9718  read(3, 
"\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\260\34\0\0\0\0\0\0"..., 832) = 
832
9718  fstat(3, {st_mode=S_IFREG|0644, st_size=39232, ...}) = 0
9718  mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) 
= 0x7f7efcc55000
9718  mmap(NULL, 2134584, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) 
= 0x7f7efc42d000
9718  mprotect(0x7f7efc436000, 2093056, PROT_NONE) = 0
9718  mmap(0x7f7efc635000, 8192, PROT_READ|PROT_WRITE, 
MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x8000) = 0x7f7efc635000
9718  close(3)                          = 0
9718  access("/etc/ld.so.nohwcap", F_OK) = -1 ENOENT (No such file or directory)
9718  open("/lib/x86_64-linux-gnu/libc.so.6", O_RDONLY|O_CLOEXEC) = 3
9718  read(3, 
"\177ELF\2\1\1\3\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0`\v\2\0\0\0\0\0"..., 832) = 832
9718  fstat(3, {st_mode=S_IFREG|0755, st_size=1869392, ...}) = 0
9718  mmap(NULL, 3972864, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) 
= 0x7f7efc063000
9718  mprotect(0x7f7efc223000, 2097152, PROT_NONE) = 0
9718  mmap(0x7f7efc423000, 24576, PROT_READ|PROT_WRITE, 
MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x1c0000) = 0x7f7efc423000
9718  mmap(0x7f7efc429000, 16128, PROT_READ|PROT_WRITE, 
MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x7f7efc429000
9718  close(3)                          = 0
9718  mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) 
= 0x7f7efcc54000
9718  mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) 
= 0x7f7efcc53000
9718  mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) 
= 0x7f7efcc52000
9718  arch_prctl(ARCH_SET_FS, 0x7f7efcc53700) = 0
9718  mprotect(0x7f7efc423000, 16384, PROT_READ) = 0
9718  mprotect(0x7f7efc635000, 4096, PROT_READ) = 0
9718  mprotect(0x7f7efc846000, 4096, PROT_READ) = 0
9718  mprotect(0x7f7efca52000, 4096, PROT_READ) = 0
9718  mprotect(0x607000, 4096, PROT_READ) = 0
9718  mprotect(0x7f7efcc77000, 4096, PROT_READ) = 0
9718  munmap(0x7f7efcc56000, 126085)    = 0
9718  access("/sys/firmware/efi/efivars/", F_OK) = 0
9718  statfs("/sys/firmware/efi/efivars/", {f_type=0xde5e81e4, f_bsize=4096, 
f_blocks=0, f_bfree=0, f_bavail=0, f_files=0, f_ffree=0, f_fsid={0, 0}, 
f_namelen=255, f_frsize=4096}) = 0
9718  brk(0)                            = 0x133c000
9718  brk(0x135d000)                    = 0x135d000
9718  openat(AT_FDCWD, "/sys/firmware/efi/efivars/", 
O_RDONLY|O_NONBLOCK|O_DIRECTORY|O_CLOEXEC) = 3
9718  fcntl(3, F_GETFD)                 = 0x1 (flags FD_CLOEXEC)
9718  fcntl(3, F_SETFD, FD_CLOEXEC)     = 0
9718  getdents(3, /* 52 entries */, 32768) = 3696
9718  getdents(3, /* 0 entries */, 32768) = 0
9718  close(3)                          = 0
9718  
open("/sys/firmware/efi/efivars/Boot0000-8be4df61-93ca-11d2-aa0d-00e098032b8c", 
O_RDONLY) = 3
9718  read(3, "\7\0\0\0", 4)            = 4
9718  read(3, "\1\0\0\0b\0u\0b\0u\0n\0t\0u\0\0\0\4\1*\0\1\0\0\0\0\10\0\0"..., 
4096) = 118
9718  read(3, "", 3978)                 = 0
9718  close(3)                          = 0
9718  
unlink("/sys/firmware/efi/efivars/Boot0000-8be4df61-93ca-11d2-aa0d-00e098032b8c")
 = -1 EINVAL (Invalid argument)
9718  write(2, "efibootmgr: ", 12)      = 12
9718  write(2, "Boot entry 0000 not found", 25) = 25
9718  write(2, "\n", 1)                 = 1
9718  write(2, "efibootmgr: ", 12)      = 12
9718  write(2, "Could not delete boot variable", 30) = 30
9718  write(2, ": ", 2)                 = 2
9718  write(2, "Invalid argument\n", 17) = 17
9718  exit_group(15)                    = ?
9718  +++ exited with 15 +++

Reply via email to