пятница, 4 марта 2011 г.

Чистим старые ядра

При очередном обновлении моей десктопной убунты, вылезла вот такая страшная ошибка:
Not enough free disk space
The upgrade needs a total of 19.9M free space on disk '/boot'. Please free at least an additional 12.2M of disk space on '/boot'. Empty your trash and remove temporary packages of former installations using 'sudo apt-get clean'.
Как же так? Забился бут?
df -h
Filesystem            Size  Used Avail Use% Mounted on
/dev/sda6             127G   45G   76G  37% /
none                  940M  268K  939M   1% /dev
none                  944M  372K  943M   1% /dev/shm
none                  944M  344K  943M   1% /var/run
none                  944M     0  944M   0% /var/lock
none                  944M     0  944M   0% /lib/init/rw
/dev/sdb1             459G  105G  332G  24% /var/lib/storage
/dev/sda1              92M   79M  7.4M  92% /boot


И правда, забился... Смотрим чем же.
ls -lah /boot
total 70M
drwxr-xr-x  4 root root 3.0K 2011-02-18 15:23 .
drwxr-xr-x 22 root root 4.0K 2011-02-22 11:10 ..
-rw-r--r--  1 root root 637K 2010-09-16 21:14 abi-2.6.32-24-generic
-rw-r--r--  1 root root 637K 2010-10-17 02:46 abi-2.6.32-25-generic
-rw-r--r--  1 root root 637K 2010-11-24 15:57 abi-2.6.32-26-generic
-rw-r--r--  1 root root 637K 2010-12-02 02:48 abi-2.6.32-27-generic
-rw-r--r--  1 root root 637K 2011-01-11 03:18 abi-2.6.32-28-generic
-rw-r--r--  1 root root  512 2011-02-18 15:23 boot.0810
-rw-r--r--  1 root root  512 2011-02-18 15:23 boot.0820
-rw-r--r--  1 root root 114K 2010-09-16 21:14 config-2.6.32-24-generic
-rw-r--r--  1 root root 114K 2010-10-17 02:46 config-2.6.32-25-generic
-rw-r--r--  1 root root 114K 2010-11-24 15:57 config-2.6.32-26-generic
-rw-r--r--  1 root root 114K 2010-12-02 02:48 config-2.6.32-27-generic
-rw-r--r--  1 root root 114K 2011-01-11 03:18 config-2.6.32-28-generic
drwxr-xr-x  3 root root 6.0K 2011-02-02 11:07 grub
-rw-r--r--  1 root root 7.6M 2010-09-28 10:36 initrd.img-2.6.32-24-generic
-rw-r--r--  1 root root 7.6M 2010-11-18 10:02 initrd.img-2.6.32-25-generic
-rw-r--r--  1 root root 7.6M 2010-11-30 10:49 initrd.img-2.6.32-26-generic
-rw-r--r--  1 root root 7.6M 2011-01-21 10:42 initrd.img-2.6.32-27-generic
-rw-r--r--  1 root root 7.6M 2011-02-02 11:07 initrd.img-2.6.32-28-generic
drwx------  2 root root  12K 2010-08-27 16:56 lost+found
-rw-r--r--  1 root root 157K 2010-03-23 11:37 memtest86+.bin
-rw-r--r--  1 root root 1.7M 2010-09-16 21:14 System.map-2.6.32-24-generic
-rw-r--r--  1 root root 1.7M 2010-10-17 02:46 System.map-2.6.32-25-generic
-rw-r--r--  1 root root 1.7M 2010-11-24 15:57 System.map-2.6.32-26-generic
-rw-r--r--  1 root root 1.7M 2010-12-02 02:48 System.map-2.6.32-27-generic
-rw-r--r--  1 root root 1.7M 2011-01-11 03:18 System.map-2.6.32-28-generic
-rw-r--r--  1 root root 1.2K 2010-09-16 21:16 vmcoreinfo-2.6.32-24-generic
-rw-r--r--  1 root root 1.2K 2010-10-17 02:47 vmcoreinfo-2.6.32-25-generic
-rw-r--r--  1 root root 1.2K 2010-11-24 16:00 vmcoreinfo-2.6.32-26-generic
-rw-r--r--  1 root root 1.2K 2010-12-02 02:50 vmcoreinfo-2.6.32-27-generic
-rw-r--r--  1 root root 1.2K 2011-01-11 03:20 vmcoreinfo-2.6.32-28-generic
-rw-r--r--  1 root root 3.9M 2010-09-16 21:14 vmlinuz-2.6.32-24-generic
-rw-r--r--  1 root root 3.9M 2010-10-17 02:46 vmlinuz-2.6.32-25-generic
-rw-r--r--  1 root root 3.9M 2010-11-24 15:57 vmlinuz-2.6.32-26-generic
-rw-r--r--  1 root root 3.9M 2010-12-02 02:48 vmlinuz-2.6.32-27-generic
-rw-r--r--  1 root root 3.9M 2011-01-11 03:18 vmlinuz-2.6.32-28-generic

