Восстановление загрузчика GRUB: различия между версиями
Rain (обсуждение | вклад) |
Rain (обсуждение | вклад) |
||
(не показана 1 промежуточная версия этого же участника) | |||
Строка 1: | Строка 1: | ||
__TOC__ | __TOC__ | ||
==GRUB 1== | ==GRUB 1== | ||
# Загружаемся с live-cd | # Загружаемся с live-cd/flash/другой системы | ||
===Вариант 1=== | ===Вариант 1=== | ||
Строка 77: | Строка 77: | ||
Когда загрузится установленная система загрузчик можно заново установить штатными средствами - командой '''grub-install''', например, '''grub-install '(hd0)'''' | Когда загрузится установленная система загрузчик можно заново установить штатными средствами - командой '''grub-install''', например, '''grub-install '(hd0)'''' | ||
==Ссылки== | |||
* [http://www.gnu.org/software/grub/manual/grub.html#Troubleshooting Ошибки GRUB] | |||
[[Category:Администрирование]] | [[Category:Администрирование]] |
Текущая версия на 11:17, 30 апреля 2010
GRUB 1
- Загружаемся с live-cd/flash/другой системы
Вариант 1
Простая конфигурация, софт той же версии (используются конфиги live-системы?)
- Выполняем grub-mkdevicemap
- Смотрим /boot/grub/device.map, узнаем как называется наш винчестер в grub-формате, допустим, (hd2)
- Выполняем grub-install "(hd2)" для установки GRUB в MBR указанного диска.
Вариант 2
Для более сложных конфигураций (например, с отдельным /boot), софт той же версии
- Выполняем grub-mkdevicemap
- Смотрим /boot/grub/device.map, узнаем как называется наш винчестер в grub-формате, допустим, (hd2), а /boot тогда, допустим, будет (hd2,0) (не забываем, что нумерация разделов идет с нуля)
- Запускам grub
- В консоли GRUB'a вводим root номер_/boot-раздела, т.е. root (hd2,0) для примера выше - этим мы указываем, где у нас лежит каталог GRUB'a.
Примечание: номера разделов обычно дополняются по Tab'у, пользуйтесь им чаще - Там же вводим 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 и перезагрузите систему.
Вариант 3
Самый полный и сложный, создание модели системы и chroot в нее для выполнения операций - полностью используются утилиты, библиотеки и конфиги восстанавливаемой системы
- Создаем точку монтирования для корневой ФС восстанавливаемой системы, допустим, /tmp/system
- Монтируем в нее корень восстанавливаемой системы.
- Монтируем при необходимости /boot внутри смонтированного корня (если /boot был на отдельном разделе)
- Монтируем /dev/ и /proc/ внутри смонтированного корня (соответственно, mount -t proc none /tmp/system/proc/ и mount -o bind /dev/ /tmp/system/dev/)
- Выполняем grub-mkdevicemap
- Смотрим /boot/grub/device.map, узнаем, как называется наш винчестер в grub-формате, допустим, (hd2), а /boot тогда, допустим, будет (hd2,0) (не забываем, что нумерация разделов идет с нуля)
- Чрутимся в собранную систему - chroot /tmp/system
- Запускам grub
- В консоли GRUB'a вводим root номер_/boot-раздела, т.е. root (hd2,0) для примера выше - этим мы указываем, где у нас лежит каталог GRUB'a.
Примечание: номера разделов обычно дополняются по Tab'у, пользуйтесь им чаще - Там же вводим 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) и перезагрузите систему.
GRUB 2
Для восстановления GRUB 2 можно загрузиться с любого live-cd/Flash-дистрибутива, где используется GRUB 2 (у меня, например, на флешке установлен обычный Debian, где в качестве загрузчика используется GRUB 2), после появления меню надо нажать "c" для перехода в командную строку, а потом проделать все те шаги, которые обычно выполняет загрузчик:
- указать корень командой root, например, root (hd1,1). Нумерация разделов идет с 1, пользуемся табуляцией для определения нужного диска. Корень указывается для загрузчика, а не системы, т.е. указывается /boot-раздел!
- указать ядро и параметры командой linux, например, linux /vmlinuz-2.6.34 vga=791 root=/dev/sda2 - так, как оно было в установленной системе
- при необходимости указать initrd командой initrd, например, initrd /initrd.img-2.6.34
- загрузить все вышеперечисленное командой boot
Когда загрузится установленная система загрузчик можно заново установить штатными средствами - командой grub-install, например, grub-install '(hd0)'