镜像服务 IMS-KVM虚拟化ECS安装原生的KVM驱动:SUSE/openSUSE系列操作指导(版本低于SUSE 12 SP1/openSUSE 13)

时间:2025-06-06 17:38:17

SUSE/openSUSE系列操作指导(版本低于SUSE 12 SP1/openSUSE 13)

当操作系统版本低于SUSE 12 SP1或低于openSUSE 13时,请修改“/etc/sysconfig/kernel”文件,操作步骤如下:
  1. 执行如下命令,修改“/etc/sysconfig/kernel”文件。

    vi /etc/sysconfig/kernel

  2. 在INITRD_MODULES=""中添加virtio的驱动(具体格式要根据OS本身的要求来决定)。
    SIA10000xxxxx:~ # vi /etc/sysconfig/kernel 
    # (like drivers for scsi-controllers, for lvm or reiserfs)
    #
    INITRD_MODULES="ata_piix ata_generic virtio_blk virtio_scsi virtio_net virtio_pci virtio_ring virtio"
  3. 执行mkinitrd命令,重新生成initrd。

    如果引导的虚拟文件系统不是默认的initramfs或者initrd,则命令为:dracut -f 实际使用的initramfs或者initrd文件名。“实际使用的initramfs或者initrd文件名”可在menu.lst或者grub.cfg配置(“/boot/grub/menu.lst”或“/boot/grub/grub.cfg”或“/boot/grub2/grub.cfg”)中获取。

    以SUSE 11 SP4为例,如下所示:

    default 0 
    timeout 10 
    gfxmenu (hd0,0)/boot/message 
    title sles11sp4_001_[_VMX_] 
    root (hd0,0) 
    kernel /boot/linux.vmx vga=0x314 splash=silent console=ttyS0,115200n8 console=tty0 net.ifnames=0 NON_PERSISTENT_DEVICE_NAMES=1 showopts 
    initrd /boot/initrd.vmx 
    title Failsafe_sles11sp4_001_[_VMX_] 
    root (hd0,0) 
    kernel /boot/linux.vmx vga=0x314 splash=silent ide=nodma apm=off noresume edd=off powersaved=off nohz=off highres=off processor.max+cstate=1 nomodeset x11failsafe console=ttyS0,115200n8 console=tty0 net.ifnames=0 NON_PERSISTENT_DEVICE_NAMES=1 showopts 
    initrd /boot/initrd.vmx

    其中,initrd所在行的/boot/initrd.vmx为实际使用的initrd文件,执行的时候请按照dracut -f /boot/initrd.vmx执行。如果initrd所在行的initrd文件不包含/boot目录,如/initramfs-xxx,请在执行dracut命令时增加boot目录,例如:dracut -f /boot/initramfs-xxx

  4. 执行如下命令,检查是否已经成功装载了KVM的virtio相应模块。
    lsinitrd /boot/initrd-`uname -r` | grep virtio
    SIA10000xxxxx:~ # lsinitrd /boot/initrd-`uname -r` | grep virtio
    -rwxr--r-- 1 root root 19248 Jun 22 2012 lib/modules/2.6.32-279.el6.x86_64/kernel/drivers/scsi/virtio_scsi.ko
    -rwxr--r-- 1 root root 23856 Jun 22 2012 lib/modules/2.6.32-279.el6.x86_64/kernel/drivers/block/virtio_blk.ko
    drwxr-xr-x 2 root root 0 Jul 12 14:53 lib/modules/2.6.32-279.el6.x86_64/kernel/drivers/virtio
    -rwxr--r-- 1 root root 15848 Jun 22 2012 lib/modules/2.6.32-279.el6.x86_64/kernel/drivers/virtio/virtio_ring.ko
    -rwxr--r-- 1 root root 20008 Jun 22 2012 lib/modules/2.6.32-279.el6.x86_64/kernel/drivers/virtio/virtio_pci.ko
    -rwxr--r-- 1 root root 12272 Jun 22 2012 lib/modules/2.6.32-279.el6.x86_64/kernel/drivers/virtio/virtio.ko
    -rwxr--r-- 1 root root 38208 Jun 22 2012 lib/modules/2.6.32-279.el6.x86_64/kernel/drivers/net/virtio_net.ko
  5. 重启云服务器
  6. 执行如下命令确认initrd中是否存在KVM驱动。

    lsinitrd /boot/initrd-`uname -r` | grep virtio

    SIA10000xxxxx:~ # lsinitrd /boot/initrd-`uname -r` | grep virtio
    -rwxr--r-- 1 root root 19248 Jun 22 2012 lib/modules/2.6.32-279.el6.x86_64/kernel/drivers/scsi/virtio_scsi.ko
    -rwxr--r-- 1 root root 23856 Jun 22 2012 lib/modules/2.6.32-279.el6.x86_64/kernel/drivers/block/virtio_blk.ko
    drwxr-xr-x 2 root root 0 Jul 12 14:53 lib/modules/2.6.32-279.el6.x86_64/kernel/drivers/virtio
    -rwxr--r-- 1 root root 15848 Jun 22 2012 lib/modules/2.6.32-279.el6.x86_64/kernel/drivers/virtio/virtio_ring.ko
    -rwxr--r-- 1 root root 20008 Jun 22 2012 lib/modules/2.6.32-279.el6.x86_64/kernel/drivers/virtio/virtio_pci.ko
    -rwxr--r-- 1 root root 12272 Jun 22 2012 lib/modules/2.6.32-279.el6.x86_64/kernel/drivers/virtio/virtio.ko
    -rwxr--r-- 1 root root 38208 Jun 22 2012 lib/modules/2.6.32-279.el6.x86_64/kernel/drivers/net/virtio_net.ko

    如果误将built-in形式存在内核中的驱动添加到initrd或initramfs文件中,不会影响云服务器正常使用,这里全写进去只是为了修改方便,但是使用lsinitrd命令无法检查到。可使用如下方法确定这些驱动是否以built-in形式存在内核中,例如:

    cat /boot/config-`uname -r` | grep CONFIG_VIRTIO | grep y

support.huaweicloud.com/usermanual-ims/ims_01_0326.html