详解在 KVM 上安装 Win7 虚拟机

 更新时间:2017年03月15日 11:17:37   作者:SammyLiu  
这篇文章主要介绍了详解在 KVM 上安装 Win7 虚拟机,具有一定的参考价值,感兴趣的小伙伴们可以参考一下。

之前都是在用Linux 虚机,现在有需要用到Win7 虚机,才发现在 KVM 上安装 Win7 的过程远比想象中的复杂。本文就把其过程做个简单总结。

1. 在 Virtual Machine Manager 里面安装

首先尝试在 Virtual Machine Manager 里面安装。遇到的问题如下:

(1)一直停留在 starting windows 界面。

解决方法:修改 video model 为 Cirrus,问题解决。

(2)开始安装后,对鼠标和键盘无响应。

google,发现需要使用 <input type='tablet' bus='usb'/>。添加一个:

但是键盘还是不好使。。算了,还是转到使用 qemu-system-x86_64 命令启动虚机吧。

2. 使用 qemu-system-x86_64 启动 Win 7 虚机

2.1 环境准备

(1)下载 Windows virtio driver iso:https://fedorapeople.org/groups/virt/virtio-win/direct-downloads/archive-virtio/virtio-win-0.1.102/,因为要将磁盘挂接为 virtio 磁盘。

(2)创建系统盘 qemu-img create -f raw win7.img 30G,这将作为Win7的操作系统盘。

(3)创建启动脚本

#!/bin/sh
DISKIMG=/home/s1/win7.img
WIN7IMG=/home/s1/en_windows_7_enterprise_x64_dvd_x15-70749.iso
VIRTIMG=/home/s1/virtio-win-0.1.102.iso
qemu-system-x86_64 --enable-kvm -drive file=${DISKIMG},if=virtio -m 2048 \
-net nic,model=virtio -net user -cdrom ${WIN7IMG} \
-drive file=${VIRTIMG},index=3,media=cdrom \
-rtc base=localtime,clock=host -smp cores=2,threads=4 \
-usbdevice tablet -cpu host -name win7 -vnc :5 -device cirrus-vga,id=video0,bus=pci.0,addr=0x4

 (4)可以运行脚本了,然后通过 VNC 进入界面,进入下面部分。

2.2 安装 Win 7

(1)选择 Custom(advanced)

(2)选择 virtio 磁盘

(3)选择 virtio disk driver

(4)安装 Win7 Virtio SCSI Driver

(5)安装好以后,就可以看到安装的目标磁盘了

(6)进入常规的 Win7 安装流程

 3. 安装其它 Virtio 驱动

(1)网络驱动

但是安装失败:

尝试 device manager:

但是还是失败:

(2)Baloon driver

Device manager, 右键 root device, add legacy hardware, next, install manually (advanced), next, have disk, browse, select inf, install.

改成此方法安装 network 驱动成功。注意将虚机重启从而使得安装生效。

(3)诡异的问题

通过上面方法得到的 Win7 raw 格式的镜像文件可以直接使用来创建新的虚机,这些新的虚机会使用 virtio network driver。

但是,在 OpenStack 环境和中,Nova 首先将 qcow2 格式的镜像从glance 中下载到计算节点上,然后将它转化为 raw 格式作为 backfing file,再创建一个 qcow2 文件,它使用 raw 文件作为 backing file。如下图所示:

root@linuxkvm1:/home/s1# qemu-img info /var/lib/nova/instances/1d157798-848d-4dc0-9663-7343083ec943/disk
image: /var/lib/nova/instances/1d157798-848d-4dc0-9663-7343083ec943/disk
file format: qcow2
virtual size: 30G (32212254720 bytes)
disk size: 1.3G
cluster_size: 65536
backing file: /var/lib/nova/instances/_base/d074d3233a25bf3d10fdc4915e2c7913aebf39ee
Format specific information:
  compat: 1.1
  lazy refcounts: false
  refcount bits: 16
  corrupt: false
root@linuxkvm1:/home/s1# qemu-img info /var/lib/nova/instances/_base/d074d3233a25bf3d10fdc4915e2c7913aebf39ee
image: /var/lib/nova/instances/_base/d074d3233a25bf3d10fdc4915e2c7913aebf39ee
file format: raw
virtual size: 30G (32212254720 bytes)
disk size: 7.1G

诡异的是,OpenStack 中新建的虚机不能使用 virtio network driver:

但是,

  1. 如果使用backing file 直接启动虚机,则没有这个问题。
  2. 使用同样的 backing file 创建一个新的 qcow2 文件,则没有这个问题

具体原因应该和 Nova 的具体逻辑有关,将来再查,现在暂时使用 SCSI network driver。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

相关文章

  • Centos7之KVM虚拟化基础管理详解

    Centos7之KVM虚拟化基础管理详解

    这篇文章主要介绍了Centos7之KVM虚拟化基础管理详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-10-10
  • kvm中使用console命令记录的方法

    kvm中使用console命令记录的方法

    这篇文章主要给大家介绍了在kvm中如何使用console命令记录的方法,文中通过图文介绍的很详细,相信对大家的理解和学习具有一定的参考借鉴价值,有需要的朋友们可以参考借鉴,下面感兴趣的朋友们一起来学习学习吧。
    2016-11-11
  • KVM虚拟机的创建、管理与迁移介绍

    KVM虚拟机的创建、管理与迁移介绍

    系统的迁移是指把源主机上的操作系统和应用程序移动到目的主机,并且能够在目的主机上正常运行。本文主要介绍KVM虚拟机的创建、管理与迁移。需要的朋友一起来了解一下。
    2016-10-10
  • 详解CentOS7.2部署KVM虚拟机(图文)

    详解CentOS7.2部署KVM虚拟机(图文)

    这篇文章主要介绍了详解CentOS7.2部署KVM虚拟机(图文),小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-02-02
  • 详细介绍kvm虚拟机静态和动态迁移(图文介绍)

    详细介绍kvm虚拟机静态和动态迁移(图文介绍)

    本篇文章主要详细介绍kvm虚拟机静态和动态迁移,具有一定的参考价值,有需要的可以了解一下。
    2016-11-11
  • kvm 透传显卡至win10虚拟机的方法

    kvm 透传显卡至win10虚拟机的方法

    这篇文章主要介绍了kvm 透传显卡至win10虚拟机,本文通过命令脚本实例代码相结合给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-09-09
  • centos 6.6 安装 KVM 虚拟机的方法

    centos 6.6 安装 KVM 虚拟机的方法

    这篇文章主要介绍了centos 6.6 安装 KVM 虚拟机的方法,需要的朋友可以参考下
    2016-10-10
  • 详解Ubuntu 16.04 搭建KVM环境

    详解Ubuntu 16.04 搭建KVM环境

    这篇文章主要介绍了详解Ubuntu 16.04 搭建KVM环境,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-01-01
  • KVM 介绍及作用详解

    KVM 介绍及作用详解

    KVM 全称是基于内核的虚拟机(Kernel-based Virtual Machine),它是Linux 的一个内核模块,今天通过本文给大家介绍KVM的基本知识,感兴趣的朋友一起看看吧
    2022-03-03
  • 详解基于本地存储的kvm虚拟机在线迁移

    详解基于本地存储的kvm虚拟机在线迁移

    本篇文章主要介绍了基于本地存储的kvm虚拟机在线迁移,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2016-12-12

最新评论