Как запустить update-grub из LiveCD?

43

Хорошо, поэтому я сделал что-то глупое. Я пытался очистить записи Grub и случайно удалил все мои ядра Linux из Grub (они все еще находятся на жестком диске). Итак, теперь, очевидно, Grub не дает мне возможности загрузиться в Ubuntu; Я могу нормально загрузиться в Windows, но Ubuntu даже не указан.

Поэтому я просто хочу запустить «sudo upgrade-grub», чтобы восстановить Ubuntu в списке. Я могу загрузиться с LiveCD, но как только я могу запустить эту команду? (Кстати, установка My Ubuntu на sda5, кстати.)

    
задан Kelley 01.06.2012 в 22:31
источник

5 ответов

0

Спасибо за всю большую помощь! Однако в конце ничего не работало, и поскольку у меня был отдельный / домашний раздел, я смог переустановить Ubuntu, не потеряв никаких данных. Мне по-прежнему приходится переустанавливать программы и выполнять некоторую настройку, но в этот момент все кажется хорошим.

    
ответ дан Kelley 02.06.2012 в 01:27
источник
56

Поскольку вы говорите, что ваш загрузчик grub появляется, но меню пуст, я думаю, вам не нужно переустанавливать grub, но, как вы просите, запустите update-grub. Для этого вы можете использовать Live CD, монтировать соответствующие разделы с жесткого диска, chroot в смонтированный каталог и запускать update-grub, который должен работать так, как если бы вы работали на самом жестком диске.

Загрузитесь с Live CD, выбрав «Попробовать Ubuntu без установки».

Как только он загрузится, откройте терминал (ctrl-alt-t) и установите раздел Ubuntu в / mnt. Я предполагаю, что раздел Ubuntu есть / dev / sda5, но вы должны сами определить это. Дайте мне знать, если вам нужна помощь для этого:

sudo mount /dev/sda5 /mnt

Затем установите еще несколько каталогов, которые необходимы:

sudo mount --bind /dev /mnt/dev
sudo mount --bind /sys /mnt/sys
sudo mount --bind /proc /mnt/proc

Кроме того, если у вас есть отдельный загрузочный раздел Ubuntu (довольно редко в наши дни, но это может быть так):

sudo mount /dev/sdaX /mnt/boot

Как вы можете узнать, есть ли загрузочный раздел?

Как только у вас установлен раздел Ubuntu, откройте /mnt/etc/fstab . Если вы видите запись для /boot , обратите внимание, какое устройство оно указывает ( /dev/sda4 , возможно?). Это тот, который вы должны монтировать.

После того, как они установлены, сделайте chroot, чтобы начать использовать смонтированный каталог в качестве корневого раздела:

sudo chroot /mnt

Вы получите приглашение #/ . Первое, что нужно сделать, это подтвердить, что вы используете правильный каталог /boot . Перейдите в /boot/grub и посмотрите там файлы. Должно быть множество файлов .mod и файл grub.cfg. Если каталог пуст, не продолжайте, потому что это означает, что это НЕ ваш фактический каталог boot . Посмотрите, как определить, нужно ли вам установить дополнительный каталог boot .

Как только вы подтвердите, что /boot/ содержит правильные файлы, что означает, что правильное местоположение, введите:

sudo update-grub

Это должно перестроить файл /boot/grub/grub.cfg с помощью записей в меню.

Затем выйдите из chroot:

exit

В этот момент вы можете проверить, что все было правильно обновлено. Для этого cd /mnt/boot/grub и проверьте, есть ли там файлы grub, должна быть куча файлов .mod и grub.cfg, последние должны иметь записи для ваших ядер Ubuntu. Если вы видите только файлы grub.cfg и no .mod, это означает, что это НЕ правильный загрузочный каталог, посмотрите выше, как установить отдельный загрузочный раздел.

Отключите файловые системы:

sudo umount /mnt/dev
sudo umount /mnt/sys
sudo umount /mnt/proc
sudo umount /mnt/boot #Only if you mounted it earlier
sudo umount /mnt/

И затем перезагрузитесь, надеюсь, ваше меню Grub будет восстановлено.

    
ответ дан roadmr 01.06.2012 в 23:02
9

Загрузка с Live CD.

Нажмите Alt + Ctrl + T , чтобы открыть терминал и запустить следующие команды:

sudo mount /dev/sda5 /mnt

Установите загрузчик GRUB2:

sudo grub-install --root-directory=/mnt /dev/sda

Это /dev/sda - сам жесткий диск, а не раздел Ubuntu - /dev/sda5 .

Отключите раздел Ubuntu и перезагрузите компьютер следующим образом:

sudo umount /dev/sda5 ; sudo reboot

Если у вас установлено более одной ОС, повторите обнаружение таких ОС:

sudo update-grub

Вот и все!

    
ответ дан Basharat Sialvi 01.06.2012 в 22:48
1

Мое решение этой проблемы:

  1. загрузить supergrub2disk из Ссылка
  2. положите его на pendrive Ссылка
  3. загрузочный компьютер с pendrive с помощью supergrub2disk на нем
  4. войдите в свой Ubuntu
  5. получить Boot-Repair для Ubuntu с Ссылка

Возможно, это не самое быстрое решение, но для меня это был самый простой.

    
ответ дан jmarceli 06.02.2014 в 15:55
0

Комбинированные инструкции roadmr и Basharat Sialvi можно найти здесь: Ссылка

Инструкции для команд chainloader и multiboot Grub2 находятся в вики помощи сообщества .     

ответ дан user293759 29.11.2015 в 18:37