Изредка, особенно при невнимательной настройке загрузчика grub2 возникает ситуация, при которой система полностью отказывается грузиться, а на экране консоли возникает ошибка — “Error 15: File not found!”. Для решения проблемы необходимо внести изменения в файл /boot/grub/menu.lst, указав правильный раздел для загрузки — раздел root.
С начала загружаемся с Live CD и открываем терминал.
Проверяем, какие разделы доступны в системе:
$ sudo fdisk -l | grep -i linux
Обычно это раздел системы и swap-раздел. Нас интересует раздел, содержащий /root.
/dev/hda5 1276 1397 979902 82 Linux swap / Solaris
/dev/hda6 1398 2550 9261441 83 Linux
/dev/hda6 — в нашем примере это раздел root. /dev/hda6 прописывается в grub, как (hd0,5). К примеру, если ваша система находится в /dev/hda1, то при загрузке нужно прописывать — (hd0,0). В grub прописывается значение на единицу меньшее, чем указано в разделе.
Откройте файл menu.lst и проверьте, что /dev/hda6 и (hd0,5) соответствуют разделу root, и никаких лишних разделов не указано. Это основная причина появления ошибки 15. В нашем примере root-раздел должен соответствовать разделу /dev/hda6, ниже указан пример файла /boot/grub/menu.lst:
title Debian GNU/Linux, kernel 2.6.26-2-686
root (hd0,5)
kernel /boot/vmlinuz-2.6.26-2-686 root=/dev/hda6 ro
initrd /boot/initrd.img-2.6.26-2-686
title Debian GNU/Linux, kernel 2.6.26-2-686 (single-user mode)
root (hd0,5)
kernel /boot/vmlinuz-2.6.26-2-686 root=/dev/hda6 ro single
initrd /boot/initrd.img-2.6.26-2-686
Далее желательно проверить файл /etc/fstab на соответствие разделов и типов файловых систем:
# /etc/fstab: static file system information.
#
# <file system> <mount point> <type> <options> <dump> <pass>
proc /proc proc defaults 0 0
/dev/hda6 / ext3 errors=remount-ro 0 1
/dev/hda5 none swap sw 0 0
/dev/hdc /media/cdrom0 udf,iso9660 user,noauto 0 0
После перезагрузки, система должна нормально загрузиться.
Переустановка загрузчика
После загрузки LiveCD, открываем терминал и монтируем разделы системы:
Предварительно запускаем fdisk для того, чтобы удостовериться в правильности указания корневого раздела.
# fdisk -l
Монтирование обычных систем:
# mount /dev/sda2 /mnt/
Если /boot примонтирован отдельно:
# mount /dev/sda1 /mnt/boot
Монтирование специальных систем:
# mount --bind /dev /mnt/dev
# mount --bind /dev/pts /mnt/dev/pts
# mount --bind /proc /mnt/proc
# mount --bind /sys /mnt/sys
Заходим в chroot-систему:
# chroot /mnt
Если отсутствует файл /boot/grub/grub.cfg, или есть проблемы с настройкой:
# update-grub
Переустанавливаем GRUB2 :
# grub-install /dev/sda
(Внимание! Номер после названия раздела не пишется!)
Проверяем правильность настроек:
# grub-install --recheck /dev/sda
Выходим из chroot-системы:
# exit
# umount /mnt/sys
# umount /mnt/proc
# umount /mnt/dev/pts
# umount /mnt/dev
# umount /mnt/boot
# umount /mnt
# reboot
После перезагрузки всё должно заработать! 🙂