Как восстановить загрузчик GRUB 2

grub menuДля загрузки Ubuntu используется программа-загрузчик GRUB (Grand Unified Bootloader). Она добавляет в главную загрузочную запись жёсткого диска информацию о том, что и от куда нужно загружать. Случается, что запись уничтожается другим загрузчиком. Это может произойти, например, во время установки Windows на соседний раздел. Тогда Windows заменит запись на свою, но предлагать загружать ещё и Ubuntu, она не будет.

Поэтому нам нужно восстановить загрузочную запись Ubuntu, а значит и сам Grub, чтобы вернуть к ней доступ.

Для этого нужно загрузиться с внешнего носителя, на котором установлена Ubuntu. Для этого отлично подойдёт установочный диск / флешка, с которой вы ставили Ubuntu.

Важный момент: если у Вас нет того же диска / флешки, но есть другой Linux на внешнем носителе, но подойдёт только если он написан под ту же архитектуру, что и восстанавливаемая система. То есть, с диска с 32х-битной Ubuntu не восстановить 64х-битную. По крайней мере, тем способом, что предлагается ниже.

Восстанавливаем Grub 2

Итак, предположим, у нас есть правильный диск с Linux. Загружаемся с него (в режиме Live). Открываем консоль и монтируем нужный логический диск (тот, на котором установлена восстанавливаемая система).

sudo mount /dev/sda1 /mnt

Где /dev/sda1 — это внутреннее именование нужного раздела диска.

Если вы не знаете, как называется нужный раздел диска, выполните команду «mount» — она покажет все примонтированные разделы. После чего зайдите в файловый менеджер и примонтируйте нужный раздел. Снова посмотрите в mount — там добавилась строчка. В самом начале которой написано нечто вроде /dev/sdXY. X — буква, Y — число. Итак, используя написанную выше команду, примонтируйте раздел в папку /mnt.

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

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

sudo chroot /mnt

И выполним восстановление grub:

sudo grub-install /dev/sdX

Где X — это всё та же буква, что и выше.

Проблемы при восстановлении

Если после выполнения всех вышеуказанных действий продолжает загружаться Windows — проверьте с правильного ли физического диска вы загружаетесь (в BIOS).

Если выдаёт:

chroot: cannot run command `/bin/bash': Exec format error

значит архитектура Live системы не совпадает с восстанавливаемой — воспользуйтесь другим диском для восстановления.

Поделиться заметкой:
Узнать версию Linux
Все способы узнать версию дистрибутива Linux (а также FreeBSD, MacOS и прочих)
Права на файлы
Права на файлы и папки в Linux, FreeBSD и MacOS
Настоящий интеллект
  • Вадим

    Если загружаться с Live, то пишет, что нет прав на выполнение этой операции. Получается замкнутый круг. Что делать?

  • Я

    Вадим живой диск должен быть установщиком твоей системы

  • joylight

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