Довольно часто слышу вопли о том, что поломался Grub и Linux не грузится
Недавно сам попался. После установки новой Ubuntu на соседний раздел рядом с Debian Lenny, Ubuntu не смогла опознать установленный на LVM Debian и затёрла ядро Debian в размещённое в /boot/ или я сам не заметил как разрешил затереть /boot
Для восстановления дебиана достачно переустновить пакет ядра, вот так
mount /dev/linux/debian /mnt # монтируем LVM
mount /dev/ /mnt/dev # готовим chroot
chroot /mnt # заходим в chroot
mount /proc # готовим chroot
mount /sys # готовим chroot
mount /boot # монтируем boot
aptitude reinstall linux-image-2.6.26-1-amd64
Но у меня получилось так, что я не мог зайти в chroot потом что был в Ubuntu i386
Пришлось пойти вторым способом, скопировать ядро с другого компьютера и переустановить Grub Ubuntu
для этого нужно скопировать файлы config-2.6.26-1-amd64 initrd.img-2.6.26-1-amd64 System.map-2.6.26-1-amd64 vmlinuz-2.6.26-1-amd64 в каталог /boot Ubuntu и подправит настройку grub
title Debian GNU/Linux, kernel 2.6.26-1-amd64
root (hd0,0)
kernel /vmlinuz-2.6.26-1-amd64 root=/dev/linux/debian
initrd /initrd.img-2.6.26-1-amd64
Не стоит боятся grub, это очень хорошая команда, попробуйте вместо привычной загрузки нажать Esc а потом C , чтобы перейти в режим автоматической загрузки
затем следует выполнить всего 4 команды чтобы выбрать ядро, это может даже понравится, например если не устанавливать grub вообще то ни один человек на многие мили вокруг кроме вас не сможет загрузить этот компьютер
итак пишем root ( жмём tab - тут мы устанавливает корневой каталог для grub, тут он ишет ядро и образ, а tab как в баше помогает быстрее найти нужное значение, у меня оно такое root(hd0,0)
затем нужно установить параметр kernel /vm опять жмём tab и груб выведет список ядре лежащих в boot тут же нужно указать параметр root=/dev/linux/debian путь к разделу с корневым каталого нужного дистра
должно получиться чтото типа kernel /vmlinuz-2.6.26-1-amd64 root=/dev/linux/debian
тоже самое касается и параметра initrd, должно получиться initrd /initrd.img-2.6.26-1-amd64, а чтобы загрузить выбранное ядро командуем boot
Ещё нужно не забыть скопировать модули "драйвера ядра" /lib/modules/2.6.26-1-amd64/ без этих модулей ядро загрузится, но не сможет выполнять массу задач, например не сможет смонтировать ext2, iso9660, не определит устройства
Следует обратить внимание на номера версий, например ядро vmlinuz-2.6.26-2-amd64 будет искать модули в директории /lib/modules/2.6.26-2-amd64/ иногда можно обойтись симлинком чтобы загрузиться