寡人最近在修復紅帽的系統bug,有些是需要升級內核解決的(具體什么bug需要升級內核解決,還是看官網的信息),原來的系統版本和內核版本是
[root@t0 ~]# cat /etc/redhat-release CentOS Linux release 7.2.1511 (Core)
[root@t0 ~]# uname -r
3.10.0-327.el7.x86_64
升級到 3.10.0-957.27.2.el7.x86_64
正常情況下,有兩個啟動項,一個是“正常啟動”,另一個是“救援模式啟動”(rescue)。
如果啟動項多於2個,說明當前系統有舊內核未刪除。原因是CentOS更新后不會自動刪除舊內核。
默認以新內核啟動,可以在啟動選項中臨時選擇,也可以修改配置永久指定。
首先查看你現在系統里面都有什么版本的內核
[root@t0 ~]# uname -r #查看當前內核版本 3.10.0-957.27.2.el7.x86_64 [root@t0 ~]# [root@t0 ~]# cat /boot/grub2/grub.cfg |grep "menuentry" #查看所有的內核版本 menuentry 'CentOS Linux (3.10.0-327.el7.x86_64) 7 (Core)' --class centos --class gnu-linux --class gnu --class os --unrestricted $menuentry_id_option 'gnulinux-3.10.0-327.el7.x86_64-advanced-e40bd680-cabe-477a-acd0-00b97281f618' { menuentry 'CentOS Linux (3.10.0-957.27.2.el7.x86_64) 7 (Core)' --class centos --class gnu-linux --class gnu --class os --unrestricted $menuentry_id_option 'gnulinux-3.10.0-327.el7.x86_64-advanced-e40bd680-cabe-477a-acd0-00b97281f618' { menuentry 'CentOS Linux (0-rescue-840af4f292644fe6b63eefc86c7f7b09) 7 (Core)' --class centos --class gnu-linux --class gnu --class os --unrestricted $menuentry_id_option 'gnulinux-0-rescue-840af4f292644fe6b63eefc86c7f7b09-advanced-e40bd680-cabe-477a-acd0-00b97281f618' { [root@t0 ~]#
[root@t0 ~]# grub2-set-default 'CentOS Linux (3.10.0-327.el7.x86_64) 7 (Core)' #修改內核版本為 3.10.0-327.el7.x86_64
[root@t0 ~]#
[root@t0 ~]# grub2-editenv list #查看內核修改結果 saved_entry=CentOS Linux (3.10.0-957.27.2.el7.x86_64) 7 (Core)
官方建議是至少保持兩個內核,所以升級一次內核以后,系統沒什么問題,新內核能用的情況下就不要騷操作了,但是如果你堅持要刪除舊內核的話
[root@t0 ~]# yum remove kernel-3.10.0-327.el7.x86_64 # 刪除指定的無用內核 Loaded plugins: fastestmirror, langpacks Resolving Dependencies --> Running transaction check ---> Package kernel.x86_64 0:3.10.0-327.el7 will be erased --> Finished Dependency Resolution Dependencies Resolved ============================================================================================================================================================= Package Arch Version Repository Size ============================================================================================================================================================= Removing: kernel x86_64 3.10.0-327.el7 @anaconda 136 M Transaction Summary ============================================================================================================================================================= Remove 1 Package Installed size: 136 M Is this ok [y/N]: y Downloading packages: Running transaction check Running transaction test Transaction test succeeded Running transaction Erasing : kernel-3.10.0-327.el7.x86_64 1/1 Verifying : kernel-3.10.0-327.el7.x86_64 1/1 Removed: kernel.x86_64 0:3.10.0-327.el7 Complete! [root@t0 ~]# [root@t0 ~]# rpm -qa |grep kernel-[0-9] # 查看全部內核包 kernel-3.10.0-957.27.2.el7.x86_64 [root@t0 ~]# [root@t0 ~]# cat /boot/grub2/grub.cfg |grep "menuentry " menuentry 'CentOS Linux (3.10.0-957.27.2.el7.x86_64) 7 (Core)' --class centos --class gnu-linux --class gnu --class os --unrestricted $menuentry_id_option 'gnulinux-3.10.0-327.el7.x86_64-advanced-88ae7d3d-ffaf-4402-9d44-56b6845789e4' { menuentry 'CentOS Linux (0-rescue-8405cda22c0b421db40478edcf9c1fb2) 7 (Core)' --class centos --class gnu-linux --class gnu --class os --unrestricted $menuentry_id_option 'gnulinux-0-rescue-8405cda22c0b421db40478edcf9c1fb2-advanced-88ae7d3d-ffaf-4402-9d44-56b6845789e4' { [root@CentOS-7 ~]#
ps: GRUB_DEFAULT - 設定預設選項。有以下幾種情況。
GRUB_DEFAULT=0 以位置來設定預設選單選項。第一筆選單選項為 0,第二筆為 1,以此類推。 GRUB_DEFAULT=”centos*** ” 在此例中,選單中的位置不會有影響。 例如:GRUB_DEFAULT=”Ubuntu, Linux 3.11.0-13-generic”。注意要完整全稱。 GRUB_DEFAULT=saved 由儲存預設的作業系統開機。可以用grub-reboot和grub-set-default指令來設定預設作業系統。預設作業系統不會由來自選單中的互動式選擇而被設定。 grub-set-default 0 以位置來設定預設選單選項。第一筆選單選項為 0,第二筆為 1,以此類推。 grub-set-default “xxxx” 以名稱來設定 grub-reboot 0 以位置來設定下次重啟開機選項。第一筆選單選項為 0,第二筆為 1,以此類推。 grub-reboot “xxxx” 以選單名稱來重啟開機。