Я пытаюсь выяснить, где находятся загрузочные записи 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.
Можно получить подробное объяснение efibootmgr пакета с командой:
man efibootmgr
Это объясняет вывод, который Вы получаете от efibootmgr в мельчайших подробностях.
Я собираюсь взять их не в порядке, так как некоторые ранние строки относятся к более поздним. Объем вывода Boot####
строки, которые описывают параметры загрузки.
Boot0000 Setup
Boot0001 Boot Menu
Boot0002 Diagnostic Splash
Ваш вывод в качестве примера включает большое число вариантов как они, которые имеют имена, но никакую дальнейшую разработку. Это, вероятно, встроенные опции на Вашем определенном встроенном микропрограммном обеспечении. В Вашем случае эти первые три, кажется, опции ввести микропрограммное установочное меню, запустить встроенный диспетчер начальной загрузки и отобразить диагностический экран-заставку - но действительно, нет никакого способа знать наверняка, каковы они, по крайней мере, не от 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.*..
Эти две опции описывают определенные устройства. После Boot####
строка прибывает описание, которое является человеческим поддающимся толкованию, по крайней мере, к точке - Вы видите, что это два дисковых устройства. ACPI(...)
и PCI(...)
строки определяют аппаратные средства, и эта информация с готовностью не интерпретируется людьми, кроме путем перепроверки с другой информацией об аппаратных средствах. Затем существует немного мусора, который является закодированными данными для записи, которая могла бы или не могла бы быть легко считана людьми. В этом случае это ясно легко не интерпретируется людьми.
В большинстве случаев, когда Вы видите запись как это, которое относится к дисковому устройству, ссылка действительно в файл загрузчика нейтрализации (EFI/BOOT/bootx64.efi
, по крайней мере, в x86-64 системах) на Системном разделе EFI (ESP) диска. EFI не использует загрузчики, встроенные в MBR диска, способ, которым делает BIOS.
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...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................
Эти записи оба определяют загрузчики EFI, сохраненные на жестком диске. Они делают так с немного отличающимися синтаксисами - отмечают, что первое начинается ACPI(...)
и PCI(...)
записи, как более ранние сделали, тогда как второе использование HD(...)
идентификатор. Последний включает GUID для раздела, наряду с некоторым другим idenfications. Обе записи включают имя файла (File(...)
). Запись Windows включает больше подобных мусору данных в конец, но в этом случае это - строка UTF-16, это передается загрузчику как опция.
Ваш пример включает много записей. Много EFIs производят намного более короткие списки - например, они могут пропускать встроенные опции или опции для PXE-начальной-загрузки из сети. OTOH, иногда Вы будете видеть другие опции, как записи, которые относятся к начальным загрузкам режима BIOS. Особенно отсутствующий в Вашем списке была запись для начальной загрузки Ubuntu. Вот такая запись от одного из моих компьютеров:
Boot000D* ubuntu HD(1,800,112800,a8d39218-44ce-455b-8735-919754df131d)File(\EFI\UBUNTU\GRUBX64.EFI)..BO
Как Вы видите, это довольно подобно в канонической форме записи для загрузчика Windows, хотя, конечно, детали отличаются. Ваш пример, возможно, пропускал запись Ubuntu, потому что Вы еще не установили Ubuntu, потому что Вы установили Ubuntu в режиме BIOS/CSM/legacy (ошибка), потому что Ваш EFI является багги и так efibootmgr
не могло добавить запись, или потому что Вы явно удалили запись, после того как она была создана. Если у Вас есть проблема загрузки, я рекомендую, чтобы Вы задали другой вопрос и предоставили подробную информацию.
Остающиеся записи следуют за этими шаблонами. Теперь, поддержка до запуска....
ubuntu@ubuntu:~$ sudo efibootmgr -v
BootCurrent: 0008
BootCurrent
строка определяет запись, которая использовалась для начальной загрузки компьютера. В этом случае это 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
(Ваш SSD SanDisk), и так далее.