You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

CentOS 8系统中找不到virtio-pci.ko的查找及替换方法咨询

CentOS 8 virtio-pci.ko查找与自定义模块替换方案

找不到文件的原因

CentOS 8开始virtio-pci模块默认打包进initramfs启动镜像,没有单独存放在文件系统的/lib/modules/$(uname -r)/路径下,因此直接搜索磁盘无法找到该文件。

查找现有virtio-pci.ko的方法

  • 先确认模块已加载:执行lsmod | grep virtio_pci,有输出则说明模块正常运行
  • 从initramfs中提取原生模块:
    1. 创建临时解压目录:mkdir -p /tmp/initramfs_unpack && cd /tmp/initramfs_unpack
    2. 解压当前initramfs镜像:lsinitrd /boot/initramfs-$(uname -r).img | cpio -idmv
    3. 提取完成后,进入/tmp/initramfs_unpack/usr/lib/modules/$(uname -r)/kernel/drivers/virtio/目录即可找到virtio-pci.ko文件

自定义模块替换操作步骤

  1. 先安装编译依赖:yum install -y kernel-devel-$(uname -r) gcc make,确保安装的内核devel包版本和当前运行内核完全一致
  2. 基于内核头文件编译出自定义的virtio-pci.ko
  3. 备份原有initramfs镜像,避免操作失败无法启动:cp /boot/initramfs-$(uname -r).img /boot/initramfs-$(uname -r).img.bak
  4. 将自定义模块放到系统扩展模块目录:cp 你编译好的virtio-pci.ko路径 /lib/modules/$(uname -r)/extra/
  5. 执行depmod -a更新模块依赖关系
  6. 重建initramfs镜像,优先加载你自定义的模块:dracut -f --add-drivers virtio_pci /boot/initramfs-$(uname -r).img $(uname -r)
  7. 重启系统后执行modinfo virtio_pci,检查输出的路径、版本信息,确认加载的是自定义模块即可

注意:如果系统开启了Secure Boot,自定义内核模块需要完成签名后才能被正常加载,否则会触发安全拦截无法生效。

内容的提问来源于stack exchange,提问作者VictorV

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.01 14:24:03