порядок загрузки efi изменяется на обновлении пакета

Время от времени после того, как я обновляю свою систему, efi порядок загрузки изменяется, и система не загрузится. Я должен перейти к BIOS и повторному выбору человечность efi запись. Я предполагаю, что это - один из тех пакетов (по крайней мере, это всегда происходит, когда я вижу одного из тех, которые обновляют):

grub-common grub-efi grub-efi-amd64 grub-efi-amd64-bin grub-efi-amd64-
signed grub2-common shim shim-signed

Когда я выполняю efibootmgr, я получаю это:

efibootmgr
No BootOrder is set; firmware will attempt recovery

Я работал:

[ -d /sys/firmware/efi ] && echo UEFI || echo BIOS
UEFI

Я не могу найти любые ответы на efibootgmr, не работающий. Помогите.Спасибо!

Обновление:

Я пытался добавить, что EFI загружает переменную с:

efibootmgr --create --disk /dev/sda --part 1 --label "Ubuntu" --loader
\\EFI\\ubuntu\\grubx64.efi

Который возвращается:

BootOrder: 0000
Boot0000* Ubuntu

На перезапуске не загрузится система.

Меню начальной загрузки

Теперь рабочая запись маркирована Ubuntu. Когда я выбираю его начальные загрузки Ubuntu. После выполнения efibootmgr снова я получаю тот же результат как прежде:

efibootmgr
No BootOrder is set; firmware will attempt recover

В случае, если это - соответствующий контейнер, и подписанный контейнером были также обновлены, когда порядок загрузки был изменен обновлением.

Обновление:

Компьютер является Гигабайтом Brix GB-BXBT-1900 с новейшим пересмотром BIOS.

Я думаю, что мой начальный вопрос состоял в том, почему efigootmgr не работает, и этому ответили. Спасибо за Ваш вход.

1
задан 11 April 2017 в 21:53

1 ответ

Вы сталкиваетесь с тем, что я называю "переворотом начальной загрузки". Я записал страницу на этом предмете; посмотрите здесь для деталей. Тем не менее Ваша проблема звучит немного необычной, но она, вероятно, связана с этим:

efibootmgr
No BootOrder is set; firmware will attempt recovery

Обычно, основанный на EFI компьютер действительно имеет a BootOrder переменный набор. Случаи, которые я лично видел, где это не установлено, были из-за дефектного встроенного микропрограммного обеспечения, которое просто отказывается принимать эту переменную. На таких компьютерах единственный шанс начальной загрузки через имя файла нейтрализации (обычно EFI/BOOT/bootx64.efi на ESP, хотя EFI/Microsoft/Boot/bootmgfw.efi будет иногда работать, также). Тем не менее я услышал о случаях где BootOrder переменная пуста, но может быть установлена. В этом случае добавление переменной начальной загрузки EFI, как описано здесь, может решить проблему.

Если Ваш компьютер является просто плохо дефектным и должен загрузиться через имя файла нейтрализации, необходимо скопировать или переместиться/переименовать загрузчик в соответствующее имя и возможно файлы поддержки как конфигурационные файлы.

Учитывая, что Вы упомянули "человечность efi, запись" заставляет меня думать, что у Вас есть переменные начальной загрузки, но BootOrder переменная теряется. Это - вероятно, микропрограммная ошибка, хотя она могла указать на дефектные аппаратные средства NVRAM. Обновление встроенного микропрограммного обеспечения могло бы решить проблему, если это - ошибка. Согласуйте с производителем, чтобы видеть, существует ли такое обновление. Если это не помогает, Вы могли бы скопировать GRUB в имя файла нейтрализации, где это нужно назвать если/когда BootOrder переменная потеряна снова. ESP обычно монтируется в /boot/efi, и нормальная файловая система Linux управляет работой над ним, таким образом, можно сделать это:

sudo cp -r /boot/efi/EFI/ubuntu /boot/efi/EFI/BOOT
sudo mv /boot/efi/EFI/BOOT/shimx64.efi /boot/efi/EFI/BOOT/bootx64.efi

Это копирует Контейнер в имя файла нейтрализации. Если Вы уверены, что Ваш компьютер не использует Защищенную загрузку, Вы могли переименовать grubx64.efi, вместо shimx64.efi, к bootx64.efi.

1
ответ дан 7 December 2019 в 15:37

Другие вопросы по тегам:

Похожие вопросы: