Добавление загрузочной записи прошивки UEFI с помощью bcdedit
Как добавить новый пункт меню загрузки прошивки UEFI (в NVRAM), используя bcdedit
, Например, я попробовал следующие шаги, но загрузочная запись не добавляется.
bcdedit /create /d "LinuxLoader" /application osloader
это вернет новый гид (скажем, newguid)
bcdedit /set {newguid} device partition=S:
bcdedit /set {newguid} path \boot\efi\bootx64.efi
bcdedit /set {fwbootmgr} displayorder {newguid} /addfirst
Заранее спасибо.
1 ответ
Вы не можете использовать приложения типа OSLOADER для загрузки Linux: этот тип предназначен для загрузчиков Windows, такие приложения являются загрузочными приложениями (не такими как приложения EFI), они подписаны исключительно Microsoft и запущены диспетчером загрузки Windows (см. Первые слайды этот документ UEFI для хорошего описания процесса.)
С другой стороны, должно быть возможно добавить еще один менеджер загрузки вместе с Windows'и зарегистрировать его в UEFI (в хранилище NVRAM); шаги примерно такие же, как вы написали, просто используйте
bcdedit /create /d "LinuxLoader" {bootmgr}
как первая операция. Теория работы bcdedit
(bcdsrv
действительно) то, что на последнем шаге запись должна быть скопирована также в NVRAM; поэтому у вашего UEFI-менеджера теперь будет по крайней мере два варианта на выбор, при этом Windows Boot Manager, вероятно, по-прежнему будет по умолчанию. На практике это означает, что вам, возможно, придется использовать какой-то волшебный ключ, чтобы открыть это меню (менеджер загрузки UEFI). Чтобы изменить запись по умолчанию, вы можете попробовать
bcdedit /set {fwbootmgr} default $newguid
который обновит BootCurrent
переменная в NVRAM, поэтому микропрограмма UEFI должна затем выбирать загрузчик Linux вместо Windows; Хотя нет никакой гарантии, я думаю, что существуют прошивки UEFI, которые плохо запрограммированы в этом вопросе; в соответствии с этим вопросом даже кажется, что стандартное поведение процесса загрузки Windows 8 отменяет такие изменения:-(
Кроме того, дополнительно я бы сделал еще одну запись, отличную от стандартного места (ESP)\EFI\BootX64.efi, как положение в списке {fwbootmgr}: такая запись сохранится, когда какой-то (опрометчивый) инструмент решит восстановить правильное значение и полностью стереть стандартное место с помощью Microsoft bootmgfw.efi
...