Сайт | Скачать | Видео | Wiki

Автор Тема: [Grub. Восстановление загрузчика]  (Прочитано 5936 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Zloy_T

  • Почетный участник
  • Старожил
  • *
  • Сообщений: 326
  • Репутация: +74/-2
  • Автор темы
[Grub. Восстановление загрузчика]
« : 08 Апрель 2009, 17:42:30 »
Grub. Восстановление загрузчика.

Загрузчик grub по сути состоит из трёх частей: stage1 stage2 и menu.lst.
stage1 это первая часть загрузчика размером в 512 байт, основная цель которой указать где искать stage2 и menu.lst. stage2 это собственно сам grub (те самые меню при загрузке и командная строка). menu.lst это файл конфигурации grub (в нём же находится список загружаемых операционных систем). stage1 обычно расположен в загрузочной области винчестера (так называемый boot-сектор), а stage2 и menu.lst на одном из разделов в директории /grub или /boot/grub.

Иногда так случается, что boot-сектор затирается (например при установке другой операционной системы). Если такое случилось, то не стоит отчаиваться, восстанавливается загрузчик совсем просто. Для этого в boot-сектор (кстати, его ещё иногда называют MBR) нам нужно вновь вернуть stage1, но с тем условием, чтобы этот stage1 знал где искать stage2. А сделать это можно вот так.
Запускаем grub. Это можно сделать загрузившись с livecd, на котором есть grub (например PuppyRus) и набрать в терминале  grub. Так же воспользоваться флопи-grub (дискету можно создать так же с помощью livecd Puppy запустив команду grub-floppy) или cd-grub.
Набираем cat (hd и нажимаем tab два раза. Если у нас несколько жёстких дисков, то мы получим их список, если один, то получим список разделов, например:
Код
Partition num: 0, Filesystem type is xfs, partition type 0x83
Partition num: 2, Filesystem type is ext2fs, partition type 0x83
Partition num: 4, Filesystem type unknown, partition type 0x82

Если знаете какой раздел вам нужен, набираете соответствующий номер, если нет, то набирайте по очереди и жмите tab для получения списка директорий и файлов. В итоге вы должны найти /grub/menu.lst или /boot/grub/menu.lst

Код
grub> cat (hd0,0)/
Possible files are: ftp giner pivanov

(hd0,0) не тот, кто нам нужен

Код
grub> cat (hd0,2)/
Possible files are: lost+found var etc media cdrom bin boot dev home initrd lib mnt opt proc root sbin srv sys tmp usr initrd.img vmlinuz
initrd.img.old vmlinuz.old

Код
grub> cat (hd0,2)/boot/grub/
Possible files are: device.map stage1 stage2 e2fs_stage1_5 fat_stage1_5 jfs_stage1_5 minix_stage1_5 reiserfs_stage1_5 xfs_stage1_5 default
installed-version menu.lst menu.lst~

а вот (hd0,2) это он

Теперь я знаю что всё что мне нужно находится на разделе (hd0,2). Дело за малым, ставим boot-сектор:
root (hd0,2) (здесь мы говорим, что stage2 и menu.lst находятся на разделе 2)
setup (hd0) (устанавливаем boot-сектор на 1-й винчестер)
Готово! Можно в ребут :)

http://www.helplinux.ru/kb:std:grub1



Способ №2

Код
grub> find /boot/grub/stage2
 (hd0,6)

grub> root (hd0,6)
 Filesystem type is ext2fs, partition type 0x83

grub> setup (hd0)
 Checking if "/boot/grub/stage1" exists... yes
 Checking if "/boot/grub/stage2" exists... yes
 Checking if "/boot/grub/e2fs_stage1_5" exists... yes
 Running "embed /boot/grub/e2fs_stage1_5 (hd0)"...  15 sectors are
embedded.
succeeded
 Running "install /boot/grub/stage1 (hd0) (hd0)1+15 p
(hd0,6)/boot/grub/stage2
/boot/grub/ menu . lst "... succeeded
Done.

Если 'setup (hd0)' заменить на 'setup (hd0,6)', установка grub будет
сделана не в MBR, а в BR раздела.
« Последнее редактирование: 05 Май 2009, 15:35:52 от Zloy_T »