База знаний по Open Source
Yandex поиск по всему сайту
Авторизация

Иногда случется нарушение нормального функционирования загрузчика GRUB2. Например, после установки Windows можно столкнуться с тем, что при загрузке будет отображаться только меню загрузки Windows, а меню GRUB2 пропадает, что приведет к невозможности загрзуить что-либо кроме Windows. Такое происходит из-за того, что Windows при установке затирает загрузочную область жесткого диска (так назывемый MBR-раздел), удаляя оттуда запись загрузчика GRUB2.

Для восстановления GRUB2 понадобится liveCD Ubuntu или любой другой *nix системы, включающей GRUB2 в свой дистрибутив. Aрхитектура LiveCD должна соответствовать архитектуре существующей системы. Узнать текущую архитектуру можно с помощью команды «arch» или «uname -m»:

$ arch
x86_64

что соответствует 64-разрядной системе.

Грузимся с подходящего LiveCD диска и примонтируем корневой раздел системы. Если вы не помните, на каком разделе стоит система, вам поможет команда df -l:

$ $ df -l
Filesystem 1K-blocks Used Available Use% Mounted on
/dev/sda6 19898236 5750152 13114256 31% /
none 4 0 4 0% /sys/fs/cgroup
udev 498080 4 498076 1% /dev
tmpfs 101788 356 101432 1% /run
none 5120 0 5120 0% /run/lock
none 508936 0 508936 0% /run/shm
none 102400 0 102400 0% /run/user
/dev/sda1 93207 35316 53079 40% /boot

Здесь корневой раздел /dev/vda6 и отдельный boot раздел на /dev/vda1. Примонтируем их:

$ sudo mount /dev/sda6 /mnt
$ sudo mount /dev/sda1 /mnt/boot

Теперь можно переходить собственно к установке GRUB2. Ключ «—root-directory» позволяет указать, что использовать в качестве корневой директории. Нам нужен корневой раздел нашей системы, который примонтирован в /mnt. Поэтому выполняем:

sudo grub-install --root-directory=/mnt /dev/sda

Здесь GRUB2 устанавливается на физический диск, а не на раздел. В качестве диска нужно указать тот диск, который установлен загрузочным в bios.

Если все проло успешно, установщик выведет сообщение об успешном завершении и список обнаруженных жестких дисков, которые были добавлены в «device.map». Отмонтируем диски, перезагружаемся и радуемся. Если будет выведен неполный список дисков — необходимо отредактировать файл «device.map» в корневой папке установленной системы (в описанном примере — «/mnt/boot/grub/device.map») и  добавить остальные диски, поправив нумерацию. Файл должен иметь вид:

(hd0) /dev/sda
(hd1) /dev/sdb

Сохраняем файл и повторно выполняем команду grub-install. Теперь должен отобразиться правильный список дисков. Отмонтируем диски и перезагружаемся.

Здесь надо учитывать, что в grub2 имеется еще одно важное отличие от старого grub — нумерация жестких дисков и их разделов.

В старом grub нумерация физических дисков и нумерация разделов начинались одинаково — с нуля. Первый физический диск (sda в системе) обозначался «hd0», второй (sdb) — «hd1», и так далее. Это же осталось и в GRUB2.

Нумерация же разделов диска изменилась. Если в grub первый раздел первого диска (sda1) именовался «hd0,0», четвертый (sda4) — «hd0,3», то теперь в GRUB2 цифра раздела соотвествует цифре раздела в системе. То есть, sda1 теперь будет «hd0,1» (а не «hd0,0»), sdb4 — «hd1,4» — то-есть нумерация дисков идет с нуля, а нумерация разделов — с единицы.