Saya mungkin menghadapi gejala aneh yang dihasilkan dari bersaing kernel di CentOS 7. Jadi bagaimana cara aman menghapus kernel lama? Dan bagaimana saya tahu kernel mana yang paling baru?
Di bawah ini adalah keluaran terminal yang saya dapatkan saat ini ketika meneliti ini di server yang bersangkutan. Perhatikan bahwa saya mencoba paket-cleanup tetapi ia meninggalkan 2 kernel yang sama:
Petunjuk dalam tutorial ini mengatakan bahwa output dari dua perintah berikut harus cocok, tetapi Anda dapat melihat bahwa mereka tidak cocok, bahkan setelah reboot:
[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
Perintah yang tersisa mengkonfirmasi bahwa ada dua kernel, dan menggambarkan upaya untuk menghapus yang lama.
[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]#
Saya juga membuka /etc/yum.conf
dan mengatur installonly_limit=1
, tetapi ini menghasilkan kesalahan dari yum update
perintah berikutnya yang mengatakan bahwa 1 berada di luar kisaran nilai yang dapat diterima installonly_limit
.
Saya berasumsi itu 3.10.0-229.14.1.el7.x86_64
adalah yang terbaru, tetapi bagaimana saya bisa tahu ini? Selain itu, opsi boot tampaknya menawarkan beberapa kernel untuk dipilih. Dan peluang untuk kebingungan menjadi lebih buruk ketika sistem melakukan boot secara otomatis dari kernel pertama pada daftar opsi.
Adakah yang bisa menjelaskan cara kerjanya, dan secara khusus, cara menghapus kernel lama dengan aman sehingga versi kernel dapat dihilangkan sebagai kemungkinan penyebab gejala aneh? Saya ingin memastikan bahwa kernel terbaru adalah satu-satunya kernel yang dapat dijalankan, tidak peduli bagaimana sistem dihidupkan ulang.
sumber
installonly_limit=1
. Saya mendapatkan gejala lucu yang mungkin dihasilkan dari dua versi kernel, jadi saya hanya ingin memiliki satu versi, jika mungkin, atau setidaknya memiliki penjelasan pasti mengapa tidak mungkin memiliki kurang dari 2 versi, jika dalam sebenarnya itu tidak mungkin.Jawaban:
package-cleanup --oldkernels --count=1
hapus semua kernel kecuali yang terbaru.sumber
package-cleanup --oldkernels --count=2
package-cleanup --oldkernels --count=1
. Setelah reboot, saya masih mendapatkan dua kernel:CentOS Linux (4.4.6-1.el7.elrepo.x86_64) 7 (Core)
danCentOS Linux (3.10.0-514.2.2.el7.x86_64) 7 (Core)
, apakah Anda tahu cara menyimpannya?yum install yum-utils
Perintah
package-cleanup
hapus kernel lama. Gunakan--count=1
untuk menyimpan yang terbaru. Program tidak akan pernah menghapus kernel yang saat ini digunakan ("Tidak menghapus kernel 3.10.0-327.el7 karena itu adalah kernel yang sedang berjalan"), jadi Anda dapat berakhir dengan dua kernel di / boot ... sampai Anda reboot dan kembali -lari perintah.Jadi perintahnya adalah
Dokumen manual tiga opsi:
sumber
Gunakan
yum upgrade
sebagai gantiyum update
Maka itu hanya akan menyimpan tiga kernel. Jika Anda menggunakan
update
maka itu akan mengisi/boot
sumber
menurut ini :
jalankan
rpm -q kernel
untuk menampilkan kernel yang diinstalkemudian jalankan
yum remove kernel <shown kernel from output above>
untuk menghapus kernelreboot komputer Anda
sunting: ini sebenarnya berfungsi untuk masalah @ Ron, tetapi pastikan elrepo kernel berjalan dengan benar
sumber
uname -r
lalu menghapus kernel yang tidak digunakan tetapi ditunjukkan dari perintah itu,