详情页标题前

腾讯云CVM服务器Linux 系统检查 Virtio 驱动

详情页1

操作场景

云服务器系统内核需要支持 Virtio 驱动(包括块设备驱动 virtio_blk 和网卡驱动 virtio_net)才能在腾讯云上正常运行。为避免导入自定义镜像后,创建的云服务器实例无法启动,您需要在导入镜像前,检查是否需要在源服务器中检查以及修复镜像中对 Virtio 驱动的支持。本文档以 CentOS 操作系统为例,指导您如何在导入镜像前进行检查以及修复镜像中对 Virtio 驱动的支持。

操作步骤

步骤1:检查内核是否支持 Virtio 驱动

执行以下命令,确认当前内核是否支持 Virtio 驱动。

grep -i virtio /boot/config-$(uname -r)

返回类似如下结果:

腾讯云CVM服务器Linux 系统检查 Virtio 驱动

如果返回结果中CONFIG_VIRTIO_BLK 参数和CONFIG_VIRTIO_NET 参数取值为 m,请执行 步骤2如果在返回结果中CONFIG_VIRTIO_BLK 参数和CONFIG_VIRTIO_NET 参数取值为 y,表示该操作系统包含了 Virtio 驱动,您可以直接导入自定义的镜像到腾讯云。操作详情请参见 导入镜像概述如果在返回结果中没有CONFIG_VIRTIO_BLK 参数和CONFIG_VIRTIO_NET 参数的信息,表示该操作系统不支持导入腾讯云,请 下载和编译内核

步骤2:检查临时文件系统是否包含 Virtio 驱动

如果 步骤1 的执行结果参数取值为 m,则需要进一步检查,确认临时文件系统 initramfs 或者 initrd 是否包含 virtio 驱动。请根据操作系统的不同,执行相应命令:CentOS Stream 操作系统:

lsinitrd /boot/initramfs-$(uname -r).img | grep virtio

CentOS 6/CentOS 7/CentOS 8/RedHat 6/RedHat 7 操作系统:

lsinitrd /boot/initramfs-$(uname -r).img | grep virtio

RedHat 5/CentOS 5 操作系统:

mkdir -p /tmp/initrd && cd /tmp/initrdzcat /boot/initrd-$(uname -r).img | cpio -idmvfind . -name "virtio*"

Debian/Ubuntu 操作系统:

lsinitramfs /boot/initrd.img-$(uname -r) | grep virtio

OpenSUSE Leap 操作系统:

lsinitrd /boot/initrd-$(uname -r) | grep virtio

返回类似如下结果:

腾讯云CVM服务器Linux 系统检查 Virtio 驱动


可得知,
initramfs 已经包含了 virtio_blk 驱动,以及其所依赖的 virtio.kovirtio_pci.kovirtio_ring.ko,您可以直接导入自定义的镜像到腾讯云。操作详情请参见 导入镜像概述
如果
initramfs 或者 initrd 没有包含 virtio驱动,请执行 步骤3

步骤3:重新配置临时文件系统

如果 步骤2 的执行结果显示临时文件系统 initramfs 或者 initrd 没有包含 virtio 驱动,则需要重新配置临时文件系统 initramfs 或者 initrd,使其包含 virtio 驱动。请根据操作系统的不同,选择相应操作:CentOS Stream 操作系统:

mkinitrd -f --allow-missing --with=virtio_blk --preload=virtio_blk --with=virtio_net --preload=virtio_net --with=virtio_console --preload=virtio_console /boot/initramfs-$(uname -r).img $(uname -r)

CentOS 8/RedHat 8 操作系统:

mkinitrd -f --allow-missing --with=virtio_blk --preload=virtio_blk --with=virtio_net --preload=virtio_net --with=virtio_console --preload=virtio_console /boot/initramfs-$(uname -r).img $(uname -r)

CentOS 6/CentOS 7/RedHat 6/RedHat 7 操作系统:

mkinitrd -f --allow-missing --with=xen-blkfront --preload=xen-blkfront --with=virtio_blk --preload=virtio_blk --with=virtio_pci --preload=virtio_pci --with=virtio_console --preload=virtio_console /boot/initramfs-$(uname -r).img $(uname -r)

RedHat 5/CentOS 5 操作系统:

mkinitrd -f --allow-missing --with=xen-vbd  --preload=xen-vbd --with=xen-platform-pci --preload=xen-platform-pci --with=virtio_blk --preload=virtio_blk --with=virtio_pci --preload=virtio_pci --with=virtio_console --preload=virtio_console /boot/initrd-$(uname -r).img $(uname -r)

