京东云服务器安装virtio驱动

京东云服务器安装virtio驱动
为了保证京东云服务器私有镜像导入后可以成功启动京东云服务器,virtio的驱动必须编译进内核或编译为内核模块,请务必在导入镜像之前确保系统中已正确安装了virtio驱动。

京东云服务器Linux系统
以CentOS7系列镜像举例说明如何确认当前系统已正确安装 virtio 驱动。
① 运行以下指令检查服务器内核是否支持virtio驱动:
如果参数 CONFIG_VIRTIO_BLKCONFIG_VIRTIO_NET 取值为 y,表示驱动已编译进了内核,无须执行下述操作,可导入。如果参数 CONFIG_VIRTIO_BLKCONFIG_VIRTIO_NET 取值为 m,表示驱动已编译成内核模块,请执行下述操作“②”,确认initramfs(或initrd)文件中是否包含virtio_blk驱动,若无则需要重新制作文件。如果在输出信息中没有找到 VIRTIO_BLKVIRTIO_NET 的信息,表示该操作系统没有安装 virtio 相关驱动,需要编译安装virtio驱动,见请执行下述“③”。

② 执行以下指令确认 virtio 驱动是否包含在临时文件系统 initramfs 或者 initrd 中(Ubuntu系统请将initramfs替换为initrd):
如果initramfs已经包含了virtio_blk驱动,以及其所依赖的virtio.kovirtio_pci.kovirtio_ring.ko,则无须执行下述操作。

如果initramfs未找到 virtio 相关信息,则需要修复临时文件系统:

A. CentOS 7/6

复制成功 cp /boot/initramfs-$(uname -r).img /boot/initramfs-$(uname -r).img.bakmkinitrd -f --with=virtio_blk --with=virtio_pci /boot/initramfs-$(uname -r).img $(uname -r)B. Ubuntu 复制成功 echo -e "virtio_pci virtio_blk" /etc/initramfs-tools/modulesupdate-initramfs -u

③ 编译安装virtio驱动:
A.下载内核安装包

安装编译内核的必要组件: 复制成功 yum install -y ncurses-devel gcc make wget 查询当前系统使用的内核版本: 复制成功 uname -r 前往 Linux 内核列表页面( https://mirrors.edge.kernel.org/pub/linux/kernel/ )找到对应的内核版本源码。切换目录,下载安装包(以3.0内核为例),解压: 复制成功 cd /usr/src/wget https://mirrors.edge.kernel.org/pub/linux/kernel/v3.0/linux-3.10.tar.gztar -zxvf linux-3.10.tar.gz 建立链接: 复制成功 ln -s linux-3.10 linux 切换目录: 复制成功 cd /usr/src/linuxB.编译内核清除之前编译过程生成的文件: 复制成功 make mrproper 进入图形化配置界面 复制成功 make menuconfig


在 Device Drivers--Block devices 中选择Virtio block driver
 

在 Device Drivers--Network device support 中选择Virtio network driver

完成模块编译 (可能需要30~40分钟,具体时间取决于服务器配置) 复制成功 make bzImage make modules make modules_install 安装 复制成功 make install 运行以下命令查看 virtio 驱动的安装情况,如果任一命令输出 virtio_blk、virtio_pci.virtio_console 等文件列表,表明已经正确安装了 virtio 驱动。 复制成功 find /lib/modules/"$(uname -r)"/ -name "virtio." | grep -E "virtio."Windows系统

① 前往下载iso格式的virtio软件包(以virtio-win-0.1.137.iso为例),iso文件里面包含了各种设备驱动,如网卡驱动(NetKVM), 磁盘驱动(virtsor)等。

② 将virtio-win-0.1.137.iso文件拷贝到Windows虚机里面的某个目录下,可以通过远程连接共享文件夹等方式,将ios文件拷贝到虚机里。

③ 双击iso文件,Windows会自动将其挂载到DVD设备上用于读取数据,下图中右侧的文件夹就是iso软件包里的内容,包括各种设备的驱动程序,如NetKVM对应的就是网卡驱动。
 

④ 从控制面板里,找到并打开“设备管理器”窗口,只需要安装以下三个设置的驱动程序:

存储控制器-Red Hat VirtIO SCSI controller网络适配器-Red Hat VirtIO Ethernet Adpater串口设备-Virtio Serial Driver

打开设备管理器。会发现有三个打着黄色感叹号的设备没有安装驱动程序,一个SCSI Controller设备,一个网卡和一个PCI简单通信设备,如下图所示。
 

⑤ 首先安装存储控制器驱动,右键点击选择“更新驱动程序软件”,在出现的窗口点击“浏览计算机以查找驱动程序软件”,并在弹出的窗口中定位到DVD驱动器里的“viostor“目录中的2k12R2/amd64/文件夹(Windows Server 2012R2)。点击确定按钮后,再点击下一步,直到按指示完成该驱动安装。系统如果提示重启,请选择稍后重启。待完全安装完三个驱动以后再考虑重启操作。

⑥ 安装网卡驱动,右键点击选择“更新驱动程序软件”,在出现的窗口点击“浏览计算机以查找驱动程序软件”,并在弹出的窗口中定位到DVD驱动器里的NetKVM/2k12R2/amd64/文件夹,点击确定,按照提示完成按照。

⑦ 安装串口驱动,右键点击选择“更新驱动程序软件”,在出现的窗口点击“浏览计算机以查找驱动程序软件”,并在弹出的窗口中定位到DVD驱动器里的vioserial/2k12R2/amd64/文件夹,点击确定,按照提示完成按照。

⑧ 重启系统。

⑨ 打开“设备管理器”,并检查我们安装的三个驱动程序的版本号:在我们文档的例子里,目标版本号是以13700结尾的数字字符串。
 

⑩ 清理配置信息,此步骤极为重要。打开命令行窗口或powershell运行窗口,执行如下命令:

复制成功 c:windowssystem32Sysprepsysprep.exe /generalize /oobe /shutdown执行完该命令会弹出对话框,等待直到完成,系统会自动关机,完成升级Virtio驱动的全部流程。

需要特别注意的是,在卸载和安装后都要重启系统以保证更新驱动生效。

标签

发表评论