Обычно на каждом диске есть MBR (главная загрузочная запись, master boot record) и при включении компьютера, BIOS обращается к ней за информацией для дальнейшей загрузки. В Linux системах в качестве загрузчика используется GRUB, о вариантах восстановления которого я и напишу ниже.
Посмотреть версию GRUB можно командой:
grub-install --version
1) Первый вариант.
Запускаем систему с LiveCD/USB, например в образе Ubuntu Desktop кроме установки есть возможность запустить систему.
Откроем терминал, для этого нажмем клавишами Alt+F2 и введем команду:
gnome-terminal
Посмотрим список разделов:
sudo fdisk -l ls /dev/[hsv]d[a-z]*[0-9]*
Допустим раздел с загрузчиком на /dev/sda1, подключим его в директорию /mnt:
sudo mount /dev/sda1 /mnt
Если используется программный RAID, то:
ls /dev/md* mount /dev/md2 /mnt
Либо LVM:
ls /dev/mapper/* mount /dev/mapper/vg0-root /mnt
И установим grub в MBR следующей командой:
sudo grub-install --root-directory=/mnt /dev/sda
Возможно также понадобится обновить меню grub:
sudo update-grub --output=/mnt/boot/grub/grub.cfg
Готово, grub восстановлен!
2) Второй вариант через chroot.
Опять же нужно запустить систему с LiveCD/USB и открыть терминал.
Допустим раздел с загрузчиком вместе с основным разделом на /dev/sda1.
Подключим его в /mnt, а также привяжем несколько необходимых директорий:
sudo mount /dev/sda1 /mnt sudo mount --bind /dev /mnt/dev sudo mount --bind /proc /mnt/proc sudo mount --bind /sys /mnt/sys
Если /boot находит на отдельном разделе, то подключим его в /mnt/boot, например так:
sudo mount /dev/sda2 /mnt/boot
Перейдем в chroot:
sudo chroot-prepare /mnt sudo chroot /mnt
Установим GRUB:
grub-install /dev/sda
В случае ошибки наберем:
grub-install --recheck /dev/sda
Можно еще так:
grub-install --recheck --no-floppy /dev/sda
Выходим из chroot:
exit
Отсоединим разделы:
sudo umount /mnt/dev sudo umount /mnt/proc sudo umount /mnt/sys sudo umount /mnt
Аналогично /boot если он отдельно:
sudo umount /mnt/boot
Перезагрузим компьютер:
sudo reboot
3) Третий вариант, используя режим восстановления.
Посмотрим какие разделы есть следующей командой (нумерация дисков начинается с 0, а разделов с 1, то есть диск /dev/sda может называться например hd0, а раздел /dev/sda1 — hd0,1):
ls
Укажем этот раздел:
set prefix=(hd0,1)/boot/grub set root=(hd0,1)
И проверим есть ли тут grub:
ls /boot/grub
Если есть, подгружаем модули:
insmod ext2 insmod normal normal
Если раздел в формате btrfs, то выполним чуть другие команды:
set prefix=(hd0,1)/@/boot/grub set root=(hd0,1) insmod btrfs insmod normal normal
После команд запустится Grub и определит какие операционные системы установлены.
На последок запустим Linux и от root пользователя установим grub на нужный диск, например /dev/sda:
grub-install /dev/sda
Перезапустим систему и проверим:
reboot
Готово.