Счетчик

Поисковый анализ сайта
яндекс.ћетрика
Cервер и сайт запущен 2011.02.01 на Debian

Все доброго времени суток, сегодня я расскажу, как восстановить загрузчик.
Мы поставили linux, а потом решили поставить windows, из-за таких действий у нас слетает загрузчик grub и все далее linux уже не загрузится
Что ж, это не такая уж большая проблема, как могло бы показаться сначала. Давайте его восстановим :


Грузимся с Live CD Linux

После загрузки пишем команды (с правами root): 

# mkdir /old_root



создание каталога old_root, который будет точкой монтирования

# mkdir /old/dev



создание точки монтирования

# mount /dev/sda6 /old_root



монтирование устройства dev/sda6 к old_root (где dev/sda6 - место расположения старого загрузчика)

# mount --bind /dev /old/dev



монтирование устройств к /old/dev 
Теперь можно изменить корневую файловую систему:

chroot /old_root



Устанавливаем загрузчик:

# /sbin/grub-install /dev/hda



и перезагружаемся:

#reboot



Все друзья, все получилась.

Есть вариант который я выбрал раз и на всегда

Grub - как восстанавливаться в rescue mode 

В Grub Rescue Mode доступно очень немного команд. И поэтому восстановление происходит следующим образом: сначала нужно всеми силами попытаться подгрузить все модули, чтобы стала доступна вся функциональность Grub, а затем уже запуститься с нужного раздела будет легко.

Как известно, Grub состоит из двух частей.

Первая часть записана в MBR диска. Она и содержит базовую функциональность, то есть в ней есть консоль в rescue mode и ничего больше. В rescue mode нет даже команд загрузки системы с нужного раздела. Поэтому-то и нужно вначале определить, на каком разделе находится вторая часть груба (она лежит в каталоге /boot/grub), подгрузить недостающие модули. И только потом можно будет дать команду запуска с нужного раздела.

В rescue mode доступно всего четыре команды:

ls
set
unset
insmod



Вначале следует дать команду:

ls



В ответ она выведет, например, следующее:

(hd0) (hd0,msdos3) (hd0,msdos2) (hd0,msdos1) (hd1) (hd1,msdos2) (hd1,msdos1)



По непонятным причинам, в данном примере Grub даже не понимает, какие файловые системы находятся на разделах дисков, и почему-то их считает как msdos.

Нам нужно постараться угадать, какие диски мы видим. В данном случае видно два диска. Диск с индексом 0 содержит три раздела, диск с индексом 1 содержит два раздела. Я знаю, что мой линукс, который мне нужно загрузить, находится на диске с тремя разделами. Поэтому делаю вывод, что мне нужен hd0. 

По непонятным причинам Grub называет разделы в обратном порядке. И становится непонятно, что имеется в виду под (hd0,msdos3) - первый раздел или третий? Тут можно выкрутиться, использовав синтаксис (hd0,1). Нужно помнить, что в Grub счет дисков начинается с 0, а счет разделов - с 1.

Так как я знаю, что Linux в моем случае установлен на первый раздел, то нужный мне раздел будет обозначаться (hd0,1). Выяснив обозначение радела, нужно дать команды:

set prefix=(hd0,1)/boot/grub 
set root=(hd0,1)



Этими командами мы указываем использовать диск (hd0,1) для дальнейших команд. После чего нужно проверить, действительно ли на этом разделе есть то что нам нужно. Даем команду:

ls /boot/grub



... и если в ответ получаем список всех файлов в этой директории, то считам, что дальше все пойдет как по маслу.
Даем команды:

insmod ext2
insmod normal
normal



После чего Grub перейдёт в полнофункциональный режим. Он автоматически найдет все операционки, которые можно подгружать, и покажет своё Grub-меню. 
Дальнейшее восстановление обычно сводится к тому, чтобы загрузить нужный нам Linux, и в нем от рута дать команду:

grub-install /dev/sda


Эта команда переустановит в MBR код Grub-а таким образом, что он автоматически будет подхватывать свою вторую часть с раздела, с которого вы и загрузились.

ВСЕ!!!!

 

Добавить комментарий


Защитный код
Обновить