Гнилые старые ядра забили мой бут и не дают обновляться! Стереть их! Однако стирать нужно аккуратненько, через apt-get. Немного погуглив я нашел вот этот хороший гайд. Продублирую его здесь оставив только варианты команд для няки убунты (для второй няки генту их там и не было).

1. Узнаем, какое ядро используем сейчас:
uname -r
2.6.32-28-generic

2. Узнаем, какие ядра установлены в системе
dpkg --list 'linux-image*'
Desired=Unknown/Install/Remove/Purge/Hold
| Status=Not/Inst/Cfg-files/Unpacked/Failed-cfg/Half-inst/trig-aWait/Trig-pend
|/ Err?=(none)/Reinst-required (Status,Err: uppercase=bad)
||/ Name                              Version                           Description
+++-=================================-=================================-==================================================================================
un  linux-image                                                   (no description available)
un  linux-image-2.6                                               (no description available)
ii  linux-image-2.6.32-24-generic     2.6.32-24.43                      Linux kernel image for version 2.6.32 on x86/x86_64
ii  linux-image-2.6.32-25-generic     2.6.32-25.45                      Linux kernel image for version 2.6.32 on x86/x86_64
ii  linux-image-2.6.32-26-generic     2.6.32-26.48                      Linux kernel image for version 2.6.32 on x86/x86_64
ii  linux-image-2.6.32-27-generic     2.6.32-27.49                      Linux kernel image for version 2.6.32 on x86/x86_64
ii  linux-image-2.6.32-28-generic     2.6.32-28.55                      Linux kernel image for version 2.6.32 on x86/x86_64
ii  linux-image-generic               2.6.32.28.32                      Generic Linux kernel image

Вот все эти позорные саботажники апгрейда! Казнить их! (кроме двух последних, действующего кернела и запасного старого).
3. Удаляем ядрышки ненужных версий (в статье, на которую я ссылаюсь, флага --purge нету, не знаю есть ли тут существенная разница, но --purge должен почистить всякие остаточные файлы)
sudo apt-get remove --purge linux-image-2.6.32-24-generic
sudo apt-get remove --purge linux-image-2.6.32-25-generic
sudo apt-get remove --purge linux-image-2.6.32-26-generic

4. Дополнительно погуглив, обнаружил, что после такого удаления остаются некоторые депенденси. Срубаем головы саботажникам (удаляем linux-headers для соответствующих удаленных ядер)
sudo apt-get remove --purge linux-headers-2.6.32-24-*
sudo apt-get remove --purge linux-headers-2.6.32-25-*
sudo apt-get remove --purge linux-headers-2.6.32-26-*

В результате ядра удалены, /boot освобожден. Однако в результате выполнения команд у меня появились предупреждения такого рода:
dpkg: warning: while removing linux-image-2.6.32-24-generic, directory '/lib/modules/2.6.32-24-generic' not empty so not removed
Возможно стоит вручную почистить эти каталоги, пока не стал этого делать.

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

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