20 февраля 2011 г.

восстановление grub после переустановки windows

Недавно товарищ "сломал линукс", переустановив винду на отдельном разделе. На самом деле мы то знаем, что он просто перетёр загрузчик. Почему-то у него вызвало затруднение его восстановление. Он нашёл 100500 способ в интернете, ни один не сработал, вот сидел и грустил. За 3 минуты я ему починил, за 10 минут написал заметку о том, как восстановить grub после переустановки винды. Даже два способа укажу приемлемых.

Поглядел, действительно, по инету ходят странные способы загрузок с лайв-сиди и дальнейшие дистрибутивозависимые действия. Это удивительно, если учесть, что grub сам себя умеет устанавливать куда угодно.

Первый способ (очень вкратце), как ни странно более распространённый: грузимся с лайвсиди (не самого старого, лучше с того же, что сама линукс-система), дальше монтируем основной раздел линукса (если лайвсиди его не подмонтировал, например в /mnt/sysimage, как это делает федора). Потом ему chroot. Дальше grub-install /основной/раздел (например, /dev/sda). С этим способом лично у меня была однажды какая-то проблема в федоре (хоть убей не помню подробностей).

Второй способ. Делаем из самого grub. Запускаем из того же livecd
# grub
, открывается грубовская консоль. После этого осталось только сделать setup с указанием раздела.

Предположим, мы вообще не в теме, какой именно раздел и как в терминах груба называется. Воспользуемся командой (всё той же грубовской консоли) find с параметром — именем файла, который надо найти. Хитрость тут в том, что если раздел /boot отдельный, то надо искать с корнем от этого /boot, то есть файл /grub/grub.conf, если же /boot у вас в корневом разделе, то искать надо /boot/grub/grub.conf. Эта очевидная тонкость смутила в том числе почему-то упомянутого товарища. Файл, который надо искать, роли не играет на самом деле. Для подтверждения этого факта, хотя в большинстве руководств ищется файл /boot/grub/stage1, я выбрал другой для пущей важности.

У меня раздел под /boot отдельный, то есть я бы сделал так:
grub> find /grub/grub.conf
find /grub/grub.conf
 (hd0,1)
Вот мы видим (hd0,1). Это и есть то, что надо. Осталось сделать:
root(hd0,1)
setup(hd0)
quit
Ну и всё. Конфиг grub.conf остался старый, если винда уже была. Всё будет работать как было. Пояснять что такое setup, (hd0), root итд не буду — в инете всё разжёвано. Также в грубовской консоли работают команды "help" и "help команда".

Комментариев нет:

Отправить комментарий