qemu的简单使用

30 篇文章 0 订阅
概要:
目标,使用redhat6.5作为主机(这个主机也是vmware虚拟出来的),建立一个虚拟机tinycore5.2
并使这个虚拟机能ping通主机能访问的ip

1,所用工具,2,使用,3,网络,其他
以下称我的本机为server,建立的虚拟机为client

具体内容如下:
1.所用工具
在redhat6.5作为qemu的server进行测试,
TinyCore-5.2.iso
vncviever(如果想测试vnc,可以安装vncserver:yum install tigervnc-server )
qemu-2.0.0

2.使用
qemu的使用
dd if=/dev/zero of=tinycore.img bs=1024000k count=1
mkfs.ext2 -i 1024 -F tinycore.img

创建2G的磁盘,格式化成ext2(参考http://wenku.baidu.com/link?url=apsPQa9UHsJI-Lb0Sdh3FZ_Y8tE-HQV0wwl_9l0JIv2lsjz4pNDJssyUodFQDUYvfrm2lQ4E-RypIpqa_hoJww6pygBT9mUo-mIA1Nq75ta)
无网络模式用


qemu-system-i386 -m 512 -cdrom TinyCore-5.2.iso -hda tinycore.img -boot d   


qemu-system-i386 -m 512 -cdrom TinyCore-4.3.1.iso -hda tinycore.img -boot d  -vnc 192.168.137.208:1

使用vncviewer
localhost:5900
可以进入虚拟机
但是虚拟机不能访问外网
在虚拟机中fdisk -l 可以看到hda为 tinycore.img 2G
安装到硬盘(忽略)

3.网络
如何让虚拟机于外网链接:
使用tap方式,
先检查内核是否支持(参考http://www.cnblogs.com/huqingyu/archive/2005/04/03/131102.html)

[code="java"]# pwd
/lib/modules/2.6.32-431.11.2.el6.x86_64/kernel/drivers/net
# ls tun.ko
tun.ko
# depmod
# lsmod |grep tun
# modprobe tun
# lsmod |grep tun
tun 17095 0
ls -l /dev/net/tun [/code]
如果很不幸,你没看到它,就需要自己手动做这些工作了
#mkdir /dev/net
#mknod /dev/net/tun c 10 200
假设server设置成192.168.0.11

view plaincopy to clipboardprint?
   
vim /etc/qemu-ifup
#!/bin/sh
/sbin/ifconfig $1 192.168.0.11

chmod u+x /etc/qemu-ifup
qemu-system-i386 -m 512 -cdrom TinyCore-5.2.iso -hda tinycore.img -boot d -net nic,model=virtio,macaddr=00:16:3e:22:22:22 -net tap

启动qemu建立虚拟机

设置网络
echo 1 > /proc/sys/net/ipv4/ip_forward   
iptables -A FORWARD -s 192.168.0.110/24 -j ACCEPT
iptables -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -t nat -A POSTROUTING -s 192.168.0.110/24 -j SNAT --to 10.217.12.244

或者
echo “1″ > /proc/sys/net/ipv4/ip_forward 写入脚本/etc/rc.d/rc.local
或者 在/etc/sysconfig/network脚本中添加 FORWARD_IPV4=”YES”
参考http://blog.sina.com.cn/s/blog_a94d887a01017b01.html
检查网络会看到


ifconfig多了一个
tap0      Link encap:Ethernet  HWaddr 8E:37:C8:DC:1E:AE    
inet addr:192.168.0.11 Bcast:192.168.0.255 Mask:255.255.255.0
inet6 addr: fe80::8c37:c8ff:fedc:1eae/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:207 errors:0 dropped:0 overruns:0 frame:0
TX packets:12 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:500
RX bytes:66147 (64.5 KiB) TX bytes:888 (888.0 b)

表示以tap方式启动net,虚拟机的mac地址为00:16:3e:22:22:22,使用nic模式

假设我要把client的ip设置成192.168.0.110
在client里面设置:

view plaincopy to clipboardprint?

ifconfig eth0 192.168.0.110 netmask 255.255.255.0
这里就可以ping通server了
route add default gw 192.168.0.11
这样就可以ping通server能访问的外网的ip了
关于网络
参考http://hi.baidu.com/wangpeng1314/item/2768da1ea66295fa64eabf7a
网络参考

http://www.ming4.com/news/1176.html

4.其他,如果使用vncserver测试vncviewer

view plaincopy to clipboardprint?
  
vncserver :1 设置密码
vim /etc/sysconfig/vncservers
VNCSERVERS="1:root"
service vncserver restart
netstat -ntlp|grep vnc

客户端
vncviever
10.217.12.244:5901

如果其他机器也要访问qemu开的vnc,需要加
-vnc 10.217.12.244:1
比如
qemu-system-i386 -m 512 -cdrom TinyCore-5.2.iso -hda tinycore.img -boot d -net nic,model=virtio,macaddr=00:16:3e:22:22:22 -net tap -vnc 10.217.12.244:1  


其他机器访问vncviewer
10.217.12.244:1
windows的vncviewer如果闪退
VNC是个不错的工具,今天掏出VNC Viewer来连接一台N久没登陆的服务器看看,输入密码连上后直接闪退,可能是ColourLevel的问题。
依次点Option–>Advanced–>Expert找到ColourLevel,默认值是pal8,修改为rgb222或full。
重新连接,没有问题了。

注意,-vnc 绑定ip的时候要绑定ifconfig能看得到的ip

如果想不重启修改img的内容
mount -t ext2 -o loop linux-0.2.img temp
进去修改即可

猜测:如果获取的某个img起不来,可以mount进去,尝试修改grup等启动配置
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值