Для загрузки 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 системы не совпадает с восстанавливаемой -- воспользуйтесь другим диском для восстановления.