更新时间:2025-09-10 GMT+08:00
分享

修改引导的硬件设备驱动

操作场景

此操作主要是在系统启动阶段,针对加载的实际物理服务器的硬件设备驱动所进行的。

前提条件

已登录虚拟机。

操作步骤

  1. 增加或修改驱动。
    对于Ubuntu 16.04/Ubuntu 18.04操作系统,需要分别在“/etc/dracut.conf”和“/etc/initramfs-tools/modules”文件中添加驱动。但是,在编辑配置文件之前,需要安装相关软件:
    1. 由于该操作系统默认不带dracut软件,执行以下命令安装dracut软件:

      apt-get install dracut

      安装完成后,按照Red Hat系列/Oracle Linux 7.3等操作系统的方法,编辑“/etc/dracut.conf”文件,在末尾添加add_drivers+="ahci megaraid_sas mpt3sas mpt2sas virtio_blk virtio_scsi virtio_net"

      如果有报错,请在引号内前后增加空格,再次尝试。

    2. 由于该操作系统默认不带initramfs-tools软件,执行以下命令进行安装:

      apt-get install initramfs-tools

      安装完成后,按照Ubuntu 14.04操作系统的方法,编辑“/etc/initramfs-tools/modules”文件,在末尾添加ahci、megaraid_sas、mpt3sas、mpt2sas和virtio_blk virtio_scsi virtio_net驱动。

    服务器的RAID卡驱动可以填写多个,以空格分开。驱动信息可以根据采购的硬件设备获取RAID相关的驱动名称。镜像支持多种类型的驱动并存,如“mpt3sas”、“mpt2sas”和“megaraid_sas”就是3种不同的RAID卡型号。当操作系统不支持某些硬件的驱动时,需要额外安装硬件驱动。

  2. 刷新内核。

    对于Ubuntu,执行以下命令重新生成initrd。

    update-initramfs -u

    依次执行以下命令,检查是否已经成功装载了ahci、megaraid_sas、mpt3sas驱动的相应模块。

    lsinitramfs /boot/initrd.img-`uname -r` |grep ahci

    lsinitramfs /boot/initrd.img-`uname -r` |grep megaraid_sas

    lsinitramfs /boot/initrd.img-`uname -r` |grep mpt3sas

  3. 对于Ubuntu,还需要修改grub引导文件、fstab文件和interfaces文件。
    1. 修改“/etc/default/grub”配置文件中的参数。

      将GRUB_DISABLE_LINUX_UUID参数设置为true。

      ...
      # Uncomment if you don't want GRUB to pass "root=UUID=xxx" parameter to linux
      GRUB_DISABLE_LINUX_UUID=true
      
      # Uncomment to disable generation of recovery mode menu entries
      ...

      修改后执行命令:sudo update-grub2

    2. 修改“/etc/network/interfaces”文件,删除其中除了“lo interface”之外的其他interface信息。
      # This file describes the network interfaces available on your system
      # and how to activate them. For more information, see interfaces (5).
      
      source /etc/network/interfaces.d/*
      
      # The loopback network interface
      auto lo
      iface to inet loopback
      
      ~
      ~

相关文档