Форум твоего направления

Форум твоего направления (http://pcvector.ru/forum.php)
-   Статьи и FAQ (http://pcvector.ru/f48)
-   -   FAQ Grub2 - восстановление (http://pcvector.ru/t1010)

Vector 19.03.2010 00:03

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

Итак, это произошло...вы убили свой GRUB2, хотя, может и не убили, а он убитый пришел (с). В любом случае, у вас возник вопрос, как же его переустановить. Ниже я опишу 3 способа, как это можно сделать.
Способ 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) в Терминал.

http://pcvector.ru/files/linux/linux...recovery/3.png

Пример:
Код:

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


Источник



Часовой пояс GMT +3, время: 00:03.

Powered by vBulletin® Version 3.8.7
Copyright ©2000 - 2014, Jelsoft Enterprises Ltd. Перевод:
zCarot
Copyright © 2009 - 2014, pcvector.ru

.