Восстановление GRUB
ИсточникВосстановление с помощью LiveCD/USB
Первый способ
Запустите систему с LiveCD/USB и откройте терминал. Для этого можно нажать Alt+F2 и ввести команду:
Теперь подключим этот раздел в /mnt следующей командой:
Если нужно обновить и меню grub (например, после установки Windows), то нужно сделать:
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Затем, для записи grub в MBR, вводите следующую команду:
sudo grub-install --root-directory=/mnt /dev/sdaВ случае, если нужно только восстановить MBR диска (например, после переустановки 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
Если раздел /boot находится отдельно, то Вам необходимо примонтировать его в /mnt/boot!
Теперь перейдем в окружающую среду chroot:
sudo chroot /mntТеперь необходимо установить GRUB, используя команду:
grub-install /dev/sda
Если Вы получили сообщение об ошибке, то используйте команду:
Если все прошло успешно, выходим из chroot командой:
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Если Вы монтировали раздел /boot воспользуйтесь командой:
sudo umount /mnt/bootЗатем перезагрузим Ваш компьютер командой:
sudo rebootПри необходимости Вы можете обновить меню загрузчика командой:
sudo update-grub
Восстановление в rescue mode
При отсутствии загрузочного диска, можно восстановить Grub из его
консоли. Восстановление происходит следующим образом: сначала нужно
подгрузить все модули, чтобы стала доступна вся функциональность Grub, а
затем уже запуститься с нужного раздела.
Как известно, Grub состоит из двух частей.
Первая часть записана в MBR диска. Она содержит базовую
функциональность, то есть в ней есть консоль в rescue mode и ничего
больше. Вначале нужно определить, на каком разделе находится вторая
часть груба (она лежит в каталоге /boot/grub), подгрузить недостающие
модули. И только потом можно будет дать команду запуска с нужного
раздела.
В rescue mode доступно всего четыре команды:
Grub называет разделы в обратном порядке. И становится непонятно, что имеется в виду под (hd0,msdos3) - первый раздел или третий? Тут можно выкрутиться, использовав синтаксис (hd0,1). Нужно помнить, что в Grub счет дисков начинается с 0, а счет разделов - с 1. Предположим, что Линукс установлен на первый диск в первый раздел, то есть (hd0,1). Даем команду:
Дальнейшее восстановление сводится к тому, чтобы загрузить нужный нам Linux, и в нем от рута дать команду:
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. Предположим, что Линукс установлен на первый диск в первый раздел, то есть (hd0,1). Даем команду:
set prefix=(hd0,1)/boot/grub set root=(hd0,1)Этими командами мы указываем использовать диск (hd0,1) для дальнейших команд. После чего нужно проверить, действительно ли на этом разделе есть то, что нам нужно. Даем команду:
ls /boot/grubесли в ответ получаем список всех файлов в этой директории, то диск и раздел выбраны правильно. Подгружаем модули:
insmod ext2 insmod normal normal
Проверьте правильность написания первой команды для файловых систем ext3 и ext4
После чего Grub перейдёт в полнофункциональный режим. Он автоматически
найдет все операционки, которые можно подгружать, и покажет своё
Grub-меню.
Дальнейшее восстановление сводится к тому, чтобы загрузить нужный нам Linux, и в нем от рута дать команду:
grub-install /dev/sdXГде sdX, диск, на который нужно установить Grub.
Комментариев нет:
Отправить комментарий