База знаний по Open Source
Авторизация
Поиск по базе знаний

Иногда случется нарушение нормального функционирования загрузчика 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” – то-есть нумерация дисков идет с нуля, а нумерация разделов – с единицы.