чистка старих ядер не може видалити старі файли 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

@jarno Їх створює DKMS Dell (Динамічна система управління ядрами) для модулів, не включених до основного ядра. Наприклад nvidiaй bbsswitchджерело при компіляції може замінити /boot/initrd.imgтак зробити резервну копію , яка може бути відновлена , якщо dkmsвикористовується для видалення змін. Я сьогодні працюю над тим, щоб оновити свій rm-kernelsскрипт bash, щоб видалити їх застарілими .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 успішно видаляються. Приємний збіг там.
— Nicomachus

@ WinEunuuchs2Unix о, здається, моє виправлення ввійшло в якийсь реліз Ubuntu. Відповідний звіт про помилку Launchpad тут . Яку версію dkms ви використовуєте?
— jarno

@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 у вашій системі.
— jarno

3

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


0

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

Якщо ви не заперечуєте запускати додатки GUI як root, ви також pkexec nautilusможете знайти застарілі резервні копії для видалення:

boot-initrd.img.old-dkms

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

ПРИМІТКА: pkexec потрібна настройка набору політик. Він призначений для заміни gksuта gksudoякі ви будете бачити посилання багато разів в історичних повідомленнях.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.