Как восстановить grub

GRUB — это основной загрузчик Ubuntu начиная с версии 9.10. Ранее он был известен как GRUB2 и пришёл он на смену старой версии GRUB, известной теперь как GRUB Legacy. Если вам необходимо восстановить GRUB Legacy, например поскольку у Вас стоит версия Ubuntu старше 9.10, то вам необходимо прочитать соответствующую статью.

Несмотря на то, что это фактически две версии одного приложения с названием GRUB, они не имеют ничего общего и являются совершенно разными программами.

На любом загрузочном винчестере есть так называемая Главная загрузочная запись(англ. master boot record, MBR), к которой обращается BIOS при загрузке компьютера. В эту область загрузчик системы и должен записать информацию об основных файлах, которые хранятся уже на разделах винчестера.

Каждый раз при установке или восстановлении систем от Microsoft загрузчики Linux заменяются и их необходимо заново устанавливать.

Восстановление с помощью LiveCD/USB

Первый способ

Запустите систему с LiveCD/USB и откройте терминал. Для этого можно нажать и ввести команду:

gnome-terminal

Далее необходимо узнать Вашу таблицу разделов. Используйте команду:

sudo fdisk -l

На экран должна быть выведена примерно такая таблица:

/dev/sda1 29 8369 66999082+ 83 Linux /dev/sda2 * 8370 13995 45190845 7 HPFS/NTFS /dev/sda3 13996 14593 4803435 5 Extended

Из таблицы видим, что Linux стоит (в нашем случае) на разделе /dev/sda1

Теперь подключим этот раздел в /mnt следующей командой (следим за пунктуацией, особенно, за пропусками между кодами):

sudo mount /dev/sda1 /mnt

Затем, для записи grub в MBR, вводите следующую команду:

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

В случае, если нужно только восстановить MBR диска (например, после переустановки Windows), то этого достаточно.

Если нужно обновить и меню grub (например, после установки Windows), то нужно сделать:

sudo update-grub —output=/mnt/boot/grub/grub.cfg

Восстановление закончено!

Восстановление используя chroot

Запустите систему с LiveCD/USB и откройте терминал. Для этого можно нажать и ввести команду:

gnome-terminal

Далее необходимо узнать Вашу таблицу разделов. Используйте команду:

sudo fdisk -l

На экран должна быть выведена примерно такая таблица:

/dev/sda1 29 8369 66999082+ 83 Linux /dev/sda2 * 8370 13995 45190845 7 HPFS/NTFS /dev/sda3 13996 14593 4803435 5 Extended

Теперь нужно примонтировать Ваш Linux раздел (здесь это sda1) и еще несколько важных директорий:

sudo mount /dev/sda1 /mnt sudo mount —bind /dev /mnt/dev sudo mount —bind /proc /mnt/proc sudo mount —bind /sys /mnt/sys

Если раздел /boot или /var находится отдельно, то Вам необходимо примонтировать их в /mnt/boot и /mnt/var

Теперь перейдем в окружающую среду chroot:

sudo chroot /mnt

Теперь необходимо установить GRUB, используя команду:

grub-install /dev/sda

Если Вы получили сообщение об ошибке, то используйте команду: grub-install —recheck /dev/sda

Также в некоторых случаях может помочь вариант:

grub-install —recheck —no-floppy /dev/sda

Если все прошло успешно, выходим из chroot командой:

exit

Теперь необходимо отмонтировать разделы:

sudo umount /mnt/dev sudo umount /mnt/proc sudo umount /mnt/sys sudo umount /mnt

Если Вы монтировали раздел /boot воспользуйтесь командой:

sudo umount /mnt/boot

Затем перезагрузим Ваш компьютер командой:

sudo reboot

При необходимости Вы можете обновить меню загрузчика командой:

sudo update-grub

Восстановление в rescue mode

