Способ 1 (проще не бывает)
Это самый быстрый и легкий способ восстановить испорченные/битые/установленные не правильно/затертые установкой windows/называйте как хотите файлы GRUB2. Для этого нам потребуется:
а) Терминал – 1 шт.;
б) Знание на каком из дисков у нас находится раздел с установленной системой.
Наши действия. Мы загрузимся с LiveCD, примонтируем наш злосчастный раздел и, затем, скопируем необходимые файлы с LiveCD.
1. Загружаемся с LiveCD и выбираем пункт “Запустить Ubuntu без установки на компьютер”
2. Определяем, на каком из наших дисков установлена Ubuntu. Для этого открываем Терминал (Applications, Accessories, Terminal) и выполняем команду
sudo fdisk -l
3. Итак, с диском мы определились, теперь нам надо его примонтировать
sudo mount /dev/sdXY /mnt
*примечание: sdXY – где X – диск в системе (sda, sdb, sdc и т.д.) и Y – раздел диска (первый раздел – 1, второй -2 и т.д.).
Пример: sudo mount /dev/sda1 /mnt
**примечание: если у вас раздел /boot вынесен отдельно, тогда ваша команда должна выглядеть так: вначале создадим папку sudo mkdir /mnt/boot, затем монтируем sudo mount /dev/sda1 /mnt/boot, не забудьте учесть это при выполнении последующих команд.
4. Следующей командой запустим установку GRUB2.
sudo grub-install –root-directory=/mnt/ /dev/sdX
Пример: sudo grub-install –root-directory=/mnt/ /dev/sda
*примечание: Обратите внимание, что GRUB2 устанавливается на устройство (физический диск).
5. Перегружаемся
6. Не забываем обновить меню GRUB2 командой
sudo update-grub
Способ 2 – копируем файлы GRUB2 с уже установленного раздела
Что же это за способ? Этот способ подразумевает под собой, что GRUB2 установлен корректно, но не на тот раздел, на который следовало бы (как пример, Ubuntu установлена второй системой рядом с Windows, причем Windows находится на одном диске (sda), а Ubuntu на другом (sdb)). Посему мы будем копировать файлы из /boot/grub на выбранный нами диск и MBR.
1. Загружаемся с LiveCD и выбираем пункт “Запустить Ubuntu без установки на компьютер”
2. Монтируем раздел с установленной Ubuntu. Для этого, в меню “Places”, кликаем на необходимый нам раздел (в данном случае выбранный нами раздел, автоматически примонтируется в /media).
3. Раздел примонтирован. Теперь переустановим GRUB2. Делается это так:
sudo grub-setup -d /media/XXXX/boot/grub /dev/sdX
*примечание: XXXX – ваш UUID или метка тома, sdX – где X – диск в системе на который мы будем перезаписывать GRUB2(sda, sdb, sdc и т.д.).
Переписывать UUID крайне не удобно, поэтому можно упростить себе жизнь следующим образом. В меню “Places” выбираем наш диск, после чего слева нажимаем иконку с изображением карандаша, выделяем и копируем (CTRL-SHIFT) в адресной строке адрес, и вставляем (CTRL-SHIFT-V) в Терминал.
Пример:
sudo grub-setup -d /media/7848138a-41a0-4eba-8aed-d1b625ac8759/boot/grub /dev/sda
Если при выполнении данной команды вам выдаст ошибку “error: Cannot open /boot/grub/device.map”, в таком случае следует добавить ключ -m и указать путь к файлу device.map
sudo grub-setup -d /media/XXXXX/boot/grub -m /media/XXXXX/boot/grub/device.map /dev/sdX
Пример:
sudo grub-setup -d /media/7848138a-41a0-4eba-8aed-d1b625ac8759/boot/grub -m /media/7848138a-41a0-4eba-8aed-d1b625ac8759/boot/grub/device.map /dev/sda
Если вам опять выкинуло ошибку “error: Cannot open /boot/grub/device.map”, не отчаивайтесь, просто теперь вам надо перезагрузить компьютер.
4. Если вы не перезагружали компьютер, тогда это следует сделать сейчас.
5. После перезагрузки не забываем обновить GRUB2 командой sudo update-grub
Способ 3 – CHROOT
Я не буду останавливаться на пояснениях, что такое chroot и с чем его едят. Об этом можно найти много информации в интернете. Перейдем, непосредственно к тем действиям, которые мы должны совершить. Итак.
1. Загружаемся с LiveCD и выбираем пункт “Запустить Ubuntu без установки на компьютер”
2. Открываем Терминал (Applications, Accessories, Terminal).
3. Определяем, на каком из наших дисков установлена Ubuntu.
sudo fdisk -l
4. Монтируем раздел с установленной Ubuntu
sudo mount /dev/sdXY /mnt
Пример: sudo mount /dev/sda1 /mnt
*примечание: sdXY – где X – диск в системе (sda, sdb, sdc и т.д.) и Y – раздел (первый раздел – 1, второй -2 и т.д.).
**примечание: если у вас раздел /boot вынесен отдельно, тогда ваша команда должна выглядеть так: вначале создадим папку sudo mkdir /mnt/boot, затем монтируем sudo mount /dev/sda1 /mnt/boot, не забудьте учесть это при выполнении последующих команд.
5. Монтируем диски:
sudo mount –bind /dev/ /mnt/dev
6. Монтируем proc:
sudo mount –bind /proc/ /mnt/proc
7. Теперь зайдем в примонтированную систему как root:
sudo chroot /mnt
8. Если по каким либо причинам в примонтированной нами системе (/mnt или, в случае отдельного раздела с /boot, /mnt/boot) отсутствует или поврежден файл /boot/grub/grub.cfg, тогда следует запустить команду
update-grub
9. Переустанавливаем GRUB2
grub-install /dev/sdX
Не забываем вместо Х указать диск, на который вы хотите установить GRUB2.
*примечание: Обратите внимание, что GRUB2 устанавливается на устройство (физический диск).
**примечание: Если вам выбьет какую либо ошибку, тогда попробуйте запустить команду с ключем –recheck
Пример: grub-install –recheck /dev/sdХ.
10. Выходим из chroot
exit
или же комбинацией клавиш Ctrl+D
11. Теперь отмонтируем все, что мы примонтировали ранее. Делать это надо в таком порядке:
sudo umount /mnt/dev
Если у вас /boot находится на отдельном диске, тогда его отмонтируем следующим, в противном случае вы получите сообщение об ошибке “device busy”
sudo umount /mnt/boot
*примечание: Выполняем только в случае отедельно вынесенного /boot
Отмонтируем нашу систему
sudo umount /mnt
12. Перегружаем компьютер.
Все.