Jak bezpiecznie usunąć stare wersje jądra w CentOS 7?


15

Mogę napotkać dziwne objawy wynikające z konkurujących jąder w CentOS 7. Więc jak bezpiecznie usunąć stare jądra? A skąd mam wiedzieć, które jądro jest najnowsze?

Poniżej znajduje się wyjście terminala, które otrzymuję w chwili, gdy badam to na danym serwerze. Zauważ, że próbowałem czyszczenia pakietów, ale pozostawia te same 2 jądra:

Instrukcje w tym samouczku mówią, że dane wyjściowe dwóch poniższych poleceń powinny być zgodne, ale widać, że nie pasują one nawet po ponownym uruchomieniu:

[root@localhost ~]# rpm -qa kernel |sort -V |tail -n 1
kernel-3.10.0-229.el7.x86_64
[root@localhost ~]# uname -r
3.10.0-229.14.1.el7.x86_64

Pozostałe polecenia potwierdzają, że istnieją dwa jądra i ilustrują próby usunięcia starego.

[root@localhost ~]# cd /usr/src/kernels
[root@localhost kernels]# ls -al
total 16
drwxr-xr-x.  4 root root 4096 Oct  2 12:55 .
drwxr-xr-x.  4 root root 4096 Oct  2 13:15 ..
drwxr-xr-x. 22 root root 4096 Oct  2 12:55 3.10.0-229.14.1.el7.x86_64
drwxr-xr-x. 22 root root 4096 Oct  2 12:35 3.10.0-229.el7.x86_64
[root@localhost kernels]# rpm -q kernel
kernel-3.10.0-229.el7.x86_64
kernel-3.10.0-229.14.1.el7.x86_64
[root@localhost kernels]# package-cleanup --oldkernels=1
Loaded plugins: fastestmirror
Usage: 
    package-cleanup: helps find problems in the rpmdb of system and correct them

    usage: package-cleanup --problems or --leaves or --orphans or --oldkernels
Command line error: --oldkernels option does not take a value
[root@localhost kernels]# package-cleanup --oldkernels
Loaded plugins: fastestmirror
No old kernels to remove
[root@localhost kernels]# rpm -q kernel
kernel-3.10.0-229.el7.x86_64
kernel-3.10.0-229.14.1.el7.x86_64
[root@localhost kernels]# 

Otworzyłem również /etc/yum.confi ustawiłem installonly_limit=1, ale spowodowało to błąd w kolejnym yum updatepoleceniu mówiącym, że 1 jest poza zakresem dopuszczalnych wartości dla installonly_limit.

Zakładam, że 3.10.0-229.14.1.el7.x86_64to najnowsza wersja, ale skąd mam to wiedzieć? Ponadto opcje uruchamiania wydają się oferować wiele jąder do wyboru. Możliwości pomieszania pogarszają się, gdy system automatycznie uruchamia się z pierwszego jądra na liście opcji.

Czy ktoś może wyjaśnić, jak to działa, a konkretnie, jak bezpiecznie usunąć stare jądra, aby wersja jądra mogła zostać wyeliminowana jako możliwa przyczyna dziwnych objawów? Chcę się upewnić, że najnowsze jądro jest jedynym jądrem, jakie kiedykolwiek można uruchomić, bez względu na to, jak system zostanie zrestartowany.


Wychodząc za drzwi, więc nie mogę teraz napisać pełnej odpowiedzi. Spróbuję to sprawdzić później. mniam-utils kiedyś to robił (nie jestem pewien, czy nadal tak jest). if-not-true-then-false.com/2012/…
0xSheepdog

@ 0xSheepdog Tak, używam tych poleceń z podobnego samouczka, ale serwer CentOS 7 nie pozwala installonly_limit=1. Dostaję śmieszne objawy, które mogą wynikać z dwóch wersji jądra, więc chciałbym mieć tylko jedną wersję, jeśli to możliwe, lub przynajmniej mieć ostateczne wyjaśnienie, dlaczego nie można mieć mniej niż 2 wersje, jeśli w fakt nie jest możliwy.
CodeMed,

2
Sugerowałbym zmianę kryteriów „zachowaj” na „bootowane jądro” w przeciwieństwie do po prostu najnowszych - z różnych powodów możesz nie uruchamiać się do najnowszego jądra.
Jeff Schaller

Odpowiedzi:


23

package-cleanup --oldkernels --count=1 usuń wszystkie jądra z wyjątkiem najnowszych.


1
Dziękuję Fractal Turtle za krótką odpowiedź. Chcę również, abyś bezpiecznie przechował co najmniej dwa najnowsze jądro. package-cleanup --oldkernels --count=2
rangsiman

1
Biegnę package-cleanup --oldkernels --count=1. Po ponownym uruchomieniu nadal otrzymuję dwa jądra: CentOS Linux (4.4.6-1.el7.elrepo.x86_64) 7 (Core)a CentOS Linux (3.10.0-514.2.2.el7.x86_64) 7 (Core)czy wiesz, jak je zachować?
Ron

Czy ktoś może odpowiedzieć na pytanie @Ron?
Alireza Mohamadi,

1
fyi, czyszczenie pakietów jest częścią:yum install yum-utils
TiloBunt

8

Polecenie package-cleanupusuwa starsze jądro. Posługiwać się--count=1 aby zachować najnowsze. Program nigdy nie usunie aktualnie używanego jądra („Nie usuwam jądra 3.10.0-327.el7, ponieważ jest to działające jądro”), więc możesz skończyć z dwoma jądrami w / boot ... aż do ponownego uruchomienia i ponownego uruchomienia Uruchom polecenie.

Więc polecenie jest

package-cleanup --oldkernels --count=1 

Strona podręcznika dokumentuje trzy opcje:

--oldkernels
          Remove old kernel and kernel-devel packages.
--count <COUNT>
          Number of duplicate/kernel packages to keep on the system (default 2)
--keepdevel
          Do not remove kernel-devel packages when removing kernels

2

Użyj yum upgradezamiastyum update

Wtedy zachowa tylko trzy jądra. Jeśli użyjesz, updateto wypełni twoje/boot


-1

zgodnie z tym :

uruchom, rpm -q kernelaby wyświetlić zainstalowane jądro

następnie uruchom, yum remove kernel <shown kernel from output above>aby usunąć jądro

uruchom ponownie komputer

edycja: to faktycznie działa na problem @ Rona, ale upewnij się, że jądro elrepo działa poprawnie


Jak uniknąć usuwania obecnego jądra?
Jeff Schaller

Polecenie specyficzne dla IDK dla tego @JeffSchaller Chyba, aby upewnić się, że nie usuwasz bieżącego jądra, sprawdź najpierw, używając, uname -ra następnie usuń nieużywane jądro, ale pokazane z tego polecenia,
Surya Stefanus
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.