1abf903a5SSascha Wildner.\" 2abf903a5SSascha Wildner.\" Copyright (c) 2017-2018 Netflix, Inc. 3abf903a5SSascha Wildner.\" 4abf903a5SSascha Wildner.\" Redistribution and use in source and binary forms, with or without 5abf903a5SSascha Wildner.\" modification, are permitted provided that the following conditions 6abf903a5SSascha Wildner.\" are met: 7abf903a5SSascha Wildner.\" 1. Redistributions of source code must retain the above copyright 8abf903a5SSascha Wildner.\" notice, this list of conditions and the following disclaimer. 9abf903a5SSascha Wildner.\" 2. Redistributions in binary form must reproduce the above copyright 10abf903a5SSascha Wildner.\" notice, this list of conditions and the following disclaimer in the 11abf903a5SSascha Wildner.\" documentation and/or other materials provided with the distribution. 12abf903a5SSascha Wildner.\" 13abf903a5SSascha Wildner.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND 14abf903a5SSascha Wildner.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 15abf903a5SSascha Wildner.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 16abf903a5SSascha Wildner.\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE 17abf903a5SSascha Wildner.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 18abf903a5SSascha Wildner.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 19abf903a5SSascha Wildner.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 20abf903a5SSascha Wildner.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 21abf903a5SSascha Wildner.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 22abf903a5SSascha Wildner.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 23abf903a5SSascha Wildner.\" SUCH DAMAGE. 24abf903a5SSascha Wildner.\" 25*1c9138ceSSascha Wildner.\" $FreeBSD: head/usr.sbin/efibootmgr/efibootmgr.8 364795 2020-08-26 02:05:58Z scottph $ 26abf903a5SSascha Wildner.\" 27*1c9138ceSSascha Wildner.Dd August 27, 2020 28abf903a5SSascha Wildner.Dt EFIBOOTMGR 8 29abf903a5SSascha Wildner.Os 30abf903a5SSascha Wildner.Sh NAME 31abf903a5SSascha Wildner.Nm efibootmgr 32abf903a5SSascha Wildner.Nd manipulate the EFI Boot Manager 33abf903a5SSascha Wildner.Sh SYNOPSIS 34abf903a5SSascha Wildner.Nm 35abf903a5SSascha Wildner.Op Fl v 36abf903a5SSascha Wildner.Nm 37abf903a5SSascha Wildner.Fl a 38abf903a5SSascha Wildner.Fl b Ar bootnum 39abf903a5SSascha Wildner.Nm 40abf903a5SSascha Wildner.Fl A 41abf903a5SSascha Wildner.Fl b Ar bootnum 42abf903a5SSascha Wildner.Nm 43abf903a5SSascha Wildner.Fl B 44abf903a5SSascha Wildner.Fl b Ar bootnum 45abf903a5SSascha Wildner.Nm 46abf903a5SSascha Wildner.Fl c 47abf903a5SSascha Wildner.Fl l Ar loader 48abf903a5SSascha Wildner.Op Fl aD 49abf903a5SSascha Wildner.Op Fl b Ar bootnum 50abf903a5SSascha Wildner.Op Fl k Ar kernel 51abf903a5SSascha Wildner.Op Fl L Ar label 52abf903a5SSascha Wildner.Op Fl e Ar env 53abf903a5SSascha Wildner.Nm 54abf903a5SSascha Wildner.Fl E 55abf903a5SSascha Wildner.Op Fl d 56abf903a5SSascha Wildner.Op Fl p 57abf903a5SSascha Wildner.Nm 58*1c9138ceSSascha Wildner.Fl f 59*1c9138ceSSascha Wildner.Nm 60*1c9138ceSSascha Wildner.Fl F 61*1c9138ceSSascha Wildner.Nm 62abf903a5SSascha Wildner.Fl n 63abf903a5SSascha Wildner.Fl b Ar bootnum 64abf903a5SSascha Wildner.Nm 65abf903a5SSascha Wildner.Fl N 66abf903a5SSascha Wildner.Nm 67abf903a5SSascha Wildner.Fl o Ar bootorder 68abf903a5SSascha Wildner.Nm 69abf903a5SSascha Wildner.Fl t Ar timeout 70abf903a5SSascha Wildner.Nm 71abf903a5SSascha Wildner.Fl T 72abf903a5SSascha Wildner.Sh "DESCRIPTION" 73*1c9138ceSSascha WildnerThe 74abf903a5SSascha Wildner.Nm 75*1c9138ceSSascha Wildnerprogram manipulates how UEFI Boot Managers boot the system. 76*1c9138ceSSascha WildnerIt can create and destroy methods for booting along with activating or 77*1c9138ceSSascha Wildnerdeactivating them. 78*1c9138ceSSascha WildnerIt can also change the defined order of boot methods. 79*1c9138ceSSascha WildnerIt can create a temporary boot (BootNext) variable that references a 80*1c9138ceSSascha Wildnerboot method to be tried once upon the next boot. 81abf903a5SSascha Wildner.Pp 82abf903a5SSascha WildnerThe UEFI standard defines how hosts may control what is used to 83abf903a5SSascha Wildnerbootstrap the system. 84abf903a5SSascha WildnerEach method is encapsulated within a persistent UEFI variable, stored 85abf903a5SSascha Wildnerby the UEFI BIOS of the form 86*1c9138ceSSascha Wildner.Cm Boot Ns Em XXXX 87*1c9138ceSSascha Wildner(where XXXX are uppercase hexadecimal digits). 88*1c9138ceSSascha WildnerThese variables are numbered, each describing where to load the bootstrap 89*1c9138ceSSascha Wildnerprogram from, and whether or not the method is active (used for booting, 90*1c9138ceSSascha Wildnerotherwise the method will be skipped). 91*1c9138ceSSascha WildnerThe order of these methods is controlled by another variable, 92abf903a5SSascha Wildner.Cm BootOrder . 93*1c9138ceSSascha WildnerThe currently booted method is communicated using 94abf903a5SSascha Wildner.Cm BootCurrent . 95abf903a5SSascha WildnerA global timeout can also be set. 96abf903a5SSascha Wildner.Pp 97abf903a5SSascha Wildner.Nm 98*1c9138ceSSascha Wildnerrequires that the kernel module 99*1c9138ceSSascha Wildner.Xr efirt 9 100*1c9138ceSSascha Wildnermodule be present or loaded to get and set these 101abf903a5SSascha Wildnernon-volatile variables. 102abf903a5SSascha Wildner.Pp 103abf903a5SSascha WildnerThe following options are available: 104abf903a5SSascha Wildner.Bl -tag -width Ds 105099aa738SSascha Wildner.It Fl a , Fl -activate 106abf903a5SSascha WildnerActivate the given 107abf903a5SSascha Wildner.Ar bootnum 108abf903a5SSascha Wildnerboot entry, or the new entry when used with 109abf903a5SSascha Wildner.Fl c . 110099aa738SSascha Wildner.It Fl A , Fl -deactivate 111abf903a5SSascha WildnerDeactivate the given 112abf903a5SSascha Wildner.Ar bootnum 113abf903a5SSascha Wildnerboot entry. 114099aa738SSascha Wildner.It Fl b Ar bootnum , Fl -bootnum Ar bootnum 115abf903a5SSascha WildnerWhen creating or modifying an entry, use 116abf903a5SSascha Wildner.Ar bootnum 117abf903a5SSascha Wildneras the index. 118abf903a5SSascha WildnerWhen creating a new entry, fail if it already exists. 119099aa738SSascha Wildner.It Fl B , Fl -delete 120abf903a5SSascha WildnerDelete the given 121abf903a5SSascha Wildner.Ar bootnum 122abf903a5SSascha Wildnerboot entry. 123099aa738SSascha Wildner.It Fl c , Fl -create 124abf903a5SSascha WildnerCreate a new 125abf903a5SSascha Wildner.Cm Boot 126*1c9138ceSSascha Wildnervariable (aka method or entry). 127099aa738SSascha Wildner.It Fl D , Fl -dry-run 128abf903a5SSascha WildnerProcess but do not change any variables. 129099aa738SSascha Wildner.It Fl E , Fl -esp 130abf903a5SSascha WildnerPrint the 131abf903a5SSascha Wildner.Dx 132abf903a5SSascha Wildnerpath to the ESP device, derived from the EFI variables 133abf903a5SSascha Wildner.Va BootCurrent 134abf903a5SSascha Wildnerand 135abf903a5SSascha Wildner.Va BootXXXX . 136abf903a5SSascha WildnerThis is the ESP partition used by UEFI to boot the current 137abf903a5SSascha Wildnerinstance of the system. 138abf903a5SSascha WildnerIf 139abf903a5SSascha Wildner.Fl d -device-path 140abf903a5SSascha Wildneris specified, the UEFI device path to the ESP is reported instead. 141abf903a5SSascha WildnerIf 142abf903a5SSascha Wildner.Fl p -unix-path 143abf903a5SSascha Wildneris specified, the mount point of the ESP is reported instead. 144*1c9138ceSSascha Wildner.It Fl f , Fl -fw-ui , Fl F , Fl -no-fw-ui 145*1c9138ceSSascha WildnerSet or clear the request to the system firmware to stop in its user 146*1c9138ceSSascha Wildnerinterface on the next boot. 147099aa738SSascha Wildner.It Fl k Ar kernel , Fl -kernel Ar kernel 148abf903a5SSascha WildnerThe path to and name of the kernel. 149099aa738SSascha Wildner.It Fl l Ar loader , Fl -loader Ar loader 150abf903a5SSascha WildnerThe path to and name of the loader. 151099aa738SSascha Wildner.It Fl L Ar label , Fl -label Ar label 152*1c9138ceSSascha WildnerAn optional description for the method. 153099aa738SSascha Wildner.It Fl n , Fl -bootnext 154abf903a5SSascha WildnerSet 155abf903a5SSascha Wildner.Ar bootnum 156abf903a5SSascha Wildnerboot entry as the 157abf903a5SSascha Wildner.Cm BootNext 158abf903a5SSascha Wildnervariable. 159099aa738SSascha Wildner.It Fl N , Fl -delete-bootnext 160abf903a5SSascha WildnerDelete the 161abf903a5SSascha Wildner.Cm BootNext 162abf903a5SSascha Wildneroptional variable. 163099aa738SSascha Wildner.It Fl o Ar bootorder , Fl -bootorder Ar bootorder 164abf903a5SSascha WildnerSet 165abf903a5SSascha Wildner.Cm BootOrder 166abf903a5SSascha Wildnervariable to the given comma delimited set of 167abf903a5SSascha Wildner.Ar bootnum Ns s . 168abf903a5SSascha WildnerThe numbers are in hex to match 169abf903a5SSascha Wildner.Cm Boot Ns Em XXXX , 170abf903a5SSascha Wildnerbut may omit leading zeros. 171099aa738SSascha Wildner.It Fl t Ar timeout , Fl -set-timeout Ar timeout 172abf903a5SSascha WildnerSet the bootmenu timeout value. 173099aa738SSascha Wildner.It Fl T , Fl -del-timeout 174abf903a5SSascha WildnerDelete the 175abf903a5SSascha Wildner.Cm BootTimeout 176abf903a5SSascha Wildnervariable. 177099aa738SSascha Wildner.It Fl v , Fl -verbose 178abf903a5SSascha WildnerDisplay the device path of boot entries in the output. 179abf903a5SSascha Wildner.El 180099aa738SSascha Wildner.Sh EXAMPLES 181abf903a5SSascha WildnerTo display the current 182abf903a5SSascha Wildner.Cm Boot 183abf903a5SSascha Wildnerrelated variables in the system: 184abf903a5SSascha Wildner.Pp 185*1c9138ceSSascha Wildner.Dl efibootmgr -v 186abf903a5SSascha Wildner.Pp 187abf903a5SSascha WildnerThis will display the optional 188abf903a5SSascha Wildner.Cm BootNext 189*1c9138ceSSascha Wildner(if present), 190*1c9138ceSSascha Wildner.Cm BootCurrent 191*1c9138ceSSascha Wildner(currently booted method), followed by the optional 192abf903a5SSascha Wildner.Cm Timeout 193abf903a5SSascha Wildnervalue, any 194abf903a5SSascha Wildner.Cm BootOrder 195abf903a5SSascha Wildnerthat may be set, followed finally by all currently defined 196abf903a5SSascha Wildner.Cm Boot 197abf903a5SSascha Wildnervariables, active or not. 198*1c9138ceSSascha WildnerThe verbose flag, 199*1c9138ceSSascha Wildner.Pq Fl v , 200*1c9138ceSSascha Wildneraugments this output with the disk partition uuids, 201abf903a5SSascha Wildnersize/offset and device-path of the variable. 202*1c9138ceSSascha WildnerThe flag will also include any unreferenced (by BootOrder) variables. 203abf903a5SSascha Wildner.Pp 204abf903a5SSascha WildnerThe 205abf903a5SSascha Wildner.Nm 206abf903a5SSascha Wildnerprogram can be used to create new EFI boot variables. 207*1c9138ceSSascha WildnerThe following command may be used to create a new boot method, using 208*1c9138ceSSascha Wildnerthe EFI partition mounted under 209abf903a5SSascha Wildner.Pa /mnt , 210*1c9138ceSSascha Wildnermark the method active, using 211*1c9138ceSSascha Wildnerthe given loader and label the method 212abf903a5SSascha Wildner.Qq FreeBSD-11 : 213abf903a5SSascha Wildner.Pp 214*1c9138ceSSascha Wildner.Dl efibootmgr -a -c -l /mnt/EFI/freebsd/loader.efi -L FreeBSD-11 215abf903a5SSascha Wildner.Pp 216abf903a5SSascha WildnerThis will result in the next available bootnum being assigned to a 217abf903a5SSascha Wildnernew UEFI boot variable, and given the label 218abf903a5SSascha Wildner.Qq FreeBSD-11 219abf903a5SSascha Wildnersuch as: 220abf903a5SSascha Wildner.Pp 221abf903a5SSascha Wildner.Dl Boot0009 FreeBSD-11 222abf903a5SSascha Wildner.Pp 223*1c9138ceSSascha WildnerNote newly created boot entries are, by default, created inactive, hence 224*1c9138ceSSascha Wildnerthe reason 225*1c9138ceSSascha Wildner.Fl a 226*1c9138ceSSascha Wildnerflag is specified above so that it will be considered for booting. 227*1c9138ceSSascha WildnerThe active state is denoted by a '*' following the 228abf903a5SSascha Wildner.Cm Boot Ns Em XXXX 229abf903a5SSascha Wildnername in the output. 230abf903a5SSascha WildnerThey are also inserted into the first position of current 231abf903a5SSascha Wildner.Cm BootOrder 232abf903a5SSascha Wildnervariable if it exists. 233abf903a5SSascha WildnerThey must first be set to active before being considered available to attempt 234abf903a5SSascha Wildnerbooting from, else they are ignored. 235abf903a5SSascha Wildner.Pp 236abf903a5SSascha Wildner.Dl efibootmgr -B -b 0009 237abf903a5SSascha Wildner.Pp 238abf903a5SSascha WildnerWill delete the given boot entry Boot0009. 239abf903a5SSascha Wildner.Pp 240*1c9138ceSSascha WildnerTo set the given boot entry active: 241abf903a5SSascha Wildner.Pp 242abf903a5SSascha Wildner.Dl efibootmgr -a -b 0009 243abf903a5SSascha Wildner.Pp 244abf903a5SSascha WildnerTo set a given boot entry to be used as the 245abf903a5SSascha Wildner.Cm BootNext 246abf903a5SSascha Wildnervariable, irrespective of its active state, use: 247abf903a5SSascha Wildner.Pp 248abf903a5SSascha Wildner.Dl efibootmgr -n -b 0009 249abf903a5SSascha Wildner.Pp 250abf903a5SSascha WildnerTo set the 251abf903a5SSascha Wildner.Cm BootOrder 252abf903a5SSascha Wildnerfor the next reboot use: 253abf903a5SSascha Wildner.Pp 254abf903a5SSascha Wildner.Dl efibootmgr -o 0009,0003,... 255abf903a5SSascha Wildner.Sh SEE ALSO 256abf903a5SSascha Wildner.Xr efivar 8 , 257*1c9138ceSSascha Wildner.Xr uefi 8 , 258*1c9138ceSSascha Wildner.Xr efirt 9 259*1c9138ceSSascha Wildner.Sh STANDARDS 260*1c9138ceSSascha WildnerThe Unified Extensible Firmware Interface Specification is available 261*1c9138ceSSascha Wildnerfrom 262*1c9138ceSSascha Wildner.Pa www.uefi.org . 263