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