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'
Но для наглядности и для понимания что происходит пусть будет как есть.
Наверняка существуют другие, для кого-то более простые способы, но я использую этот.