GRUB Legacy - это основной загрузчик Ubuntu до версии 9.04 включительно. Он умеет грузить большинство операционных систем, однако в 9.10 ему на смену пришёл загрузчик следующего поколения - GRUB 2. Как восстановить его - читайте в соответствующей статье.

Не перепутайте GRUB версии 1, известный теперь как GRUB Legacy и использовавшийся в Ubuntu до версии 9.04 включительно, и GRUB версии 2, который подразумевается сейчас под словом GRUB и используется в Ubuntu начиная с версии 9.10. Несмотря на то, что это фактически две версии одного приложения с названием GRUB, они не имеют ничего общего и являются совершенно разными программами.

Основная проблема любого загрузчика Linux - это то, что он никак не отвечает за тупизну систем от Microsoft, которые каждый раз при установке или восстановлении перетирают загрузчики Linux из загрузочной области.

Вкратце: на любом винчестере есть так называемая MBR область, к которой обращается BIOS при загрузке компьютера с этого винчестера. В эту MBR загрузчик системы должен записать 'ссылку' на свои основные файлы, которые храняться уже на основных разделах винчестера. Так вот, Windows при установке перетирает без всяких вопросов ссылку Linux и ставит свою, в итоге, Linux пропадает из меню загрузки. Слава богу, Windows так же втихую не убивает сам Linux, так что восстановить последствия беспредела достаточно просто.

Кроме того, иногда каким-то образом удаётся повредить файлы GRUB Legacy на винчестере, в этом случае их необходимо записать обратно, как это сделать - см. ниже.

Восстановление MBR с использованием LiveCD Ubuntu

Вам понадобиться всего лишь LiveCD с Ubuntu (обычный диск Ubuntu Desktop, в принципе, любой версии до 9.04 включительно). Загрузите компьютер с него, в появившемся при загрузке меню выберите пункт Загрузить Ubuntu без установки на компьютер, дождитесь окончания загрузки.

Теперь откройте терминал, он находится в меню Приложения→Стандартные→Терминал в русской версии или в меню Applications→Accessories→Terminal в английской версии.

В открывшемся терминале наберите:

sudo grub

Вы увидите нечто похожее на:

       [ Minimal BASH-like line editing is supported.   For
         the   first   word,  TAB  lists  possible  command
         completions.  Anywhere else TAB lists the possible
         completions of a device/filename. ]
grub>

Это значит, что вы попали в программу управления grub. Теперь нам надо выяснить, где на вашем компьютере храниться основная часть загрузчика GRUB, для этого наберите:

find /boot/grub/stage1
Если вы по каким-то причинам при установке Ubuntu сделали /boot отдельным разделом, то команда будет выглядеть так:
find /grub/stage1

Кроме того, если у вас стоит несколько ОС Linux с загрузчиками GRUB Legacy, то возможно вы получите несколько результатов - выбирайте нужный вам.

В результате выполнения этой команды вы увидите нечто типа:

grub> find /boot/grub/stage1
find /boot/grub/stage1
 (hd0,0)

Нас интересует строчка «(hd0,0)». Это раздел, на котором программа нашла установленный GRUB Legacy. Первая цифра (после hd) - номер винчестера, вторая - номер раздела на нём. Теперь для восстановления GRUB Legacy выполняем следующие команды, подставив вместо «(hdX,Y)» и «(hdX)» полученные ранее вами значения (в моём случае это были «(hd0,0)» и «(hd0)»):

root (hdX,Y)
setup (hdX)
quit
Будьте внимательны, рядом с «setup» надо писать в скобках только часть, относящуюся к винчестеру, т.е. «(hdX)». Если вы напишите так же, как и в «root» - «(hdX,Y)», то во-первых не добьётесь нужного результата, а во-вторых вполне можете повредить ФС на разделе «(hdX,Y)».

Всё, теперь можно перезагрузиться, при загрузке вы снова сможете попасть в свою Ubuntu. Правда, если вы устанавливали Windows, то он не появится волшебным образом в меню загрузки, см. ниже пункт про добавление в меню опций загрузки Windows и других ОС.

Super Grub Disk

Существует специальный диск для выполнения восстановительных работ с MBR, скачать его можно с официального сайта:

Инструкция по восстановлению остаётся такой же, как и в случае с LiveCD Ubuntu, с той лишь разницей, что необходимо грузиться с загрузочного диска Super Grub Disk, подробнее см. на сайте.

Установка файлов GRUB на раздел с Linux

Иногда зачем-то бывает необходимо поставить GRUB Legacy на существующий раздел с Linux. Например, если вы по неосторожности сумели повредить файлы загрузчика. Делается это очень просто. Необходимо загрузиться с LiveCD Ubuntu (или Super Grub Disk) и примонтировать раздел с вашим Linux. Допустим, вы примонтировали его в каталог /mnt.

Теперь необходимо выполнить в терминале, заменив при необходимости /dev/hda на тот винчестер, в MBR которого вы хотите прописать GRUB Legacy, а /mnt - на тот каталог, куда вы смонтировали ваш раздел с Linux.

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

После этого GRUB Legacy поставится в /mnt/boot/grub и пропишет загрузку себя в MBR винчестера /dev/sda.

Если вы не знаете, что такое /dev/sda, или если у вас /boot отдельным разделом, то сначала разберитесь, что да как, а потом уже выполняйте команду grub-install

Добавление Windows и других ОС в меню загрузки GRUB

GRUB Legacy умеет грузить большинство современных ОС, однако, он не волшебник и сам выводить список установленных ОС не умеет. Поэтому ему нужно сказать, где находится ОС, которую вы хотите загрузить. Для этого нужно отредактировать файл настройки GRUB - /boot/grub/menu.lst. Он отвечает за содержание меню загрузки GRUB, подробнее об его редактировании см. в основной статье про GRUB.

Восстановление загрузчика WinXP

Иногда, по совершенно непонятным причинам, возникает необходимость восстановить не GRUB, а загрузчик WinXP. Этот загрузчик, в отличие от GRUB Legacy, не умеет грузить ни Linux, ни более современные версии Windows, так что подумайте перед тем как выполнять приведённые ниже инструкции.

Для восстановления загрузчика WinXP надо загрузиться с установочного диска WinXP и выбрать пункт Восстановление системы. Далее:

  1. В консоли восстановления наберите команду fixmbr и подтвердите выполнение команды, нажав y
  2. Далее наберите команду fixboot и подтвердите выполнение команды, нажав y
  3. Теперь наберите exit для выхода из консоли.