在 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:

但是,

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

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

 

参考文档:



    本文转自SammyLiu博客园博客,原文链接:http://www.cnblogs.com/sammyliu/p/5740129.html ,如需转载请自行联系原作者
相关文章
|
3月前
|
数据可视化 大数据 Linux
OpenEuler虚拟机安装保姆级教程 | 附可视化界面
本文介绍了如何在VMware中安装openEuler操作系统,从选择合适的镜像版本下载开始,到创建虚拟机、配置CPU虚拟化、进行系统安装、设置网络连接,直至安装DDE桌面环境实现图形化操作。openEuler是一款由华为开源的操作系统,支持多种处理器架构,广泛应用于数据库、大数据、云计算等领域。文中还分享了安装过程中的注意事项及解决网络问题的方法,适合初次接触openEuler的用户参考学习。
605 3
OpenEuler虚拟机安装保姆级教程 | 附可视化界面
|
4月前
|
Unix Linux 开发工具
centos的官网下载和vm16虚拟机安装centos8【保姆级教程图解】
本文详细介绍了如何在官网下载CentOS 8以及在VMware Workstation Pro 16虚拟机上安装CentOS 8的步骤,包括可能出现的问题和解决方案,如vcpu-0错误的处理方法。
centos的官网下载和vm16虚拟机安装centos8【保姆级教程图解】
|
3月前
|
Linux 虚拟化
vmware虚拟机安装2024(超详细)
vmware虚拟机安装2024(超详细)
416 6
|
4月前
|
KVM 虚拟化
KVM虚拟机的桥接网络
文章主要介绍了KVM虚拟机的NAT和桥接网络类型的工作原理、配置方法以及如何进行网络模式的切换。
59 3
KVM虚拟机的桥接网络
|
4月前
|
KVM 虚拟化
KVM虚拟机的克隆
这篇文章介绍了如何使用KVM虚拟机进行完整克隆和链接克隆,包括手动克隆和使用virt-clone工具克隆的方法,以及如何编写脚本来实现自动化克隆和删除虚拟机。
104 3
KVM虚拟机的克隆
|
4月前
|
KVM 虚拟化
KVM虚拟机的热迁移
这篇文章详细介绍了KVM虚拟机的热迁移过程,包括临时迁移和永久迁移的步骤,以及可能遇到的故障和解决方案。
165 1
KVM虚拟机的热迁移
|
4月前
|
KVM 虚拟化 数据安全/隐私保护
KVM虚拟机安装实战
本文讲述了如何创建并使用VNC连接KVM虚拟机的详细教程,包括安装图解和命令行参数说明。
139 8
|
4月前
|
KVM 虚拟化
KVM虚拟机的冷迁移
这篇文章详细描述了KVM虚拟机的冷迁移过程,包括无依赖环境迁移、有链接克隆虚拟机迁移、多块磁盘迁移的案例,以及可能遇到的错误和解决方案。
150 3
|
4月前
|
虚拟化
虚拟机系统Win7与主机之间不能实现拖放的问题及解决方法
虚拟机系统Win7与主机之间不能实现拖放的问题及解决方法
78 0