При отсутствии загрузочного диска, можно восстановить Grub из его консоли. Восстановление происходит следующим образом: сначала нужно подгрузить все модули, чтобы стала доступна вся функциональность Grub, а затем уже запуститься с нужного раздела. Как известно, Grub состоит из двух частей. Первая часть записана в MBR диска. Она содержит базовую функциональность, то есть в ней есть консоль в rescue mode и ничего больше. Вначале нужно определить, на каком разделе находится вторая часть груба (она лежит в каталоге /boot/grub), подгрузить недостающие модули. И только потом можно будет дать команду запуска с нужного раздела. В rescue mode доступно всего четыре команды:

ls set unset insmod

Вначале следует дать команду:

ls

В ответ она выведет, например, следующее:

(hd0) (hd0,msdos3) (hd0,msdos2) (hd0,msdos1) (hd1) (hd1,msdos2) (hd1,msdos1)

Иногда Grub может неправильно опеределить, какие файловые системы находятся на разделах дисков. В данном случае определяет их как msdos. Нам нужно постараться угадать, какие диски мы видим. В данном случае видно два диска. Диск с индексом 0 содержит три раздела, диск с индексом 1 содержит два раздела. Зная структуру своих дисков несложно определить нужный диск.

Grub называет разделы в обратном порядке. И становится непонятно, что имеется в виду под (hd0,msdos3) — первый раздел или третий? Тут можно выкрутиться, использовав синтаксис (hd0,1). Нужно помнить, что в Grub счет дисков начинается с 0, а счет разделов — с 1. Предположим, что Линукс установлен на первый диск в первый раздел, то есть (hd0,1). Даем команду:

set prefix=(hd0,1)/boot/grub set root=(hd0,1)

Этими командами мы указываем использовать диск (hd0,1) для дальнейших команд. После чего нужно проверить, действительно ли на этом разделе есть то, что нам нужно. Даем команду:

ls /boot/grub

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

insmod ext2 insmod normal normal

Проверьте правильность написания первой команды для файловых систем ext3 и ext4

Если ОС расположена на разделе, отформатированном в btrfs, то выполняем следующие команды: set prefix=(hd0,1)/@/boot/grub set root=(hd0,1)

подгружаем модули:

insmod btrfs insmod normal

запускаем GRUB:

normal

После чего Grub перейдёт в полнофункциональный режим. Он автоматически найдет все операционки, которые можно подгружать, и покажет своё Grub-меню.

Дальнейшее восстановление сводится к тому, чтобы загрузить нужный нам Linux, и в нем от рута дать команду:

grub-install /dev/sdX

Где sdX, диск, на который нужно установить Grub.

Ссылки

Оригинал инструкции на форуме MIB (Mandriva International Backports):How to reinstall Grub2 from a live ROSA Desktop Linux


Рекомендации по восстановлению загрузочной записи Grub2 в MBR следующие:

1. Загружаемся с флешки или DVD в Live-режиме.

2. Запускаем графическую программу Gparted или Пишем в консоли от root-а:

fdisk -l

У нас выходит список разделов нашего жесткого диска (например):

Units = sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disk identifier: 0x6e2792ad Устр-во Загр Начало Конец Блоки Id Система /dev/sda1 * 2048 51552584 25775268+ 7 HPFS/NTFS/exFAT /dev/sda2 51552585 100920329 24683872+ 83 Linux /dev/sda3 100920330 103089104 1084387+ 82 Linux своп / Solaris /dev/sda4 103090176 488396799 192653312 7 HPFS/NTFS/exFAT

3. В данном примере sda это загрузочный диск, а sda2 это корневой (/root) раздел нашей установленной системы РОСА. Поскольку в разных конфигурациях буква диска может различаться, то далее будем использовать sdX и sdXX соответственно для их обозначения.

Дальше, надо примонтировать нужные разделы:

sudo su mkdir /chroot mount /dev/sdXX /chroot # В нашем примере sdXX — это sda2 for i in dev sys proc etc/resolv.conf; do mount —bind -v /$i /chroot/$i; done

