cat /etc/centos-release
uname -r
發現伺服器的核心版本確實比較低。
rpm --import
rpm -uvh
yum --enablerepo=elrepo-kernel install kernel-lt -y
或者安裝kernel-ml(ml=main line)
yum --enablerepo=elrepo-kernel install kernel-ml -y
vim /etc/grub.conf
可以看到文件內容中有:
default=0
timeout=5
splashimage=(hd0,0)/boot/grub/splash.xpm.gz
hiddenmenu
title centos (4.4.180-1.el6.elrepo.x86_64)
root (hd0,0)
kernel /boot/vmlinuz-4.4.180.....................
將default的值修改為我們新安裝的核心,我這裡將default=1改為default=0。
對於 centos,opensuse,sles (suse linux enterprise server) 和 aliyun linux,公升級 linux 例項後啟動失敗,可能是因為公升級後的核心對應的 initrd 檔案中沒有 virtio-blk 和 xen-blkfront 驅動。而 debian 和 ubuntu 的 virtio-blk 和 xen-blkfront 驅動是核心內建的,所以不存在這個可能性。
**什麼是 initrd 檔案 **
initrd(initial ramdisk)是用於載入臨時 root 檔案系統到磁碟中的,執行於 linux 例項啟動階段。起同樣作用的還有 initramfs 檔案,雖然 initrd 和 initramfs 是兩種不同的操作概念,但這兩個檔案都活躍在啟動例項時掛載 root 檔案系統之前。
可以直接公升級核心的系統映象
阿里雲優化了映象名稱 image_no 中時間戳從 20161115 開始的映象公共系統映象核心,這些映象的 initrd 檔案不會因為缺失 virtio-blk 和 blkfront 驅動的情況而導致啟動失敗。如下所示:
如何優化核心並避免啟動失敗
更新核心:
執行命令 lsinitrd /boot/initramfs-$(new-kernel-ver).img | grep -e 'virtio|xen' 檢查並確認 initrd / initramfs 檔案中已經包含了 virtio-blk 和 xen-blkfront 驅動。
必須確認 virtio-blk 和 xen-blkfront 驅動在 initrd 中才可以重啟例項。先前就是因為沒有注意這個initrd檔案直接重啟了伺服器,然後伺服器炸了,只能去阿里雲工單去解決,先備份映象,倒騰了好久才搞定。'
reboot
uname -r
發現系統的核心版本已經公升級了
查詢系統的所有核心
rpm -qa|grep kernel*
刪除低版本的核心
yum remove 低版本核心
centOS6 5公升級核心
系統核心是2.6,這肯定不行啊.鬱悶的放棄了.第二天感覺不行,還得弄一下,於是發現可以公升級核心.經過各種嘗試核心順利公升級成功.具體步驟如下 1.匯入key rpm import 如果報ssl錯誤,則需要更新網路安全服務 yum update nss 2.安裝elrepo的yum源 到該 找到最新...
CentOS 6 5 公升級核心到 3 10 28
本文適用於centos 6.4,centos 6.5,親測可行,估計也適用於其他linux發行版。linux核心版本有兩種 穩定版和開發版 linux核心版本號由3個數字組成 r.x.y 去 首頁,可以看到有stable,longterm等版本,longterm是比stable更穩定的版本,會長時間...
Centos6 5公升級核心,並安裝docker
一 核心公升級,從2.6公升級到3.10.107 1 先確定當前核心版本 uname r 2.6.32 220.el6.x86 64 cat etc centos release centos release 6.5 final 2 安裝依賴開發環境和開發庫 yum grouplist 檢視已經安裝...