Запустите систему с LiveCD/USB и откройте терминал. Для этого
можно нажать
Alt+F2
и ввести команду:Код: Выделить всё
gnome-terminal
команду:
Код: Выделить всё
sudo fdisk -l
/dev/sda1 29 8369 66999082+ 83 Linux
/dev/sda2 * 8370 13995 45190845 7 HPFS/NTFS
/dev/sda3 13996 14593 4803435 5 Extended
Из таблицы видим, что Linux стоит (в нашем случае) на разделе
/dev/sda1
Теперь подключим этот раздел в /mnt следующей командой:
Код: Выделить всё
sudo mount /dev/sda1 /mnt
Код: Выделить всё
sudo grub-install --root-directory=/mnt /dev/sda
после переустановки Windows), то этого достаточно.
Если нужно обновить и меню grub (например, после установки
Windows), то нужно сделать:
Код: Выделить всё
sudo update-grub --output=/mnt/boot/grub/grub.cfg
ВОССТАНОВЛЕНИЕ ИСПОЛЬЗУЯ CHROOT
Запустите систему с LiveCD/USB и откройте терминал. Для этого
можно нажать
Alt+F2
и ввести команду:Код: Выделить всё
gnome-terminal
команду:
Код: Выделить всё
sudo fdisk -l
/dev/sda1 29 8369 66999082+ 83 Linux
/dev/sda2 * 8370 13995 45190845 7 HPFS/NTFS
/dev/sda3 13996 14593 4803435 5 Extended
Теперь нужно примонтировать Ваш Linux раздел (здесь это sda1) и
еще несколько важных директорий:
Код: Выделить всё
sudo mount /dev/sda1 /mnt
sudo mount --bind /dev /mnt/dev
sudo mount --bind /proc /mnt/proc
sudo mount --bind /sys /mnt/sys
примонтировать его в /mnt/boot !
Теперь перейдем в окружающую среду chroot !
Код: Выделить всё
sudo chroot /mnt
Код: Выделить всё
grub-install /dev/sda
Код: Выделить всё
grub-install --recheck /dev/sda
Код: Выделить всё
grub-install --recheck --no-floppy /dev/sda
Код: Выделить всё
exit
Код: Выделить всё
sudo umount /mnt/dev
sudo umount /mnt/proc
sudo umount /mnt/sys
sudo umount /mnt
Код: Выделить всё
sudo umount /mnt/boot
Код: Выделить всё
sudo reboot
Код: Выделить всё
sudo update-grub
При отсутствии загрузочного диска, можно восстановить Grub из его
консоли. Восстановление происходит следующим образом: сначала
нужно подгрузить все модули, чтобы стала доступна вся
функциональность Grub, а затем уже запуститься с нужного раздела.
Как известно, Grub состоит из двух частей. Первая часть записана в MBR
диска. Она содержит базовую функциональность, то есть в ней есть
консоль в rescue mode и ничего больше. Вначале нужно определить, на
каком разделе находится вторая часть груба (она лежит в каталоге
/boot/grub), подгрузить недостающие модули. И только потом можно
будет дать команду запуска с нужного раздела. В rescue mode доступно
всего четыре команды:
Код: Выделить всё
ls
set
unset
insmod
Код: Выделить всё
ls
(hd0) (hd0,msdos3) (hd0,msdos2) (hd0,msdos1) (hd1) (hd1,msdos2) (hd1,msdos1)
Иногда Grub может неправильно опеределить, какие файловые системы
находятся на разделах дисков. В данном случае определяет их как
msdos. Нам нужно постараться угадать, какие диски мы видим. В
данном случае видно два диска. Диск с индексом 0 содержит три
раздела, диск с индексом 1 содержит два раздела. Зная структуру своих
дисков несложно определить нужный диск.
Grub называет разделы в обратном порядке. И становится непонятно,
что имеется в виду под (hd0,msdos3) - первый раздел или третий? Тут
можно выкрутиться, использовав синтаксис (hd0,1). Нужно помнить, что
в Grub счет дисков начинается с 0, а счет разделов - с 1. Предположим,
что Linux установлен на первый диск в первый раздел, то есть (hd0,1).
Даем команду:
Код: Выделить всё
set prefix=(hd0,1)/boot/grub
set root=(hd0,1)
дальнейших команд. После чего нужно проверить, действительно ли на
этом разделе есть то, что нам нужно. Даем команду:
Код: Выделить всё
ls /boot/grub
раздел выбраны правильно. Подгружаем модули:
Код: Выделить всё
insmod ext2
insmod normal
normal
систем ext3 и ext4
После чего Grub перейдёт в полнофункциональный режим. Он
автоматически найдет все операционки, которые можно подгружать, и
покажет своё Grub-меню.
Дальнейшее восстановление сводится к тому, чтобы загрузить нужный
нам Linux, и в нем от рута дать команду:
Код: Выделить всё
grub-install /dev/sdX
Информация любезно предоставлена пользователем avkP3