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.conf
i ustawiłem installonly_limit=1
, ale spowodowało to błąd w kolejnym yum update
poleceniu 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_64
to 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.
źródło
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.Odpowiedzi:
package-cleanup --oldkernels --count=1
usuń wszystkie jądra z wyjątkiem najnowszych.źródło
package-cleanup --oldkernels --count=2
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)
aCentOS Linux (3.10.0-514.2.2.el7.x86_64) 7 (Core)
czy wiesz, jak je zachować?yum install yum-utils
Polecenie
package-cleanup
usuwa 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
Strona podręcznika dokumentuje trzy opcje:
źródło
Użyj
yum upgrade
zamiastyum update
Wtedy zachowa tylko trzy jądra. Jeśli użyjesz,
update
to wypełni twoje/boot
źródło
zgodnie z tym :
uruchom,
rpm -q kernel
aby wyświetlić zainstalowane jądronastępnie uruchom,
yum remove kernel <shown kernel from output above>
aby usunąć jądrouruchom ponownie komputer
edycja: to faktycznie działa na problem @ Rona, ale upewnij się, że jądro elrepo działa poprawnie
źródło
uname -r
a następnie usuń nieużywane jądro, ale pokazane z tego polecenia,