Я пытаюсь скомпилировать и установить ядро 3.2.9 для CentOS 5.6. Я скомпилировал новое ядро и установил модули ядра:
make && make modules_install
Я также создал новый образ initrd:
mkinitrd initrd-3.2.9 3.2.9
Я скопировал kernel-3.2.9, initrd-3.2.9 и System.map-3.2.9 в каталог / boot и отредактировал файл grub.conf:
title kernel-3.2.9
root (hd0,0)
kernel /kernel-3.2.9 ro root=LABEL=/ rhgb quiet
initrd /initrd-3.2.9
Во время загрузки у меня возникла паника ядра со следующей ошибкой:
could not find filesystem /dev/root
Что я сделал не так?
Сам нашел проблему: добавил CONFIG_SYSFS_DEPRECATED_V2=y
в файл .config, как описано здесь https://www.centos.org/modules/newbb/viewtopic.php?topic_id=23627&forum=37&post_id=97305#forumpost97305 и это решает проблему
Лучший способ установить новое ядро - использовать:
$ make install
Это скопирует необходимые файлы и отредактирует конфигурацию grub, чтобы можно было загрузить новое ядро.
Кроме того, вы могли допустить ошибку при настройке ядра. make menuconfig
. Вы можете посмотреть существующие файлы конфигурации ядра в разделе /boot/config-<kernel-version>
. В качестве простого решения вы можете начать с конфигурации, аналогичной текущей, а затем внести необходимые изменения, если таковые имеются.