Если после

mount /dev/sdXX /chroot # В нашем примере sdXX — это sda2

возникают ошибки и у вас файловая система BTRFS, то эта команда должна иметь дополнительный вид (указываем, какой подраздел монтировать):

mount -o subvol=@ /dev/sdXX /chroot # В нашем примере sdXX — это sda2

4. Теперь надо сделать chroot в установленную систему.

chroot /chroot

5. Затем надо установить Grub2 в MBR.

grub2-install /dev/sdX # В нашем примере sdX — это sda

В Ubuntu, Debian grub2-install заменить на grub-install.

6. После установки Grub2, нужно чтобы он нашел другие загрузочные записи на жестком диске (например Windows).

Для этого дадим следующую команду:

update-grub2

В Ubuntu,Debian update-grub2 заменить на update-grub. 7. Выходим из chroot и Live-режима и перегружаем компьютер. После перезагрузки, будет меню Grub2 со списком всех ваших ОС.

exit sync reboot

Восстановление GRUB – достаточно распространенная операция, с которой приходится сталкиваться многим. Загрузчик повреждается или затирается при установке Windows в качестве второй системы. Не имеет значения, какая сборка Linux стоит – Ubuntu, Mint, Debian или любая другая: восстановить GRUB можно через терминал или с помощью специальной утилиты.

Восстановление через терминал

Windows не дружит с Linux, поэтому если вы ставите систему от Microsoft после Ubuntu, Mint 17 или другой линуксовской сборки, то будьте готовы к тому, что загрузчик затрется.

Чтобы не теряться в этой ситуации, распечатайте инструкцию и храните её возле компьютера.

  1. Загрузите Linux с флешки или диска, который использовался при установке.
  2. Откройте терминал, используя сочетание Ctrl+Alt+T. Введите команду «sudo fdisk –l», чтобы посмотреть структуру разделов.
  3. Посмотрите в столбце «Device Boot» корневой раздел Linux Ubuntu (для Mint 17 и других сборок процедура ничем не отличается). В приведенном примере корневой раздел обозначается как sda5.
  4. Смонтируйте том в систему с командой «sudo mount /dev/sda5 /mnt».

    Вместо «sda5» необходимо написать номер тома, где расположен корневой раздел вашей Ubuntu или Mint 17.

  5. Для восстановления загрузчика введите «sudo grub-install —root-directory=/mnt /dev/sda».

После перезаписи загрузчика необходимо перезагрузить компьютер, используйте команду «sudo reboot». После перезагрузки должно появиться окно выбора операционной системы. Если GRUB был перезаписан в результате установки новой версии Windows, но в окне выбора системы продолжает отображаться старая версия, то нужно выполнить обновление загрузочной записи. Для этого загрузитесь в Ubuntu и выполните в терминале команду «sudo update-grub».

Использование утилиты восстановления

Если работа с терминалом кажется сложной, можно автоматизировать процесс восстановления, использовав специальную утилиту boot-repair.

Запустите сборку Linux с флешки или диска. Откройте терминал и выполните последовательно три команды:

  • sudo add-apt-repository ppa:yannubuntu/boot-repair.
  • sudo apt-get update.
  • sudo apt-get install boot-repair.

Установленная программа будет иметь название «Восстановление загрузчика». Запустите утилиту (выполните «boot-repair» в консоли) и выберите режим работы. Новичкам подойдет «Рекомендуемый способ восстановления». После запуска этого режима GRUB будет автоматически восстановлен.

Есть и топорный способ восстановления GRUB – переустановка Linux. Многие новички используют этот радикальный метод, лишь бы не связываться с терминалом. Однако переустановка приводит к удалению пользовательских файлов, поэтому применять её из-за банального повреждения загрузчика – слишком большая роскошь.

.

Добавить комментарий

Закрыть меню