设为首页 收藏本站
查看: 1834|回复: 0

[经验分享] kvm上安装xp

[复制链接]

尚未签到

发表于 2015-4-10 16:53:18 | 显示全部楼层 |阅读模式
  
  主要为了看看图像显示是否有问题,跑起来系能如何,网络连接、文件共享是怎样的。
  用的是雨林木风xp sp3的iso。为了提高性能,决定使用qcow2格式,预分配metadata,cache=none(查看:http://blog.iyunv.com/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
  
  

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-55775-1-1.html 上篇帖子: 恒天云技术分享系列3 – KVM性能调优 下篇帖子: [zz]Ubuntu 10.04 install qemu-KVM 0.12.4 and kvm-pxe
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表