Обновление/удаление ядра в Linux

Задача: обновить существующее ядро Linux (для примера будем брать Ubuntu) до самой последней или до нужной.

Решение:

uname -r — показывает текущую версию ядра в системе

sudo add-apt-repository ppa:kernel-ppa/ppa — добавление PPA для ядра
sudo apt-get update — обновляем списки репозиториев
apt-cache showpkg linux-headers — показывает список доступных ядер

Пример отображения:

Package: linux-headers
Versions:

Reverse Depends:
lirc-modules-source,linux-headers
sl-modem-source,linux-headers
xtables-addons-dkms,linux-headers
oss4-dkms,linux-headers
openswan-modules-source,linux-headers
lirc-modules-source,linux-headers
blcr-dkms,linux-headers
alsa-source,linux-headers
nvidia-current,linux-headers
nvidia-96,linux-headers
nvidia-173,linux-headers
fglrx,linux-headers
bcmwl-kernel-source,linux-headers
dkms,linux-headers
Dependencies:
Provides:
Reverse Provides:
linux-headers-2.6.39-0 2.6.39-0.5~20110427
linux-headers-2.6.39-0-generic 2.6.39-0.5~20110427
linux-headers-2.6.39-0-generic-pae 2.6.39-0.5~20110427
linux-headers-2.6.39-0-virtual 2.6.39-0.5~20110427
linux-headers-2.6.38-8-virtual 2.6.38-8.42
linux-headers-2.6.38-8-generic-pae 2.6.38-8.42
linux-headers-2.6.38-8-generic 2.6.38-8.42
linux-headers-2.6.38-8 2.6.38-8.42

Устанавливаем нужное ядро:

sudo apt-get install linux-headers-2.6.39-0 linux-headers-2.6.39-0-generic linux-image-2.6.39-0-generic --fix-missing

Если необходимо установить какое-то конкретное ядро, а не самое последнее, то заходим сюда (http://kernel.ubuntu.com/~kernel-ppa/mainline/), скачиваем файлы (linux-headers и linux-image) для вашей архитектуры процессора (i386 или amd64) в какую-нибудь папку (к примеру, /home/user/kernerl), и затем выполняем команду:

sudo dpkg -i *

Стоит отметить, что после обновления ядра проприетарные драйверы, скорее всего, работать не будут, их необходимо будет занова установить/пересобрать. Лично у меня графические проприетарные драйвера обновились автоматически:

run-parts: executing /etc/kernel/header_postinst.d/dkms 2.6.39-0-generic /boot/vmlinuz-2.6.39-0-generic
* dkms: running auto installation service for kernel 2.6.39-0-generic
* nvidia-current (270.41.06)... [ OK ]
run-parts: executing /etc/kernel/header_postinst.d/nvidia-common 2.6.39-0-generic /boot/vmlinuz-2.6.39-0-generic

Если необходимо удалить неиспользуемое ядро, то:

dpkg -l | grep linux-image — отображает список установленных в системе ядер

Пример вывода:

ii linux-image-2.6.38-8-generic 2.6.38-8.42 Linux kernel image for version 2.6.38 on x86/x86_64
ii linux-image-2.6.39-0-generic 2.6.39-0.5~20110427 Linux kernel image for version 2.6.39 on x86/x86_64
ii linux-image-generic 2.6.38.8.22 Generic Linux kernel image

sudo apt-get remove -f linux-image-2.6.38-8.42 — удаление выбранного ядра

dpkg -l | grep linux-headers — отображает список установленных заголовков ядра

Пример вывода:

ii linux-image-2.6.38-8-generic 2.6.38-8.42 Linux kernel image for version 2.6.38 on x86/x86_64
ii linux-image-2.6.39-0-generic 2.6.39-0.5~20110427 Linux kernel image for version 2.6.39 on x86/x86_64
ii linux-image-generic 2.6.38.8.22 Generic Linux kernel image
user@LaptopUbuntu:~$ dpkg -l | grep linux-headers
ii linux-headers-2.6.38-8 2.6.38-8.42 Header files related to Linux kernel version 2.6.38
ii linux-headers-2.6.38-8-generic 2.6.38-8.42 Linux kernel headers for version 2.6.38 on x86/x86_64
ii linux-headers-2.6.39-0 2.6.39-0.5~20110427 Header files related to Linux kernel version 2.6.39
ii linux-headers-2.6.39-0-generic 2.6.39-0.5~20110427 Linux kernel headers for version 2.6.39 on x86/x86_64
ii linux-headers-generic 2.6.38.8.22 Generic Linux kernel headers

sudo apt-get remove -f linux-headers-2.6.38-8.42 linux-headers-2.6.38-8.42-generic — удаление выбранных заголовков ядра

sudo update-grub — удаление записей установленных ядер в загрузчике GRUP