Восстановление загрузчика GRUB

Материал из Linux Wiki
Версия от 17:55, 3 марта 2009; Rain (обсуждение | вклад) (Новая: # Загружаемся с live-cd. Вариант 1: # Выполняем '''grub-mkdevicemap''' # Смотрим '''/boot/grub/device.map''', узнаем, как называетс...)
(разн.) ← Предыдущая | Текущая версия (разн.) | Следующая → (разн.)
Перейти к навигацииПерейти к поиску
  1. Загружаемся с live-cd.

Вариант 1:

  1. Выполняем grub-mkdevicemap
  2. Смотрим /boot/grub/device.map, узнаем, как называется наш винчестер в grub-формате, допустим, (hd2)
  3. Выполняем grub-install "(hd2)" для установки GRUB в MBR указанного диска.

Вариант 2, более полный:

  1. Создаем точку монтирования для корневой ФС восстанавливаемой системы, допустим, /tmp/system
  2. Монтируем в нее корень восстанавливаемой системы.
  3. Монтируем при необходимости /boot внутри смонтированного корня (если /boot был на отдельном разделе)
  4. Монтируем /dev/ и /proc/ внутри смонтированного корня (соответственно, mount -t proc none /tmp/system/proc/ и mount -o bind /dev/ /tmp/system/dev/)
  5. Выполняем grub-mkdevicemap
  6. Смотрим /boot/grub/device.map, узнаем, как называется наш винчестер в grub-формате, допустим, (hd2), а /boot тогда, допустим, будет (hd2,0) (не забываем, что нумерация разделов идет с нуля)
  7. Чрутимся в собранную систему - chroot /tmp/system
  8. Запускам grub
  9. В консоли GRUB'a вводим root номер_/boot-раздела, т.е. root (hd2,0) для примера выше - этим мы указываем, где у нас лежит каталог GRUB'a.
  10. Там же вводим setup номер_раздела/диска, т.е., setup (hd2) для примера выше - этим мы указываем, на какой диск или раздел мы ставим загрузчик. При указании раздела (например, (hd2,2)) - GRUB ставится в загрузочную запись этого раздела и должен потом вызываться чем-то еще, если указываем целый диск - то GRUB ставится в MBR (обычно этот вариант и нужен). Должен пробежать текст примерно такого вида:
grub> root (hd2,0)
 Filesystem type is reiserfs, partition type 0x83

grub> setup (hd2)
 Checking if "/boot/grub/stage1" exists... no
 Checking if "/grub/stage1" exists... yes
 Checking if "/grub/stage2" exists... yes
 Checking if "/grub/reiserfs_stage1_5" exists... yes
 Running "embed /grub/reiserfs_stage1_5 (hd2)"...  21 sectors are embedded.
succeeded
 Running "install /grub/stage1 (hd2) (hd2)1+21 p (hd2,0)/grub/stage2 /grub/menu.lst"... succeeded
Done.

Установка завершена, наберите quit, выйдите с chroot'a (Ctrl+d) и перезагрузите систему.