Debian/Ubuntu 操作系统:

echo -e 'xen-blkfront\nvirtio_blk\nvirtio_pci\nvirtio_console' >> /etc/initramfs-tools/modulesmkinitramfs -o /boot/initrd.img-$(uname -r)

OpenSUSE Leap 操作系统:

mkinitrd -m "virtio_blk virtio_net"

附录

下载和编译内核

下载内核安装包

1. 执行以下命令,安装编译内核的必要组件。

yum install -y ncurses-devel gcc make wget

2. 执行以下命令,查询当前系统使用的内核版本。

uname -r

返回类似如下结果,当前系统使用的内核版本为2.6.32-642.6.2.el6.x86_64

腾讯云CVM服务器Linux 系统检查 Virtio 驱动

3. 前往 Linux 内核下载页面,下载对应的或最接近的内核版本源码。
例如,
2.6.32-642.6.2.el6.x86_64版本的内核下载 linux-2.6.32.tar.gz 的安装包,其下载路径为:https://mirrors.edge.kernel.org/pub/linux/kernel/v2.6/linux-2.6.32.tar.gz
4. 执行以下命令,切换目录。

cd /usr/src/

5. 执行以下命令,下载安装包。

wget https://mirrors.edge.kernel.org/pub/linux/kernel/v2.6/linux-2.6.32.tar.gz

6. 执行以下命令,解压安装包。

tar -xzf linux-2.6.32.tar.gz

7. 执行以下命令,建立链接。

ln -s linux-2.6.32 linux

8. 执行以下命令,切换目录。

cd /usr/src/linux

编译内核

1. 依次执行以下命令,编译内核。

make mrpropercp /boot/config-$(uname -r) ./.configmake menuconfig

进入 Linux Kernel vX.X.XX Configuration 界面。如下图所示:

腾讯云CVM服务器Linux 系统检查 Virtio 驱动

说明 如果没有进入 “Linux Kernel vX.X.XX Configuration” 界面,请执行 步骤18
“Linux Kernel vX.X.XX Configuration” 界面:
按 “Tab” 或 “↑” “↓” 方向键移动光标。按 “Enter” 选择或执行光标所选项目。按空格键选中光标所选项目,“*” 表示编译到内核,“M” 表示编译为模块。2. 按 “↓” 键将光标调到 “Virtualization”,并按空格键选中 “Virtualization”。3. 在 “Virtualization” 处按 “Enter”,进入 Virtualization 详情界面。4. 在 Virtualization 详情界面,确认是否勾选了 Kernel-based Virtual Machine (KVM)support 选项。如下图所示:

腾讯云CVM服务器Linux 系统检查 Virtio 驱动


若未勾选,请按空格键选中 “Kernel-based Virtual Machine (KVM)support” 选项。
5. 按 “Esc” 返回 “Linux Kernel vX.X.XX Configuration” 主界面。6. 按 “↓” 键将光标调到 “Processor type and features”,并按 “Enter”,进入 Processor type and features 详情界面。7. 按 “↓” 键将光标调到 “Paravirtualized guest support”,并按 “Enter”,进入 Paravirtualized guest support 详情界面。8. 在 Paravirtualized guest support 详情界面,确认是否勾选了 “KVM paravirtualized clock” 和 “KVM Guest support”。如下图所示:

腾讯云CVM服务器Linux 系统检查 Virtio 驱动


若未勾选,请按空格键选中 “KVM paravirtualized clock” 和 “KVM Guest support” 选项。
9. 按 “Esc” 返回 “Linux Kernel vX.X.XX Configuration” 主界面。10. 按 “↓” 键将光标调到 “Device Drivers”,并按 “Enter”,进入 Device Drivers 详情界面。11. 按 “↓” 键将光标调到 “Block devices”,并按 “Enter”,进入 Block devices 详情界面。12. 在 Block devices 详情界面,确认是否勾选了 “Virtio block driver (EXPERIMENTAL)”。如下图所示:

腾讯云CVM服务器Linux 系统检查 Virtio 驱动


若未勾选,请按空格键选中 “Virtio block driver (EXPERIMENTAL)” 选项。
13. 按 “Esc” 返回 Device Drivers 详情界面。14. 按 “↓” 键将光标调到 “Network device support”,并按 “Enter”,进入 Network device support 详情界面。15. 在 Network device support 详情界面,确认是否勾选了 “Virtio network driver (EXPERIMENTAL)”。如下图所示:

