Перенос ядра из другого дистрибутива

Довольно часто слышу вопли о том, что поломался 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/ иногда можно обойтись симлинком чтобы загрузиться

похожие страницы

  1. Создание игрушечного модуля ядра Linux
  2. Установка VirtulaBox на Ubuntu с нестандартным ядром
  3. Первые впечатления от InfraLinux, Ubuntu 8.04.1 от компании Инфра Ресурс
  4. i686 vs AMD64 при кодировании видео
  5. Установка WiFi карты D-Link DWA-525 в Ubuntu 10.04