12 августа 2010 г.

Удаление старых ядер в Linux Ubuntu.

После обновления системы не редко обновляется и ядро Linux. В этом много плюсов, например, исправление целого ряда ошибок и добавления новых возможностей. Одним из плюсов, который может обернуться в минус - это не удаление старого ядра. То есть новое ядро ставиться не поверх старого, а рядом, так сказать на всякий случай.

Старое ядро Linux остается за ради безопасности, то есть, например, при обновлении ядра системы что-то пошло не так и новое ядро не так стало (с какими-либо ошибками установилось или др.). В таком случае пользователь сможет спокойно загрузиться со старого ядра, удалить новое и заново обновиться и при этом не потерять ни грамма необходимой информации.

После обновления ядра в загрузчике grub их становится на двое больше (нечетные - обычная загрузка, а четные - безопасный режим) и выглядит в grub'е все, примерно, вот так:

- Ubuntu 9.10, kernel 2.6.31-20-generic
- Ubuntu 9.10, kernel 2.6.31-20-generic (recover mode)
- Ubuntu 9.10, kernel 2.6.31-19-generic
- Ubuntu 9.10, kernel 2.6.31-19-generic (recover mode)
- Ubuntu 9.10, memtest 86+

Поэтому, если новое ядро работает нормально, то можно спокойно удалять старые. А как это сделать сейчас объясню.

На всякий случай лучше записать (или запомнить) какие ядра были отображены в grub'е - это поможет в дальнейшем.

Итак, загрузимся с рабочего ядра. Дабы наверняка убедиться в том, с какого ядра загрузились необходимо ввести в консоли (терминале) команду uname -r, которая отобразит что-то вроде этого:

2.6.31-20-generic

То есть 2.6.31-20-generic - это текущее работающее ядро.

А чтобы узнать какие ядра установлены, необходимо ввести команду:

sudo dpkg -l | grep 2.6.31

Где, 2.6.31 - это версия ядра до тире.

Команда выдаст все существующие ядра и их либы (а также ряд другого хлама содержащие в своем имени подобные цифры), например, вот так:

ii linux-generic 2.6.31.20.33 Complete Generic Linux kernel
ii linux-headers-2.6.31-19 2.6.31-19.56 Header files related to Linux kernel version
ii linux-headers-2.6.31-19-generic 2.6.31-19.56 Linux kernel headers for version 2.6.31 on x86
ii linux-headers-2.6.31-20 2.6.31-20.58 Header files related to Linux kernel version
ii linux-headers-2.6.31-20-generic 2.6.31-20.58 Linux kernel headers for version 2.6.31 on x86
ii linux-headers-generic 2.6.31.20.33 Generic Linux kernel headers
ii linux-image-2.6.31-19-generic 2.6.31-19.56 Linux kernel image for version 2.6.31 on x86
ii linux-image-2.6.31-20-generic 2.6.31-20.58 Linux kernel image for version 2.6.31 on x86
ii linux-image-generic 2.6.31.20.33 Generic Linux kernel image
ii linux-libc-dev 2.6.31-20.58 Linux Kernel Headers for development

В данном списке я выделил работающее на данный момент ядро. Обратите внимание на выделенные строки. В начале строк нас интересуют такие словосочетания: linux-headers и linux-image, после них обязательно должна идти версия ядра с приставкой generic. Дальше в той же строке опять идет версия ядра с последующим текстом: Linux kernel headers for version 2.6.31 on x86 или Linux kernel image for version 2.6.31 on x86 (в зависимости от первых слов в строке), где 2.6.31 версия ядра до тире, а x86 ваша платформа (либо платформа, для которой предназначалось данное ядро).

Основываясь на выше изложенные примечания можно легко найти интересующие нас пакеты. После чего можно ввести команду для удаления старого ядра:

sudo apt-get purge linux-headers-2.6.31-19-generic linux-image-2.6.31-19-generic linux-restricted-modules-2.6.31-19-generic

Где, sudo - запрос пароля администратора, apt-get - вызов программы Advenced Packaging Tool (программа для установки, обновления и удаления программных пакетов), purge - полное удаление пакета и всех его "хвостов", 2.6.31-19 - версия старого ядра Linux.

После завершения удаления, grub должен сам поправиться, и после перезагрузки в grub'е будет всего одно ядро, например, вот так:

- Ubuntu 9.10, kernel 2.6.31-20-generic
- Ubuntu 9.10, kernel 2.6.31-20-generic (recover mode)
- Ubuntu 9.10, memtest 86+

Удалять можно не только старые, но и новые ядра, если с новым у вас пошло что-то не так.

Данная инструкция по удалению старого ядра в Linux должна помочь не только "знающим" пользователям, но и новичкам. Только будьте осторожны, сделав что-то не так, вы можете нарушить работу операционной системы Linux Ubuntu.

Кстати, на форумах и сайтах, посвященных Linux Ubuntu, ядро часто называют английским словом: kernel (кернел), что может вводить новичков в заблуждение.

За раннее прошу прощения за то, что пример по Linux Ubuntu 9.10, а не 10.04, просто писалось это все еще до выхода Linux Ubuntu 10.04 LTS :) .

Комментариев нет:

Отправить комментарий