使用KVM/QEMU命令安装虚拟机

环境准备

     两台主机,一台用作kvm客户端,一台用户kvm服务端,kvm服务端用来创建和管理镜像,kvm客户端使用VNC远程连接kvm服务端的镜像,客户端使用ubuntu14.0桌面版,服务端使用ubuntu14.0 server版,客户端的用户名这边我是kvmclient,服务端的用户名为kvmserver

Kvm Server端配置

安装kvm和qemu-kvm

Apt-get install kvm qemu-kvm
    效果如下

    安装完成后测试模块加载是否正常

安装网络配置工具tunctl和brctl一个用来虚拟网卡一个用来设置网桥

Apt-get install uml-utilities
Apt-get install bridge-utils

 安装vnc服务

Apt-get install vnc4server
#如果提示出现依赖包xbase-client没安装,先apt-get update下再执行上面的指令

    安装完成后设置vnc服务密码(输入vnc后使用tab键可以看到所有vnc开头的指令)

    启动vncserver服务(标示在本地启动一个1号监视器)


    关闭服务,修改配置文件


    配置文件如下


    修改后如下

Kvm Client端配置

安装xvnc4viewer

    给服务器添加网络配置脚本,在kvmserver的home目录下新建一个scripts目录,然后添加如下脚本(脚本里面的kvmserver根据自己的实际用户名修改)

#!/bin/sh
DEL_IPADDR=`ip addr show eth0|grep 'global eth0'|awk '{print $2}'`
IP_ADDR=`ifconfig eth0|grep 'inet addr'|cut -d ':' -f 2|cut -d ' ' -f 1`
NET_MASK=`ifconfig eth0|grep 'inet addr'|cut -d ':' -f 4|cut -d ' ' -f 1`
DEV_ETH="eth0"
TAP_NAME="tap1"

if [ -z "$DEL_IPADDR" ]; then
	echo "${DEV_ETH}'s IP is not exist.\n"
	exit
fi

#Create rollback.sh
echo "#!/bin/sh\n"\
 "tunctl -d $TAP_NAME\n"\
 "ifconfig br0 down\n"\
 "brctl delbr br0\n"\
 "ifconfig eth0 $DEL_IPADDR netmask $NET_MASK up">rollback.sh

#Create tap device
MSG=`ifconfig $TAP_NAME|grep "Device not found"` 
if [ -z "$MSG" ]; then
	#echo "1\n"
	tunctl -t $TAP_NAME -u kvmserver
fi	

#Create network bridge with br0,added eth0 to br0
#Delete current eth0 IP address
ip addr del $DEL_IPADDR dev $DEV_ETH
MSG=`brctl show|grep "^br0"`
if [ -z "$MSG" ]; then
	#echo "2\n"
	brctl addbr br0
fi
MSG=`brctl show|grep $DEV_ETH`
if [ -z "$MSG" ]; then
	#echo "3\n"
	brctl addif br0 $DEV_ETH 
fi

#Give the br0 a IP address,then up that
ifconfig br0 down
ifconfig br0 $IP_ADDR netmask $NET_MASK up
ifconfig $TAP_NAME down
ifconfig $TAP_NAME up
MSG=`brctl show|grep $TAP_NAME`
if [ -z "$MSG" ]; then
	#echo "4\n"
	brctl addif br0 $TAP_NAME
fi

    或者在client下写好然后上传到server上

     能看懂上面脚本的童鞋也可以直接修改配置文件,脚本运行的每次虚拟机重启后都要执行一遍。然后用root用户给脚本附加可执行权限,然后以root权限执行

    如果发生错误可以使用rollback.sh脚本回退,这个脚本在switch_br0.sh执行时会自动生成,当然也要用root附加可执行权限,如果switch_br0.sh执行成功会有如下提示

    用ifconfig和brctl查询网络信息

第二步

    创建虚拟磁盘

qemu-img create –f qcow2 winxp.img 10g

    先将xp的镜像光盘插入VMware的server虚拟机的光驱中

    在虚拟磁盘上安装操作系统,并启用qemu控制台管理虚拟机,使用VNC作为远程桌面,(这个命令好像不能写在脚本里面执行,否则会出现安装操作系统的时候提示只有1M大小磁盘空间)

qemu-system-x86_64 –hda ~/img/win_xp.img –m 512 –boot d –cdrom /dev/cdrom –net nic,vlan=0 –net tap,ifname=tap1,script=no –vnc :1 -usbdevice tablet -monitor stdio
    在client侧使用VNC远程连接

vncviewer 192.168.101.137:1

    然后在vnc:qemu窗口中完成操作系统的安装,安装完成后,可以在client的VNC图形界面里关闭guest,或者在server的qemu命令提示行出输入system_powerdown来关闭guest
     重新引导磁盘镜像(如果发现鼠标同步性太差,添加上-usbdevice tablet)

qemu-system-x86_64 –drive file=~/img/winxp.img,cache=writeback –localtime  –m 512 –boot c –net nic,vlan=0 –net tap,ifname=tap1,script=no –vnc :1 -usbdevice tablet –monitor stdio

    在客户端使用vncviewer链接

参考资料

http://www.doc88.com/p-893241644418.html

http://www.chenyudong.com/

http://www.linux-kvm.org/page/Main_Page

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值