解释我的“efibootmgr -v”输出
我正在尝试使用命令sudo efibootmgr -v
确定EFI启动记录在我的Lenovo U41o上的sudo efibootmgr -v
。
有人可以向我解释一下吗?
$ sudo efibootmgr -v BootCurrent: 0008 Timeout: 0 seconds BootOrder: 0010,0003,0004,0005,0006,0008,0007,0009,000A,000B,001D Boot0000 Setup Boot0001 Boot Menu Boot0002 Diagnostic Splash Boot0003* ATA HDD2: WDC WD5000LPVT-08G33T1 ACPI(a0341d0,0)PCI(1f,2)03120a00010000000000..bYVD.A...O.*.. Boot0004* ATA SSD1: SanDisk SSD U100 24GB ACPI(a0341d0,0)PCI(1f,2)03120a00000000000000..bYVD.A...O.*.. Boot0005* RAID DEVICE2: 030a2500d23878bc820f604d8316c068ee79d25ba5388f9ca46ace40bf2f0ade9bc05d6d01 Boot0006* RAID DEVICE1: 030a2500d23878bc820f604d8316c068ee79d25ba5388f9ca46ace40bf2f0ade9bc05d6d00 Boot0007* ATAPI CD: 030a2400d23878bc820f604d8316c068ee79d25baea2090adfde214e8b3a5e471856a354 Boot0008* USB HDD: SanDisk Cruzer Edge ACPI(a0341d0,0)PCI(1a,0)USB(0,0)USB(0,0)3.!..3.G..A..... Boot0009* USB FDD: 030a2400d23878bc820f604d8316c068ee79d25b6ff015a28830b543a8b8641009461e49 Boot000A* USB CD: 030a2400d23878bc820f604d8316c068ee79d25b86701296aa5a7848b66cd49dd3ba6a55 Boot000B* PCI LAN: EFI Network (IPv4) ACPI(a0341d0,0)PCI(1c,1)PCI(0,0)MAC(089e01381698,0)IPv4(0.0.0.0:00.0.0.0:0,0, 0x.J.+*.N.....=8. Boot000C* Lenovo Recovery System ACPI(a0341d0,0)PCI(1f,2)03120a00010000000000HD(3,276800,1f4000,26c6992a-07b8-43bc-98b8-d8c83e64db3b)File(\EFI\Microsoft\Boot\lrsBootMgr.efi) Boot0010* Windows Boot Manager HD(2,1f4800,82000,72931328-061b-42e0-8fd8-8a5ac7775074)File(\EFI\Microsoft\Boot\bootmgfw.efi)WINDOWS.........x...BCDOBJECT=.{.9.dea8.6.2.c.-.5.cdd-.4.e.7.0.-.acc1.-.f.3.2.b.3.4.4.d.4.7.9.5.}...e................ Boot0014 Setup Boot0015 Boot Menu Boot0016 Diagnostic Splash Boot001C* Lenovo Recovery System ACPI(a0341d0,0)PCI(1f,2)03120a00010000000000HD(3,276800,1f4000,26c6992a-07b8-43bc-98b8-d8c83e64db3b)File(\EFI\Microsoft\Boot\lrsBootMgr.efi) Boot001D* PCI LAN: EFI Network (IPv6) ACPI(a0341d0,0)PCI(1c,1)PCI(0,0)MAC(089e01381698,0)030d3c000000000000000000000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000x.J.+*.N.....=8.
我打算把它们排除在外,因为一些早期的行提到了后面的行。 输出的大部分是Boot####
行,它们描述了引导选项。
Boot0000 Setup Boot0001 Boot Menu Boot0002 Diagnostic Splash
您的示例输出包含大量此类选项,这些选项具有名称但无需进一步详细说明。 这些可能是您特定固件的内置选项。 在您的情况下,前三个似乎是进入固件设置菜单,启动内置启动管理器和显示诊断启动屏幕的选项 – 但实际上,没有办法确定它们是什么,至少不是单独从efibootmgr
输出。
Boot
字符串后面的数字是hex的,任何给定的数字都没有什么特别之处 – 也就是说, Boot0000
不是为任何特定函数保留的,也不是Boot0001
或其他任何东西。 当程序创建新的引导条目时分配数字,并且分配基本上没有意义。 (至少,除非有错误;我知道一些错误可以使固件支持较低编号的启动项。)
Boot0003* ATA HDD2: WDC WD5000LPVT-08G33T1 ACPI(a0341d0,0)PCI(1f,2)03120a00010000000000..bYVD.A...O.*.. Boot0004* ATA SSD1: SanDisk SSD U100 24GB ACPI(a0341d0,0)PCI(1f,2)03120a00000000000000..bYVD.A...O.*..
这两个选项描述了特定设备。 在Boot####
字符串之后出现了一个人类可解释的描述,至少在某一点上 – 您可以看到这些是两个磁盘设备。 ACPI(...)
和PCI(...)
字符串标识硬件,除了与其他硬件信息交叉检查外,此信息不易被人类解释。 然后是一些乱码,这是人类可能或可能不会轻易阅读的条目的编码数据。 在这种情况下,人们显然不容易解释。
在大多数情况下,当您看到这样的条目引用磁盘设备时,引用实际上是磁盘EFI系统上的回退引导加载程序文件( EFI/BOOT/bootx64.efi
,至少在x86-64系统上)分区(ESP)。 与BIOS一样,EFI不使用嵌入在磁盘MBR中的引导加载程序。
Boot0005* RAID DEVICE2: 030a2500d23878bc820f604d8316c068ee79d25ba5388f9ca46ace40bf2f0ade9bc05d6d01 Boot0006* RAID DEVICE1: 030a2500d23878bc820f604d8316c068ee79d25ba5388f9ca46ace40bf2f0ade9bc05d6d00 Boot0007* ATAPI CD: 030a2400d23878bc820f604d8316c068ee79d25baea2090adfde214e8b3a5e471856a354
这显然是更多的硬件条目。 我不承认这些条目的格式。 你可以忽略长串; 只知道他们指的是硬件设备。
我在这里省略了一些条目,因为它们更相同……
Boot000B* PCI LAN: EFI Network (IPv4) ACPI(a0341d0,0)PCI(1c,1)PCI(0,0)MAC(089e01381698,0)IPv4(0.0.0.0:0<->0.0.0.0:0,0, 0x.J.+*.N.....=8.
这是磁盘条目的变体,但是这个标识了网络设备。 请注意,它包含MAC地址( MAC(...)
)并指定使用IPv4( IPv4(...)
)。 如果要引导此条目,计算机将尝试从网络服务器进行PXE引导。
Boot000C* Lenovo Recovery System ACPI(a0341d0,0)PCI(1f,2)03120a00010000000000HD(3,276800,1f4000,26c6992a-07b8-43bc-98b8-d8c83e64db3b)File(\EFI\Microsoft\Boot\lrsBootMgr.efi) Boot0010* Windows Boot Manager HD(2,1f4800,82000,72931328-061b-42e0-8fd8-8a5ac7775074)File(\EFI\Microsoft\Boot\bootmgfw.efi)WINDOWS.........x...BCDOBJECT=.{.9.dea8.6.2.c.-.5.cdd-.4.e.7.0.-.acc1.-.f.3.2.b.3.4.4.d.4.7.9.5.}...e................
这些条目都标识存储在硬盘上的EFI引导加载程序。 它们的语法略有不同 – 请注意,第一个以ACPI(...)
和PCI(...)
条目开头,就像之前的那样,而第二个使用HD(...)
标识符。 后者包括分区的GUID以及其他一些标识。 两个条目都包含文件名( File(...)
)。 Windows条目最后包含更多类似于乱码的数据,但在这种情况下,它是一个UTF-16字符串,作为选项传递给引导加载程序。
您的示例包含大量条目。 许多EFI会产生更短的列表 – 例如,它们可能缺少内置选项或PXE从网络引导的选项。 OTOH,有时您会看到其他选项,例如引用BIOS模式启动的条目。 值得注意的是,您的列表中没有一个用于启动Ubuntu的条目。 这是我的一台电脑上的这样一个条目:
Boot000D* ubuntu HD(1,800,112800,a8d39218-44ce-455b-8735-919754df131d)File(\EFI\UBUNTU\GRUBX64.EFI)..BO
正如您所看到的,这在基本forms上与Windows引导加载程序的条目非常相似,但当然细节不同。 您的示例可能缺少Ubuntu条目,因为您还没有安装Ubuntu,因为您在BIOS / CSM / legacy模式下安装了Ubuntu(一个错误),因为您的EFI是错误的,因此efibootmgr
无法添加条目,或者因为您在创建条目后明确删除了该条目。 如果您遇到启动问题,我建议您提出其他问题并提供详细信息。
其余条目遵循这些模式。 现在,备份到开始……
ubuntu@ubuntu:~$ sudo efibootmgr -v BootCurrent: 0008
BootCurrent
行标识用于引导计算机的条目。 在这种情况下,它是Boot0008
,它是我Boot0008
但识别USB闪存驱动器 – 你使用存储在该驱动器上的后备启动加载程序启动。
Timeout: 0 seconds
此行标识EFI内置启动管理器的超时。 在实践中,它可能或可能不意味着什么。
BootOrder: 0010,0003,0004,0005,0006,0008,0007,0009,000A,000B,001D
此行标识尝试引导条目的顺序。 在这种情况下,EFI将尝试使用Boot0010
(Windows启动管理器)启动。 如果该条目标识不存在的设备或文件,或者引导程序返回,则固件将尝试Boot0003
(您的Western Digital硬盘)。 如果该条目失败,它将尝试Boot0004
(您的SanDisk SSD),依此类推。
您可以使用以下命令获取efibootmgr软件包的详细说明:
man efibootmgr
它详细解释了您从efibootmgr获得的输出。