Debian 6.0 安装 KVM 桥接网络

 

环境:Win 7 中安装WMWare 8.0; WMWare 中安装Debian 6.0;Debian中安装qemu-kvm; qemu-kvm中安装Gentoo (如下图所示)



桥接:桥接可以让Guest OS (KVM中的OS)和Host OS(此处是Debian)位于同一局域网内,并且可以和局域网内其他PC相互通信。


一. 加载kvm模块




[plain] view plain copy print ?


1. # modprobe kvm  
2. # modprobe kvm_amd   #intel CPU 是 kvm_intel


由于实验环境是WMWare,硬件(CPU)是虚拟化出来的,所以下面这条命令会出错:

不管了,无视此错误,直接跳过 !


二. 安装qemu工具



[plain] view plain copy print ?


1. # apt-get install qemu-kvm    #如下图所示



安装过程结束时报错了,继续无视跳过!(qemu 是 KVM 在用户空间到管理工具,不安装qemu-kvm则无法使用相关命令)


三. 安装桥接网络的工具



[plain] view plain copy print ?


1. # apt-get install bridge-utils  
2. # apt-get install uml-utilities  (命令#tunctl要使用)



四. 配置网络



[plain] view plain copy print ?


1. # vi /etc/network/interfaces  
2. #编辑文件内容如下  
3. auto lo  
4. iface lo inet loopback  
5.   
6. auto br0  
7. iface br0 inet static #dhcp  
8. bridge_ports eth0  
9. address 192.168.1.39  
10. netmask 255.255.255.0  
11. gateway 192.168.1.6  
12. #bridge_stp     off  
13. #bridge_maxwait 0  
14. #bridge_fd      0   (不知道这三行有何用,直接注释掉了)



五. restart the network(重启网络看看OK不?)



[cpp] view plain copy print ?



  1. # /etc/init.d/networking restart



如果和下图差不多,那就OK了 






六. 加载TUN/TAP模块并设置桥接口


[plain] view plain copy print ?


  1. # modprobe tun  
  2. # tunctl   #创建虚拟网卡tapX (X代表数字0,1,2…本文使用的是tap0)  
  3.   
  4. # brctl addif br0 tap0   #将上一步创建的 tapX 加入网桥 br0  
  5. # ifconfig tap0 promisc up    #启用tapX 并设置为promisc 模式  





七. 创建虚拟硬盘,安装系统


[plain] view plain copy print ?


  1. #kvm-img create disk.img 4G  #真实系统(非虚拟机中)可能是qemu-img命令  
  2.   
  3. #kvm -cdrom xp.iso -hda disk.img -boot d #无网络“开机”并从xp.iso启动,安装系统  
  4. 或者使用下条命令联网安装系统,非dhcp需配置网络:IP,DNS,Gateway...   
  5. #kvm -cdrom xp.iso -hda disk.img -net nic,macaddr=00:00:00:00:00:01 -net tap,ifname=tap0,script=no,downscript=no -boot d  


接下来就进入安装界面了,这里不再赘述,需要自己配置网络:IP,DNS,Gateway... (下图是我的kvm启动界面)





进入kvm虚拟机(这里是Gentoo ),配置网络后可以联网(见下图,192.168.1.6是我Win 7 系统IP,整个宿舍其它PC的网关)





OK,在KVM虚拟机Gentoo中已经可以ping通baidu.com, 大功告成 !



八. 用以安装了系统的disk.img启动虚拟机,并启用桥接网络

[cpp] view plain copy print ?


1. #kvm -net nic,macaddr=00:00:00:00:00:01 -net tap,ifname=tap0,script=no,downscript=no disk.img


注:tapX对应于第6步创建的tapX, 如需创建多台guest OS,重复步骤6,7,8 即可。qemu-kvm 参数较多,如后台运行虚拟机,用vnc远程连接等方法请参考响应文档,例如man




总结:以前听人说过虚拟机中不可以继续虚拟机,后来google了下说是可以,今天证明了确实可以!只不过是在WMWare中KVM罢了