Недавно наткнулся на проблему, при которой grub-pc в Debian неудачно обновился и по какой-то причине не стал видеть разделов ext4 - после появления меню загрузки и выбора системы, grub выводил "Partition fot found". Средствами встроенной консоли загрузиться не представилось возможным.

После недолгих экспериментов и выяснения причины потери разделов, grub был переустановлен и система нормально загрузилась. Процесс:

Шаг 1. Загрузка с LiveCD

Нужно найти диск (флешку) с которого ставилась система и загрузиться с неё в текстовом или графическом режиме. Если диск - чистый установочник (не liveCD), то прерываем процесс через "ESC" или "Cancel" и попадаем в главное меню. Среди пунктов находим "Install GRUB bootloader" и переходим на него. Инсталлятор должен переустновить загрузчик. На этом переустановки процесс окончен.

Если же диск - liveCD (например дистрибутив на основе Debian), то читаем инструкцию дальше.

Шаг 2. Воссоздание файловой системы с жёсткого диска

Теперь нужно воссоздать файловую систему жёсткого диска в одном из каталогов виртуальной файловой системы (образованной liveCD), сделать chroot и выполнить команду переустановки или переконфигурирования grub.

Предположим, что пользователь поставил систему, где выделил 2 раздела: / - sda1 и /boot - sda2. Если в системе работает не один жёсткий диск, то желательно командой fdisk -l посмотреть не изменилось ли имя у этих разделов. Если изменилось - используем текущие. Эти разделы монтируем в /mnt в виртуальной файловой системе:

 # mount -t ext4 -o rw /dev/sda1 /mnt
 # mount -t ext4 -o rw /dev/sda2 /mnt/boot

Теперь туда же монтируем файловые системы /tmp, /proc, /dev, /sys из файловой системы LiveCD:

 # mount --bind /dev /mnt/dev
 # mount --bind /tmp /mnt/tmp
 # mount -t proc proc /mnt/proc
 # mount -t sysfs none /mnt/sys

Когда всё смонтировано, в каталоге /mnt содержится полная рабочая копия файловой системы операционки, установленной на жёстком диске. Если у пользователя система разбита на большее количество разделов, то их тоже нужно будет примонтировать, но только системные разделы: /, /boot, /lib, /usr, /var, /tmp

Шаг 3. Переход в файловую систему и выполнение действий

Далее переходим в воссозданную файловую систему:

 # chroot /mnt /bin/bash

После выполнения этой команды мы начинаем работать в файловой системе жёсткого диска, как если бы загрузились непосредственно с неё, а не с liveCD. Далее выполняем переустановку grub-pc:

 # dpkg-reconfigure grub-pc

Инсталлятор спросит куда ставить загрузчик - выбираем нужный диск (не раздел диска), в этом примере это sda - на котором находится система, и выбираем установку в MBR.

После всех действий, можно выйти из воссозданной файловой системы через комаду exit или Ctrl+D, перезагрузить машину и попробовать загрузиться с жёсткого диска.

Смотрите также

Печать/экспорт