2021-05-12 14:32:11
CentOS 6核心升級到Kernel 3.x中出現的兩個問題
問題:
之前製作的openstack CentOS6.5模板映象,其核心為2.6.xx,現需要製作一個核心為3.x的centos6映象,使用rpm包kernel-ml-3.18.3-1.el6.elrepo.x86_64.rpm升級核心,重新啟動虛擬機器出現錯誤:
FATAL: Module scsi_wait_scan not found.
如果你再進一步測試,就會發現,在物理機上升級核心,一切ok!
註:以下操作都是在kvm虛擬機器內進行,物理機升級核心不存在這個問題
分析:
1.這個錯誤的出現是因為KVM中的虛擬機器使用了virtio這個半虛擬化驅動來是虛擬機器支援scsi裝置,而物理機升級時用不到virtio驅動,自然不會有問題
2.centos6系統中使用Dracut這個程式生成系統的initramfs.img ,在核心安裝過程中,Dracut識別核心模組virtio_blk.ko是通過"
"檔案中給出的函數識別的,如下
在kernel3.13版本以前,Dracut是通過"blk_init_queue"這個函數安裝virtio_blk.ko模組,而在kernel3.13版本之後,安裝virtio_blk.ko模組需要新函數"blk_mq_init_queue",但是centos6系統中的Dracut程式依然使用舊的函數"blk_init_queue",因此就無法安裝virtio_blk.ko 解決問題的關鍵在於要確保virtio_blk.ko能夠被安裝
第一種解決方法:
編輯檔案/usr/share/dracut/modules.d/90kernel-modules/installkernel
vim /usr/share/dracut/modules.d/90kernel-modules/installkernel
#第四行中的"blk_init_queue" 替換為"blk_mq_init_queue"
然後使用正常的rpm -ivh 方式安裝核心包即可
註:另一種解決方案:
這種解決方案虛擬機器也能夠成功啟動,但是不能夠進行硬碟的熱拔插,比如在宿主機上使用virsh attach/detach 動態為一台虛擬機器載入硬碟,必須重新啟動虛擬機器才能生效,而第一種解決方法能夠進行以後ing槽的hotplug,即熱拔插
1.下載安裝新版本核心rpm包(3.18)
這裡是下載地址
rpm -ivh kernel-ml-3.18.3-1.el6.elrepo.x86_64.rpm
2.解決virtio驅動問題
#新增virtio_blk支援(新建conf檔案)
echo 'add_drivers+="virtio_blk"' >/etc/dracut.conf.d/force-vitio_blk-to-ensure-boot.conf
#備份initramfs
cp /boot/initramfs-3.18.3-1.el6.elrepo.x86_64.img /boot/initramfs-3.18.3-1.el6.elrepo.x86_64.img.bak
#重新編譯生成initramfs
dracut -f /boot/initramfs-3.18.3-1.el6.elrepo.x86_64.img 3.18.3-1.el6.elrepo.x86_64
3.修改grub.conf
default=0 #default為新核心
timeout=5
splashimage=(hd0,0)/grub/splash.xpm.gz
hiddenmenu
title Red Hat Enterprise Linux Server (3.18.3-1.el6.elrepo.x86_64)
root (hd0,0)
kernel /vmlinuz-3.18.3-1.el6.elrepo.x86_64 ...
Ubuntu 13.10 (Saucy Salamander) 核心已升級至 Linux Kernel 3.10 RC5 http://www.linuxidc.com/Linux/2013-06/86110.htm
Linux Kernel 3.4.62 LTS 現已經提供下載 http://www.linuxidc.com/Linux/2013-09/90368.htm
如何在Ubuntu 13.10上安裝Linux核心 3.12 http://www.linuxidc.com/Linux/2013-11/92930.htm
如何在Ubuntu 14.10,Ubuntu 14.04及其衍生版本安裝 3.16.7 CKT2核心 http://www.linuxidc.com/Linux/2014-12/110189.htm
相關文章