очистка старых ядер не удаляет старые файлы initrd

14

Не могу объяснить, почему ... Я предполагаю, что небезопасно просто удалять их вручную, поэтому некоторые рекомендации будут оценены. Вот ls моего каталога / boot (очевидно, я использую ядро ​​3.13.0-51):

-rw-r--r-- 1 root root  1164671 Apr 15 09:03 abi-3.13.0-51-generic
-rw-r--r-- 1 root root   165762 Apr 15 09:03 config-3.13.0-51-generic
drwxr-xr-x 5 root root     1024 Apr 30 14:33 grub
-rw-r--r-- 1 root root 22431280 Nov 26 14:16 initrd.img-3.13.0-36-generic.old-dkms
-rw-r--r-- 1 root root 22427261 Nov 26 14:16 initrd.img-3.13.0-37-generic.old-dkms
-rw-r--r-- 1 root root  9098067 Nov 26 18:00 initrd.img-3.13.0-39-generic.old-dkms
-rw-r--r-- 1 root root  9109727 Feb  5 15:22 initrd.img-3.13.0-40-generic.old-dkms
-rw-r--r-- 1 root root  9110419 Jan 18 02:29 initrd.img-3.13.0-43-generic.old-dkms
-rw-r--r-- 1 root root  9109659 Apr  5 23:11 initrd.img-3.13.0-44-generic.old-dkms
-rw-r--r-- 1 root root  9109097 Apr  5 23:01 initrd.img-3.13.0-46-generic.old-dkms
-rw-r--r-- 1 root root  5814104 Apr 30 14:13 initrd.img-3.13.0-48-generic
-rw-r--r-- 1 root root 22483793 Apr 30 13:52 initrd.img-3.13.0-48-generic.old-dkms
-rw-r--r-- 1 root root  9124331 Apr 30 14:28 initrd.img-3.13.0-49-generic.old-dkms
-rw-r--r-- 1 root root 22496134 Apr 30 13:59 initrd.img-3.13.0-51-generic
-rw-r--r-- 1 root root  4112384 Apr 30 12:16 initrd.img-3.13.0-51-generic.old-dkms
drwx------ 2 root root    12288 Aug  4  2014 lost+found
-rw-r--r-- 1 root root   176500 Mar 12  2014 memtest86+.bin
-rw-r--r-- 1 root root   178176 Mar 12  2014 memtest86+.elf
-rw-r--r-- 1 root root   178680 Mar 12  2014 memtest86+_multiboot.bin
-rw------- 1 root root  3389875 Apr 15 09:03 System.map-3.13.0-51-generic
-rw------- 1 root root  5818368 Apr 15 09:03 vmlinuz-3.13.0-51-generic
Кристофер Скотт
источник
Блин - простите за форматирование ...
Кристофер Скотт
Вы всегда можете отредактировать свое сообщение и отформатировать его, выделив текст и щелкнув значок над текстовым полем. или подождите, пока кто-нибудь другой сделает это за вас.
user68186
У меня никогда не было файлов * .old-dkms. Что ты сделал, чтобы иметь их?
Ярно
@jarno Они создаются DKMS (динамической системой управления ядром) Dell для модулей, не включенных в основное ядро. Например, nvidiaи bbsswitchисточник при компиляции может заменить, /boot/initrd.imgпоэтому создайте резервную копию, которую можно восстановить, если dkmsона используется для удаления изменений. Я работаю сегодня, чтобы обновить мой rm-kernelsbash-скрипт, чтобы удалить их устаревшие .old-dkms.
WinEunuuchs2Unix
@jarno Согласно моему ответу ниже, пересмотр скрипта bash больше не требуется. Людям просто нужен один раз ручной процесс удаления /boot/*.old-dkmsпринадлежащих удаленным ядрам.
WinEunuuchs2Unix

Ответы:

10

Это безопасно удалить их вручную. Похоже, что подан отчет об ошибке: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=717584.

Я могу сообщить, что то же самое происходит здесь с ядром 3.13.0-54 и ядром 3.13.0-55.

-rw-r--r-- 1 root root 1.2M Jun 17 20:03 abi-3.13.0-55-generic
-rw-r--r-- 1 root root 1.2M Jun 19 05:04 abi-3.13.0-57-generic
-rw-r--r-- 1 root root 162K Jun 17 20:03 config-3.13.0-55-generic
-rw-r--r-- 1 root root 162K Jun 19 05:04 config-3.13.0-57-generic
drwxr-xr-x 5 root root  12K Jul 11 15:54 grub
-rw-r--r-- 1 root root  11M Jul  7 21:37 initrd.img-3.13.0-54-generic.old-dkms
-rw-r--r-- 1 root root  27M Jul  4 13:37 initrd.img-3.13.0-55-generic
-rw-r--r-- 1 root root  27M Jul  4 13:37 initrd.img-3.13.0-55-generic.old-dkms
-rw-r--r-- 1 root root  27M Jul  6 18:28 initrd.img-3.13.0-57-generic
-rw-r--r-- 1 root root 173K Mar 12  2014 memtest86+.bin
-rw-r--r-- 1 root root 174K Mar 12  2014 memtest86+.elf
-rw-r--r-- 1 root root 175K Mar 12  2014 memtest86+_multiboot.bin
-rw------- 1 root root 3.3M Jun 17 20:03 System.map-3.13.0-55-generic
-rw------- 1 root root 3.3M Jun 19 05:04 System.map-3.13.0-57-generic
-rw------- 1 root root 5.6M Jun 17 20:03 vmlinuz-3.13.0-55-generic
-rw------- 1 root root 5.6M Jun 19 05:04 vmlinuz-3.13.0-57-generic
Никомаха
источник
Спасибо за ссылку на ошибку. Просмотрев его, я обнаружил, что исправление было сделано в апстриме в апреле 2017 года. Это спасло меня от пересмотра сценария bash, как я ответил ниже.
WinEunuuchs2Unix
Да! Я просто случайно заметил сегодня утром, что те старые файлы dkms были успешно удалены. Хорошее совпадение там.
Никомах
@ WinEunuuchs2Unix о, кажется, мое исправление дошло до некоторой версии Ubuntu. Соответствующий отчет об ошибке Launchpad находится здесь . Какую версию dkms вы используете?
Ярно
@jarno В настоящее время я работаю, 2.2.0.3но я понятия не имею, какая версия работала, когда устаревшие initrd.img*.old-dkmsфайлы были оставлены.
WinEunuuchs2Unix
@ WinEunuuchs2Unix dkms 2.2.0.3-1.1ubuntu5.14.04.9 (в Ubuntu 14.04), похоже, не имеет исправления. Даже 16.10 использует версию 2.2.0.3. Поэтому я не знаю, что удалило файлы .old-dkms в вашей системе.
Ярно
3

Вы можете запустить команду rm /boot/*.old-dkmsс правами root. Однако убедитесь, что удаленные файлы * .old-dkms не нужны старым ядрам, которые вы, возможно, установили. Вы можете увидеть список установленных на данный момент ядер, выполнив dpkg-query -l "linux-image-[0-9]*" | grep -e "^ii".

Девин Кольер Джонсон
источник
0

Я планировал изменить мой rm-kernelsbash-скрипт, чтобы удалить эти старые резервные копии, если ядро ​​было удалено с помощью sudo apt purge *<kernel_version>*. Однако при исследовании отчетов об ошибках я обнаружил, что это исправлено в апстриме в апреле 2017 года.

Если вы не возражаете против запуска приложений с графическим интерфейсом от имени root, вы также можете использовать pkexec nautilusдля поиска устаревших резервных копий для удаления:

загрузки initrd.img.old-DKMS

В моей системе Nautilus показывает ядра версии 4.4.8, 4.9.21и 4.10.10устанавливается и может использовать .old-dkmsрезервные копии. Выделенные копии являются устаревшими резервными копиями, которые я удалил.

ПРИМЕЧАНИЕ. pkexec Требуется настройка набора политик. Он предназначен для замены gksuи на gksudoкоторый вы будете часто ссылаться в исторических сообщениях.

WinEunuuchs2Unix
источник