kvm上安装xp
主要为了看看图像显示是否有问题,跑起来系能如何,网络连接、文件共享是怎样的。
用的是雨林木风xp sp3的iso。为了提高性能,决定使用qcow2格式,预分配metadata,cache=none(查看:http://blog.csdn.net/jollyjumper/article/details/12379111),本来还想用vritio结果发现加上之后安装时检测不出硬盘。
kvm-img create -f qcow2 -o size=20G,preallocation=metadata xp.img
kvm -localtime -no-acpi -localtime -m 512 -cdrom XP_SP3_YS5.6.iso -drive file=xp.img,index=0,media=disk,cache=none -boot d
从安装过程来看,cache=none和默认的writethrough相比的确快了不少,复制文件部分writethrough花了大约10分钟,none只花了5分钟(-m 1024会减少到3分钟)。
安装好了,可以上网、可以浏览网页,看看视频怎么样,结果发现视频可以放,但是没有声音,xp托盘上甚至没有soundman。搜了一下,发现需要加上hw参数。
列出所以可用声卡:
kvm -localtime -m 1024 -drive file=xp.img,index=0,media=disk,cache=none -soundhw ?
Unknown sound card name `b'
Valid sound card names (comma separated):
pcspk PC speaker
sb16 Creative Sound Blaster 16
ac97 Intel 82801AA AC97 Audio
es1370 ENSONIQ AudioPCI ES1370
hda Intel HD Audio
-soundhw all will enable all of the above
使用es1370:
kvm -localtime -m 1024 -drive file=xp.img,index=0,media=disk,cache=none -soundhw es1370
现在有声音了,可以看到视频画面不太流畅,远远不如virtualbox的表现。
看看网络是怎么回事,在xp中输入ipconfig,ip是10.0.2.15,网关是10.0.2.2可ping通,而host机上并没有新增10.0.2.2这个网卡。
原来默认是user mode networking就是这个设置,在10.0.2.2上是一个dhcp服务器,10.0.2.3是一个dns,10.0.2.4是一个samba服务器。user mode networking相当于是命令-net nic -net user。这个模式下网络比较受限,只支持tcp,udp(icmp就不行),并且从host无法访问guest(incoming traffic)。但是可以支持端口转发,以下命令添加共享文件夹:
kvm -localtime -m 1024 -drive file=xp.img,index=0,media=disk,cache=none -soundhw es1370 -redir tcp:5556::445 # 445是windows网络共享cifs协议端口
...
在guest中设置网络共享(在xp中需要去掉资源管理器中的文件->查看->简单文件共享)
....
sudo apt-get install cifs-utils # 为了使用mount.cifs
sudo mount -t cifs //127.0.0.1/KVM_xpbox /mnt/qemu -o user=Administrator,pass=password,port=5556
进入该目录就可以执行读写了。
以下是虚拟机最最重要的部分:
可以桥接吗?
可以的。按照例子,对/etc/qemu-ifup进行替换:
#! /bin/bash
#
# script to bring up the tun device in QEMU in bridged mode
# first parameter is name of tap device (e.g. tap0)
#
# some constants specific to the local host - change to suit your host
#
ETH0IPADDR=172.16.0.100
GATEWAY=172.16.0.1
BROADCAST=172.16.0.255
#
# First take eth0 down, then bring it up with IP address 0.0.0.0
#
/sbin/ifdown eth0
/sbin/ifconfig eth0 0.0.0.0 promisc up
#
# Bring up the tap device (name specified as first argument, by QEMU)
#
/usr/sbin/openvpn --mktun --dev $1 --user `id -un`
/sbin/ifconfig $1 0.0.0.0 promisc up
#
# create the bridge between eth0 and the tap device
#
/sbin/brctl addbr br0
/sbin/brctl addif br0 eth0
/sbin/brctl addif br0 $1
#
# only a single bridge so loops are not possible, turn off spanning tree protocol
#
/sbin/brctl stp br0 off
#
# Bring up the bridge with ETH0IPADDR and add the default route
#
/sbin/ifconfig br0 $ETH0IPADDR netmask 255.255.255.0 broadcast $BROADCAST
/sbin/route add default gw $GATEWAY
#
# stop firewall - comment this out if you don't use Firestarter
#
#/usr/sbin/service firestarter stop
对/etc/qemu-ifdown进行替换:
#!/bin/sh
#
# Script to bring down and delete bridge br0 when QEMU exits
#
# Bring down eth0 and br0
#
/sbin/ifdown eth0
/sbin/ifdown br0
/sbin/ifconfig br0 down
#
# Delete the bridge
#
sbin/brctl delbr br0
#
# bring up eth0 in "normal" mode
#
/sbin/ifconfig eth0 -promisc
/sbin/ifup eth0
#
# delete the tap device
#
/usr/sbin/openvpn --rmtun --dev $1
#
# start firewall again
#
#/usr/bin/service firestarter start
要启动第一个虚拟机,执行:
sudo /etc/qemu-ifup tap0
sudo kvm -localtime -m 1024 -drive file=xp.img,index=0,media=disk,cache=none -soundhw es1370 -net nic -net tap,ifname=tap0,script=no,downscript=no
第二个虚拟机,需要指定mac地址,免得与第一个虚拟机冲突:
sudo /etc/qemu-ifup tap1
sudo kvm -localtime -m 1024 -drive file=xp1.img,index=0,media=disk,cache=none -soundhw es1370 -net nic,macaddr=DE:AD:AF:22:33:22 -net tap,ifname=tap1,script=no,downscript=no
可以看到主机是172.16.0.1,tap0和tap1在主机上只是链路层的网口,没有地址,而在虚拟机中它们使用隧道也完成各自IP的分配,IP分别是172.16.0.106和172.16.0.107。三台机器可以互相访问,太棒了。/etc/qemu-ifdown实际上没有多大机会执行。
几个待续:
host文件共享给guest
vnc
vga
run in background,no gui
参考:
http://en.wikibooks.org/wiki/QEMU/Networking
man kvm
kvm上安装xp的更多相关文章
- 在 KVM 上安装 Win7 虚拟机
之前都是在用Linux 虚机,现在有需要用到Win7 虚机,才发现在 KVM 上安装 Win7 的过程远比想象中的复杂.本文就把其过程做个简单总结. 1. 在 Virtual Machine Mana ...
- kvm上已安装的虚拟机修改为桥接网络
kvm上安装的虚拟机默认使用的nat网络格式,现在已经调整kvm主机为桥接方式了,但是已经安装的虚拟机还是nat方式,所以需要修改一下 让KVM虚拟主机使用桥接网络br0 修改虚拟机的配置文件,默认存 ...
- 在 Linux 的 KVM虚拟机 上安装 Mac OS 系统的研究总结
在 Linux 的 KVM虚拟机 上安装 Mac OS 系统的研究总结 一.资料来源: 网上一共找到两个方法,一个是视频上的教程,一个是网页资料. 二.视频资料方法内容:1.install qe ...
- 在windows xp 平台上安装mvc4失败
使用web 平台安装程序,在windows xp上安装mvc4 出现失败,需要主要是windows powershell 2.0安装失败,需要先卸载power shell 1.0或者 winowrm ...
- Windows上安装配置SSH教程(2)——在Windows XP和Windows 10上安装并配置OpenSSH for Windows
知识点汇总:http://www.cnblogs.com/feipeng8848/p/8559803.html ------------------------ 安装方式有3种: (1)Windows ...
- (亲测成功)在centos7.5上安装kvm,通过VNC远程连接并创建多台ubuntu虚拟机(ubuntu server版本)
在centos7.5上安装kvm,通过VNC远程连接并创建多台ubuntu虚拟机 前提:服务器端安装桌面版的centos系统 CentOS Linux release 7.5.1804 (Core) ...
- 在CentOS6的上安装Windows2012R2的KVM虚拟机
在CentOS6的上安装Windows2012R2的KVM虚拟机 1:上传cn_windows_server_2012_r2_vl_with_update_x64_dvd_6052729.iso下载驱 ...
- 如何在老惠普电脑上安装windows xp系统
如何在老惠普电脑上安装windows xp系统 前提,老式的紧凑的惠普台式机,装了linux系统,想要装windows xp系统另作他用.但是使用U盘PE怎么也进不了? 解决办法: 1.拆下惠普主机上 ...
- 在XP上安装VS2002
在2002 年,随着 .NET 口号的提出与 Windows XP/Office XP 的公布,微软公布了 Visual Studio .NET(内部版本为 7.0). 使用VS2002+Object ...
随机推荐
- CodeForces 135 B. Rectangle and Square(判断正方形和 矩形)
题目:http://codeforces.com/problemset/problem/135/B 题意:给8个点 判断能否用 4个点构成正方形,另外4个点构成 矩形. 输出 第一行是正方形 ,第二行 ...
- vijos1049送给圣诞夜的礼品
这题犯了两个sb错误,写下来,为以后做个警告 一.mul过程中将k作为了循环变量 二.看错了题…… 题目中说是数到k行,而我却以为数k遍…… 做矩阵乘法,只要记住一句话:置换一定可以写成矩阵的形式! ...
- 新手!SDK Manager里找不到API安装的选项怎么办?
只有Tools和EXTRAS文件夹的选项,没有API包安装,咋办呢? 回复讨论(解决方案) 网络有问题吗? 网络有问题吗? 就是不知道啊 你是在eclispe里面打开的?还是在外面直接打开的?没有 ...
- Cookie帮助类
using System; using System.Collections.Generic; using System.Text; using System.Web; namespace AIMSC ...
- MapReduce自定义二次排序流程
每一条记录开始是进入到map函数进行处理,处理完了之后立马就入自定义分区函数中对其进行分区,当所有输入数据经过map函数和分区函数处理完之后,就调用自定义二次排序函数对其进行排序. MapReduce ...
- Base-Android快速开发框架(五)--网络操作之RequestModel、ResponeModel、CustomAsyncHttpClient
在正式介绍CustomAsyncHttpClient之前,刚好最近有一个朋友找我帮忙给他们看下一个APP.我先上一段代码截图.一段检测版本更新的接口代码.
- [原]Java面试题-将字符串中数字提取出来排序后输出
[Title][原]Java面试题-将字符串中数字提取出来排序后输出 [Date]2013-09-15 [Abstract]很简单的面试题,要求现场在纸上写出来. [Keywords]面试.Java. ...
- bzoj 3122 [Sdoi2013]随机数生成器(逆元,BSGS)
Description Input 输入含有多组数据,第一行一个正整数T,表示这个测试点内的数据组数. 接下来T行,每行有五个整数p,a,b,X1,t,表示一组数据.保证X1和t都是合法的页码. ...
- centos7 rabbitmq系统部署
CentOS7 1.安装系统 基础设施服务器:Java平台.Linux远程管理.开发工具 2.打开网络连接: (1)cd /etc/sysconfig/network-scripts/ #进入网络 ...
- 50道经典的JAVA编程题 (6-10)
50道经典的JAVA编程题 (6-10),今晚做了10道了,累死了...感觉难度不是很大,就是不知道是不是最好的实现方法啊!希望大神们能给指点哈... [程序6]GCDAndLCM.java 题目:输 ...