详解在 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。

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

(0)

相关推荐

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

    前段时间学习了关于PostGis.OSM数据以及Mapnik相关内容,接下来将利用假期重点学习PostgreSQL-XL和瓦片服务器集群技术,因此先把环境搭好.计划采用KVM来充分利用家里不太宽裕的"服务器"资源,以便实现弹性计算:) CentOS版本:64位 7.2  1511 一.安装KVM 1. 验证CPU是否支持KVM:如果结果中有vmx(Intel)或svm(AMD)字样,就说明CPU的支持的. egrep '(vmx|svm)' /proc/cpuinfo 2. 关闭SEL

  • kvm虚拟机的创建与克隆操作方法

    前言 这篇文章给大家介绍了kvm虚拟机的创建与克隆,下面话不多说,来看看详细的操作步骤 一.创建虚拟机: qemu-img create -f qcow2 -o preallocation=metadata /data/kvm_centos/centos6.7_base.qcow2 10G virt-install --name=centos6.7_base --ram 512 --vcpus=1 -f /data/kvm_centos/centos6.7_base.qcow2 --locati

  • Linux KVM的QCOW2 和 ROW的详解及区别介绍

     QCOW2和ROW 区别 kvm虚拟机中需要选择磁盘镜像的格式,通常的选择有两种,一种是raw镜像格式,一种是qcow2格式. raw格式是原始镜像,会直接当作一个块设备给虚拟机来使用,至于文件里面的空洞,则是由宿主机的文件系统来管理的,Linux下的文件系统可以很好的支持空洞的特性,所以,如果你创建了一个100G的raw格式的文件,ls看的时候,可以看到这个文件是100G的,但是用du 来看,这个文件会很小. qcow2是kvm支持的磁盘镜像格式,我们创建一个100G的qcow2磁盘之后,无

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

    本文主要介绍了kvm虚拟机静态和动态迁移,具体如下: 一.kvm虚拟机静态迁移 1.静态迁移就是虚拟机在关机状态下,拷贝虚拟机虚拟磁盘文件与配置文件到目标虚拟主机中,实现的迁移. (1)虚拟主机各自使用本地存储存放虚拟机磁盘文件 本文实现基于本地磁盘存储虚拟机磁盘文件的迁移方式, (2)虚拟主机之间使用共享存储存放虚拟机磁盘文件 该方式只是在目标虚拟主机上重新定义虚拟机就可以了. 2.静态迁移过程如下 (1)确定虚拟机关闭状态 (2)准备迁移oeltest02虚拟机,查看该虚拟机配置的磁盘文件

  • linux下配置和安装KVM虚拟机的步骤

    最近要在外网搞一套监控系统,正好有一台服务器配置比较高,也没跑什么重要的业务,就拿来划了一个KVM虚拟机,可能是平时各种虚拟机用的比较多,配置起来感觉比想象中简单的多,简单记录下过程 准备工作 宿主机为centos 6.8 64位,检查宿主机CPU是否支持虚拟化: cat /proc/cpuinfo | egrep '(vmx|svm)' | wc -l; 结果大于0表示支持 安装kvm KVM核心软件包: 复制代码 代码如下: yum install kvm libvirt python-vi

  • kvm安装和删除虚拟机的方法

    什么是 KVM ? KVM 是指基于 Linux 内核的虚拟机(Kernel-based Virtual Machine). 2006 年 10 月,由以色列的Qumranet 组织开发的一种新的"虚拟机"实现方案. 2007 年 2 月发布的 Linux 2.6.20 内核第一次包含了 KVM .增加 KVM 到 Linux 内核是 Linux 发展的一个重要里程碑,这也是第一个整合到 Linux 主线内核的虚拟化技术. KVM 在标准的 Linux 内核中增加了虚拟技术,从而我们可

  • linux中kvm的安装及快照管理

    一.kvm的安装及状态查看 1.安装软件 yum -y install kvm virt-manager libvirt 2.启动libvirtd 报错,升级device-mapper-libs yum -y upgrade device-mapper-libs kvm桥接功能: 1.删除eth0配置文件上的IP配置 2.添加BRIDGE="br0"到eth0的配置文件 3.新建ifcfg-br0配置文件 DEVICE="br0" NM_CONTROLLED=&qu

  • KVM虚拟化(一)——KVM虚拟机的介绍与简单使用

    一.架构及介绍 KVM(Kernel-based Virtual Machine)它由 Quramnet 开发,该公司于 2008年被 Red Hat 收购: 自Linux 2.6.20后整合到内核,该内核模块使得 Linux 变成了一个 Hypervisor层: 它依托于CPU虚拟化指令集,性能.安全性.兼容性.稳定性表现很好,每个虚拟化操作系统表现为单个系统进程,与Linux安全模块selinux安全模块很好结合: 官方网站为http://www.linux-kvm.org/page/Mai

  • centos 6.6 安装 KVM 虚拟机的方法

    KVM是指基于Linux内核的虚拟机(Kernel-base Virtual Machine),增加到Linux内核是Linux发展的一个重要里程碑,这也是第一个整合到Linux主线内核的虚拟化技术.在KVM模型中,每一个虚拟机都是一个由Linux调度程序管理的标准进程,你可以在用户空间启动客户机操作系统,一个普通的Linux进程有两种运行模式:内核和用户,KVM增加了第三种模式:客户模式(有自己的内核和用户模式). 1 KVM虚拟机的管理工具 准确的来说,KVM仅仅是Linux内核的一个模块,

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

    虚拟机迁移技术为服务器虚拟化提供了便捷的方法.尽管商业的虚拟软件功能比较强大,但是开源虚拟机如 Linux 内核虚拟机 KVM 和 XEN 发展迅速,迁移技术日趋完善.  一.安装guest虚拟机 1.直接通过virt-manager安装.管理虚拟机(略) 2.通过命令行安装guest虚拟机 qemu-img create -f qcow2 /images/centos6.3-x86_64.img 10G chown qemu:qemu /images/centos6.3-x86_64.img

随机推荐