В операционных системах Debian/Ubuntu используется загрузчик grub.
Иногда может возникнуть ситуация, что загрузчик неверно сконфигурирован, например при обновлении ядра не была изменена конфигурация, система не загружается, выдавая приглашение ко вводу grub rescue>
.
Что же делать в этом случае? Ответ дальше.
Для вывода всех доступных команд наберите:
help
Просмотр доступных дисков:
ls
В ответе можно увидеть все доступные диски, например так:
(hd0) (hd0,msdos1) (hd0,msdos2)
что означает, что есть один диск и на нем два раздела.
Необходимо отыскать на дисках директорию /boot/grub
и убедиться, что в ней присутствует файл grub.cfg
ls (hd0,msdos1)/
ls (hd0,msdos2)/
ls (hd0,msdos2)/boot/grub/
Установим префикс для загрузчика и корневой раздел:
set prefix=(hd0,msdos2)/boot/grub
set root=(hd0,msdos2)/boot/grub
Установим модуль файловой системы и режима работы normal
и запустим загрузку:
insmod ext2
insmod normal
normal
Появится стандартное окно выбора операционных систем и начнется загрузка.
После загрузки необходимо установить grub и выполнить поиск и обновление списка операционных систем:
grub-install /dev/sda
update-grub
В случае, если предыдущий вариант не помог, то можно попробовать загрузиться с Live CD и выполнить следующее:
Примонтировать диск сломанной операционной системы, перейти в него и установить grub.
Посмотреть список доступных разделов:
fdisk -l
> Device Boot Start End Sectors Size Id Type
> /dev/sda1 * 63 2097150 2097088 1024M 83 Linux
> /dev/sda2 16193457 1677721599 1661528143 792.3G f W95 Ext'd (LBA)
> /dev/sda5 16193520 1677721599 1661528080 792.3G 83 Linux
На этом примере sda5
- корневая файловая система и sda1
- директория /boot
Подключаем все в директорию /mnt
точно так, как это работало на ремонтируемой операционной системе:
mount -t ext4 /dev/sda5 /mnt
mount -t ext4 /dev/sda1 /mnt/boot
Делаем ссылки на необходимые для grub
директории
mount --bind /dev /mnt/dev
mount --bind /dev/pts /mnt/dev/pts
mount --bind /proc /mnt/proc
mount --bind /sys /mnt/sys
меняем окружение
chroot /mnt
и устанавливаем grub
grub-install /dev/sda
grub-install --recheck /dev/sda
update-grub
Отключаем в обратном порядке
exit
cd /
umount /mnt/sys
umount /mnt/proc
umount /mnt/dev/pts
umount /mnt/dev
umount /mnt
Перезагружаемся
shutdown -r now