Назад | Перейти на главную страницу

Компиляция нового ядра на CentOS

Я пытаюсь скомпилировать и установить ядро ​​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>. В качестве простого решения вы можете начать с конфигурации, аналогичной текущей, а затем внести необходимые изменения, если таковые имеются.