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

Опубликовано vitich в сб, 22/10/2011 - 11:32

1) Все команды выполняю от root:

sudo -i

2) Напоминаю себе как у нас разбит диск,
sda или sdb и какие где разделы:

fdisk -l

Для примера, считаю что у нас диск /dev/sda
И разбит он следующим образом:
Win7 - /dev/sda1
swap - /dev/sda2 (primary)
root - /dev/sda3 (primary)
home - /dev/sda4 (primary)
Отдельные разделы /boot /var не используются, для них ниже будет примечание в разделе монтирования

3) Создаю произвольную папку в /tmp

mkdir /tmp/target

4) Монтирую корневой раздел с Linux в папку:

mount -t auto /dev/sda3 /tmp/target

***
/home монтировать не нужно, если диск разбит с дополнительными разделами (/boot /var и т.д) монтирую их:
mount -t auto /dev/sd** /tmp/target/boot
mount -t auto /dev/sd** /tmp/target/var
***

5) Монтирую /dev /proc /sys livecd внутрь нашей файловой системы:

mount --bind /dev /tmp/target/dev
mount --bind /proc /tmp/target/proc
mount --bind /sys /tmp/target/sys

6) Выполняю chroot:

chroot /tmp/target

7) Устанавливаю загрузчик в MBR диска:

grub-install /dev/sda

8) Обновляю загрузчик:

update-grub

9) Выхожу из chroot

exit

10) Перегружаюсь:

reboot

11) После загрузки в Linux с /dev/sda обновляю grub чтобы он увидел раздел с Win7

update-grub

В принципе пункт 6,7,8,9 можно заменить этим:

chroot /tmp/target /bin/bash -c 'grub-install /dev/sda'
chroot /tmp/target /bin/bash -c 'update-grub'

Но для наглядности и для понимания что происходит пусть будет как есть.
Наверняка существуют другие, для кого-то более простые способы, но я использую этот.

© ВитичЪ. Копирование материалов этого сайта без ссылки на источник карается путешествием сюда с занесением в личную карму.