czyszczenie starych jąder nie usuwa starych plików initrd

14

Nie potrafię wyjaśnić, dlaczego ... Zakładam, że zwykłe ręczne ich usunięcie nie jest bezpieczne, więc niektóre wskazówki byłyby mile widziane. Oto ls mojego katalogu / boot (oczywiście używam jądra 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
Christopher Scott
źródło
Cholera - przepraszam za formatowanie ...
Christopher Scott
Zawsze możesz edytować swój post i sformatować go, zaznaczając tekst i klikając ikonę nad polem tekstowym. lub poczekaj, aż zrobi to za Ciebie ktoś inny.
user68186,
Nigdy nie miałem plików * .old-dkms. Co zrobiłeś, aby je mieć?
jarno
@jarno Zostają utworzone przez Dell DKMS (Dynamic Kernel Management System) dla modułów nie zawartych w jądrze głównym. Na przykład nvidiai bbsswitchźródło, gdy skompilowany może zastąpić /boot/initrd.imgtak zrobić kopię zapasową, która może zostać przywrócone, jeśli dkmsjest stosowany, aby odinstalować zmiany. Pracuję dziś nad aktualizacją mojego rm-kernelsskryptu bash, aby usunąć go z przestarzałych .old-dkms.
WinEunuuchs2Unix,
@jarno Zgodnie z moją odpowiedzią poniżej poprawienie skryptu bash nie jest już wymagane. Ludzie potrzebują tylko jednorazowego ręcznego procesu, aby usunąć /boot/*.old-dkmsnależące do usuniętych jąder.
WinEunuuchs2Unix,

Odpowiedzi:

10

Można je bezpiecznie usunąć ręcznie. Wygląda również na zgłoszony błąd: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=717584

Mogę zgłosić to samo dzieje się tutaj z jądrem 3.13.0-54 i jądrem 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
Nicomachus
źródło
Dziękuję za link błędu. Po zapoznaniu się z tym stwierdziłem, że w kwietniu 2017 r. Wprowadzono poprawkę. Dzięki temu nie zmieniłem skryptu bash, ponieważ odpowiedziałem poniżej.
WinEunuuchs2Unix,
Tak! Właśnie zauważyłem dziś rano, że te stare pliki dkms zostały pomyślnie usunięte. Niezły zbieg okoliczności.
Nicomachus,
@ WinEunuuchs2Unix oh, wygląda na to, że moja poprawka znalazła się w wydaniu Ubuntu. Odpowiedni raport o błędach Launchpad znajduje się tutaj . Jakiej wersji dkms używasz?
jarno
@jarno Obecnie działam, 2.2.0.3ale nie mam pojęcia, która wersja działała, gdy przestarzałe initrd.img*.old-dkmspliki pozostały w tyle.
WinEunuuchs2Unix,
@ WinEunuuchs2Unix dkms 2.2.0.3-1.1ubuntu5.14.04.9 (w Ubuntu 14.04) wydaje się nie mieć poprawki. Nawet 16.10 używa wersji 2.2.0.3. Więc nie wiem, co usunęło pliki .old-dkms w twoim systemie.
jarno
3

Możesz uruchomić polecenie rm /boot/*.old-dkmsz uprawnieniami rootowania. Upewnij się jednak, że usunięte pliki * .old-dkms nie są potrzebne starszym jądrom, które mogłeś zainstalować. Możesz zobaczyć listę aktualnie zainstalowanych jąder, wykonując dpkg-query -l "linux-image-[0-9]*" | grep -e "^ii".

Devyn Collier Johnson
źródło
0

Planowałem zmodyfikować rm-kernelsskrypt bash, aby usunąć te stare kopie zapasowe, jeśli jądro zostało usunięte sudo apt purge *<kernel_version>*. Jednak podczas badania zgłoszeń błędów stwierdziłem, że problem został rozwiązany w kwietniu 2017 r.

Jeśli nie masz nic przeciwko uruchamianiu aplikacji GUI jako root, możesz także użyć pkexec nautilusdo znalezienia przestarzałych kopii zapasowych do usunięcia:

boot-initrd.img.old-dkms

W moim systemie Nautilus ujawnia wersje jądra 4.4.8, 4.9.21i 4.10.10są zainstalowane i mogą wykorzystywać .old-dkmskopie zapasowe. Wyróżnione kopie to przestarzałe kopie zapasowe, które usunąłem.

UWAGA: pkexec wymaga konfiguracji zestawu zasad. Jest przeznaczony do zastąpienia gksui do gksudoktórego wielokrotnie będziesz się odnosił w historycznych postach.

WinEunuuchs2Unix
źródło