Невозможно получить доступ к GRUB при загрузке и не может загрузиться с ядром по умолчанию

Мой Optiplex 990 с сервером Ubuntu 16.04.3 не загружается. Я остался с мигающим курсором в левом верхнем углу. Я столкнулся с проблемой ядра спектра с Ядро паники после обновления до 4.4.0-108-generic

Я попытался следовать Как попасть в меню GRUB при загрузке время? , чтобы войти в личинку, но никакое количество смены постукивания / удержания (или побега, как указано в другом месте) не привело меня в личинку.

Я попробовал живой CD и запустил восстановление загрузчика ( https://help.ubuntu.com/community/Boot-Repair ), и мне это удалось, но ничего не удалось исправить.

Есть еще идеи?

2
задан 11 January 2018 в 22:37

1 ответ

В верхнем ответе на вопрос, с которым вы связаны, объясняется, как попасть в меню GRUB, если нажатие клавиши shift не работает. Вы просто редактируете файл /etc/default/grub и комментируете GRUB_HIDDEN_TIMEOUT=[some number]. Затем вы запускаете sudo update-grub.

Так как вы вообще не можете загрузиться, вы не можете сделать это так легко.

Тем не менее, вы можете сделать это из реальной системы, так что продолжайте и загружайтесь из реальной системы, как вы делали раньше.

Теперь вы можете настроить chroot. Если вы не уверены в метке устройства корневого раздела вашей установки, попробуйте запустить sudo fdisk -l, чтобы идентифицировать ее. В выводе вы должны увидеть что-то вроде

/dev/sda2 <numbers indicating size> Linux filesystem

. ​​Попробуйте смонтировать этот раздел:

sudo mount /dev/sdXY /mnt

, где sdXY - правильная метка. Затем посмотрите, есть ли в смонтированном разделе каталоги, которые вы ожидаете увидеть в своем корневом разделе:

ls /mnt

Если вы видите такие вещи (не обязательно такие, но, по крайней мере, большинство из них) )

bin    dev   mnt         root        sys   var
boot   etc   lost+found  opt         run   srv  tmp 
home   lib   media       proc        sbin  usr 

, тогда вы получили правильный раздел.

Если у вас есть отдельный загрузочный раздел, вам нужно его смонтировать. Если вы не уверены, проверьте файл /mnt/etc/fstab и посмотрите, есть ли в нем раздел, смонтированный на /boot. Игнорировать любое упоминание раздела, смонтированного на /boot/efi.

Если у вас есть отдельный загрузочный раздел, смонтируйте его:

sudo mount /dev/sdXY /mnt/boot

где sdXY - правильная метка загрузочного раздела.

Нам может потребоваться связать некоторые дополнительные ресурсы (я не уверен, что это необходимо в этом случае):

for d in dev sys run proc; do sudo mount --bind /$d /mnt/$d; done

Хорошо, теперь войдите в chroot

sudo chroot /mnt

Теперь мы может действовать так, как если бы мы были в нашей установленной системе. Сначала давайте отредактируем файл конфигурации:

sudoedit /etc/default/grub

(или вызовите ваш любимый текстовый редактор). Найдите строку

GRUB_HIDDEN_TIMEOUT=0

(она может иметь другое число, но это не важно). Закомментируйте строку, поместив # в ее начале, так что она говорит:

#GRUB_HIDDEN_TIMEOUT=0

Если у вас нет строки выше, найдите

GRUB_TIMEOUT_STYLE=hidden

и прокомментируйте, что вместо этого вместо

#GRUB_TIMEOUT_STYLE=hidden

проверьте, что строка

GRUB_TIMEOUT=[some number]

заканчивается числом больше 0 (по умолчанию может быть 10). Сохраните файл и выйдите.

Запустите эту команду, чтобы записать конфигурацию в /boot/grub/grub.cfg

sudo update-grub

Теперь вы можете перезагрузиться в свою установку, и меню GRUB будет вынуждено каждый раз появляться.

1
ответ дан 11 January 2018 в 22:37

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

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