Grub2 — восстановление

Способ 1 (проще не бывает)

Это самый быстрый и легкий способ восстановить испорченные/битые/установленные не правильно/затертые установкой /называйте как хотите файлы . Для этого нам потребуется:

а) Терминал — 1 шт.;
б) Знание на каком из дисков у нас находится раздел с установленной системой.

Наши действия. Мы загрузимся с LiveCD, примонтируем наш злосчастный раздел и, затем, скопируем необходимые файлы с LiveCD.

1. Загружаемся с LiveCD и выбираем пункт «Запустить без установки на компьютер»

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. Перегружаем компьютер.

Все.