
Новичок в Linux. Недавно переустановил Ubuntu, и каждый раз при загрузке меня выкидывает в оболочку grub. Я искал везде, потратил кучу времени и не могу отследить проблему, хоть убей.
Таблица разделов выглядит следующим образом: /dev/sda1 — Фактическая ОС /dev/sda2 — EFI /dev/sda3 — Раздел подкачки
Выполнив:
set root=(hd0,gpt1)
linux /vmlinuz_something root=/dev/sda1 ro
initrd /initrd.img
boot
Я загружаюсь в ОС, а затем запускаю update-grub. Похоже, что он успешно обнаружил ядра, обновил записи, но все равно загружается в grub. Поэтому я продолжил изучать проблему и столкнулся с некоторыми примерами, предполагающими, что это может быть связано с тем, как GRUB обрабатывает загрузку после неудачных попыток загрузки.
Из того, что я смог извлечь из этого, я решил попробовать добавить в свой /etc/default/grub:
GRUB_TIMEOUT=0
GRUB_RECORDFAIL_TIMEOUT=$GRUB_TIMEOUT
Я запустил update-grub еще раз, и проблема осталась. Также пробовал другие значения в качестве догадки, что неудивительно не сработало. Прошу прощения за то, что поднимаю эту избитую тему, но найденные мной решения просто не сработали для меня. Есть идеи, как это исправить?
решение1
Я подозреваю, что у вас две установки GRUB — возможно, одна для одного дистрибутива, а другая для другого; или один режим BIOS и один режим EFI. В любом случае, если вы обновляете файл конфигурации для одного GRUB, но выполняется другой, вы увидите симптомы, похожие на те, что видите.
Если у вас есть две установки GRUB в режиме EFI, вы должны увидеть их наличие в sudo efibootmgr -v
выходных данных и/или в файлах на вашем жестком диске.Системный раздел EFI (ESP), который обычно монтируется /boot/efi
в Ubuntu. Попробуйте следующие команды:
sudo efibootmgr -v
sudo find /boot/efi -iname "*.efi"
Первая показывает загрузчики, зарегистрированные в прошивке, включая их пути. Если вы видите несколько ссылок на shim.efi
, shimx64.efi
, grub.efi
, или grubx64.efi
(то есть более одной из этого набора), это может быть проблемой. Вторая команда находит все загрузочные программы на вашем ESP (предполагая, что он смонтирован в /boot/efi
). Опять же, несколько загрузочных программ могут быть проблемой, но в этом случае один Shim может сосуществовать с одним GRUB; это просто несколько двоичных файлов GRUB, которые могут быть проблемой.
Если у вас один BIOS-режим и один EFI-режим GRUB, это может быть сложнее обнаружить. Самый простой способ сделать это — запуститьСкрипт информации о загрузке,который идентифицирует загрузчики как режима BIOS, так и режима EFI, но для его интерпретации требуется определенный опыт.
Вы можете опубликовать RESULTS.txt
файл, который создает скрипт Boot Info, вместе с выводом тех двух команд, которые я отметил,сайт pastebin,и опубликуйте здесь URL-адреса, чтобы мы могли их интерпретировать.
Еще одно: если у вас есть GRUB как в режиме BIOS, так и в режиме EFI, и если GRUB в режиме BIOS дает сбой, вы можете обойти это, зайдя в прошивку и отключив модуль поддержки совместимости (CSM), также известный как «поддержка устаревшей загрузки» или что-то в этом роде. Я даю этому действию, возможно, 1 из 3 шансов исправить вашу проблему, но попробовать стоит, особенно если вы помните, что следовали инструкциям, чтобы включить CSM. Даже если это действие само по себе не решит проблему, оно может облегчить ее решение, как только причина будет лучше понята.