腾讯云CVM服务器Linux 系统检查 Virtio 驱动


若未勾选,请按空格键选中 “Virtio network driver (EXPERIMENTAL)” 选项。
16. 按 “Esc” 退出内核配置界面,并根据弹窗提示,选择 “YES”,保存 .config 文件。17. 参考 步骤1:检查内核是否支持 Virtio 驱动,验证 Virtio 驱动是否已经正确配置。18. 可选)执行以下命令,手动编辑 .config 文件。说明 如果您符合如下任一条件,建议执行此操作:若检查后发现,内核仍无 Virtio 驱动的相关配置信息。编译内核时,无法进入内核配置界面或者未成功保存 .config 文件。

make oldconfigmake preparemake scriptsmakemake install

19. 依次执行以下命令,查看 Virtio 驱动的安装情况。

find /lib/modules/"$(uname -r)"/ -name "virtio.*" | grep -E "virtio.*"grep -E "virtio.*" < /lib/modules/"$(uname -r)"/modules.builtin

如果任一命令的返回结果输出 virtio_blkvirtio_pci.virtio_console 等文件列表,即表明您已经正确安装了 Virtio 驱动。
腾讯云云服务器官网1折活动进行中,限时活动,即将结束,速速收藏
同尘科技为腾讯云授权服务中心。
购买腾讯云产品享受折上折,更有现金返利。同意关联立享优惠

转转请注明出处:https://www.yunxiaoer.com/138564.html

(0)
上一篇 2023年12月9日 上午1:01
下一篇 2023年12月9日 上午1:02
详情页2

相关推荐

  • 腾讯云对象存储服务端加密

    简介 本文档提供关于如何使用在上传对象时开启服务端加密。服务端加密的密钥分为三种:COS 托管加密密钥客户提供的加密密钥KMS 托管加密密钥 使用 COS 托管加密密钥的服务端加密(SSE-COS)保护数据 由腾讯云 COS 托管主密钥和管理数据。COS 会帮助您在数据写入数据中心时自动加密,并在您取用该数据时自动解密。目前支持使用 COS 主密钥对数据进行…

    腾讯云 2023年12月9日
  • 腾讯云容器服务超级节点相关同尘科技

    如何禁止 Pod 调度到某个按量计费超级节点? 默认情况下,TKE 普通集群添加了按量计费超级节点节点池后,会在 Node 资源不足时,自动向按量计费超级节点调度 Pod。Serverless 集群则会自动在多个按量计费超级节点随机调度 Pod。此时如果您不希望向某按量计费超级节点(代表某子网/可用区)调度,可通过以下两种方式封锁按量计费超级节点实现禁止调度…

    腾讯云 2023年12月9日
  • 腾讯云对象存储图片审核结果反馈

    功能描述 您可通过本接口反馈与预期不符的审核结果,例如色情图片被审核判定为正常或正常图片被判定为色情时可通过该接口直接反馈。本接口不会直接修改审核结果,您反馈的错误审核结果将在后台进行确认,并在后续的审核任务中生效。 授权说明 授权策略中 action 设置为 ci:ReportBadCase 。查看所有 action。 服务开通 使用该功能需提前开通数据万…

    腾讯云 2023年12月9日
  • 腾讯云Serverless SSR应用场景-云淘

    SSR 项目部署 通过 Serverless 组件,快速部署您的 SSR 项目至云端,实现首页快速加载、SEO 友好等优势。   业务集成 基于 Serverless 完整的产品生态,与 API 网关、Serverless DB 等产品合作,完成完整网页应用项目的部署与开发。   官网1折活动,限时活动,即将结束,速速收藏同尘科技为腾讯云授权服务…

    腾讯云 2023年12月9日
  • 信息流广告,信息流部分建议宽度830px,只针对默认列表样式,顺序随机
  • 腾讯云对象存储文件解压

    简介 本文档提供关于数据万象文件解压的 API 概览以及 SDK 示例代码。注意COS Javascript SDK 版本需要大于等于 v1.3.1。 API 操作描述 提交文件解压任务 创建一个文件处理解压任务 查询文件解压结果 查询一个文件处理解压任务 提交文件解压任务 功能说明 以提交任务的方式进行文件解压缩,异步返回压缩包内被解压出来的文件。 示例代…

    腾讯云 2023年12月9日

联系我们

400-800-8888

在线咨询: QQ交谈

邮件:admin@example.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信
本站为广大会员提供阿里云、腾讯云、华为云、百度云等一线大厂的购买,续费优惠,保证底价,买贵退差。