首頁 > 軟體

CentOS 6核心升級到Kernel 3.x中出現的兩個問題

2020-06-16 18:00:56

問題:

之前製作的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 


IT145.com E-mail:sddin#qq.com