Gor*_*don 3 live-usb uefi 14.04
我正在尝试使用命令确定 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:0<->0.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...B.C.D.O.B.J.E.C.T.=.{.9.d.e.a.8.6.2.c.-.5.c.d.d.-.4.e.7.0.-.a.c.c.1.-.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.
Run Code Online (Sandbox Code Playgroud)
我将把这些打乱顺序,因为一些早期的行引用了后来的行。大部分输出是Boot####描述引导选项的行。
Boot0000 Setup
Boot0001 Boot Menu
Boot0002 Diagnostic Splash
Run Code Online (Sandbox Code Playgroud)
您的示例输出包含大量此类选项,这些选项有名称但没有进一步详细说明。这些可能是您特定固件上的内置选项。在您的情况下,前三个似乎是进入固件设置菜单、启动内置启动管理器和显示诊断闪屏的选项——但实际上,没有办法确定它们是什么,至少不是单从efibootmgr输出。
Boot字符串后面的数字是十六进制的,任何给定的数字都没有什么特别之处——也就是说,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.*..
Run Code Online (Sandbox Code Playgroud)
这两个选项描述了特定的设备。在Boot####字符串之后是人类可解释的描述,至少在某种程度上——您可以看到这是两个磁盘设备。在ACPI(...)与PCI(...)字符串识别硬件,而这些信息不被人通过交叉检查与其他硬件信息容易被解释除外。然后是一些胡言乱语,这是人类可能会或可能不会轻易阅读的条目的编码数据。在这种情况下,它显然不容易被人们理解。
在大多数情况下,当您看到这样一个引用磁盘设备的条目时,该引用实际上是EFI/BOOT/bootx64.efi对磁盘 EFI 系统分区 (ESP) 上的回退引导加载程序文件(至少在 x86-64 系统上)的引用。EFI 不像 BIOS 那样使用嵌入在磁盘 MBR 中的引导加载程序。
Boot0005* RAID DEVICE2: 030a2500d23878bc820f604d8316c068ee79d25ba5388f9ca46ace40bf2f0ade9bc05d6d01
Boot0006* RAID DEVICE1: 030a2500d23878bc820f604d8316c068ee79d25ba5388f9ca46ace40bf2f0ade9bc05d6d00
Boot0007* ATAPI CD: 030a2400d23878bc820f604d8316c068ee79d25baea2090adfde214e8b3a5e471856a354
Run Code Online (Sandbox Code Playgroud)
这些显然是更多的硬件条目。我不认识这些条目的格式。您可以忽略长字符串;只知道它们指的是硬件设备。
我在这里省略了一些条目,因为它们更相似......
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.
Run Code Online (Sandbox Code Playgroud)
这是磁盘条目的一个变体,但它标识了一个网络设备。请注意,它包含 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...B.C.D.O.B.J.E.C.T.=.{.9.d.e.a.8.6.2.c.-.5.c.d.d.-.4.e.7.0.-.a.c.c.1.-.f.3.2.b.3.4.4.d.4.7.9.5.}...e................
Run Code Online (Sandbox Code Playgroud)
这些条目都标识存储在硬盘上的 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
Run Code Online (Sandbox Code Playgroud)
如您所见,它的基本形式与 Windows 引导加载程序的条目非常相似,尽管细节当然有所不同。您的示例可能缺少 Ubuntu 条目,因为您尚未安装 Ubuntu,因为您在 BIOS/CSM/legacy 模式下安装了 Ubuntu(错误),因为您的 EFI 有问题,因此efibootmgr无法添加条目,或者因为您在创建条目后明确删除了该条目。如果您遇到启动问题,我建议您提出另一个问题并提供详细信息。
其余条目遵循这些模式。现在,回到开始......
ubuntu@ubuntu:~$ sudo efibootmgr -v
BootCurrent: 0008
Run Code Online (Sandbox Code Playgroud)
该BootCurrent行标识用于引导计算机的条目。在这种情况下,它是Boot0008,我剪断了它,但它标识了一个 USB 闪存驱动器 - 您使用存储在该驱动器上的后备引导加载程序启动。
Timeout: 0 seconds
Run Code Online (Sandbox Code Playgroud)
此行标识 EFI 的内置引导管理器上的超时。在实践中,它可能意味着也可能没有任何意义。
BootOrder: 0010,0003,0004,0005,0006,0008,0007,0009,000A,000B,001D
Run Code Online (Sandbox Code Playgroud)
此行标识尝试引导条目的顺序。在这种情况下,EFI 将尝试使用Boot0010(Windows 启动管理器)启动。如果该条目标识不存在的设备或文件,或者如果引导程序返回,则固件将尝试Boot0003(您的 Western Digital 硬盘)。如果该条目失败,它将尝试Boot0004(您的 SanDisk SSD),依此类推。
小智 0
您可以使用以下命令获取 efibootmgr 软件包的详细说明:
man efibootmgr
Run Code Online (Sandbox Code Playgroud)
它非常详细地解释了从 efibootmgr 获得的输出。
| 归档时间: |
|
| 查看次数: |
4116 次 |
| 最近记录: |