Chinaunix首页 | 论坛 | 博客
  • 博客访问: 96171
  • 博文数量: 6
  • 博客积分: 30
  • 博客等级: 民兵
  • 技术积分: 170
  • 用 户 组: 普通用户
  • 注册时间: 2011-09-22 13:06
文章分类

全部博文(6)

文章存档

2015年(2)

2014年(4)

我的朋友

分类: 虚拟化

2014-06-29 13:59:46

最近在自己在VMware Workstation上安装了一个CentOS-6.5-x86_64虚拟机,在其上用纯命令行执行的方式来创建虚拟机镜像磁盘、启动虚拟机并安装win7系统,然后安装qxl显卡驱动、virtio网卡驱动,创建了一个采用qxl显卡,virtio网卡的win7虚拟机。在此过程中,边操作边写,也记录了一些当中碰到的问题。
记录一下操作流程,留待之后查询。
本文用最原始的方法了解虚拟机的创建流程,了解了原理后,之后可以用virt-manager、libvirt的封装来管理虚拟机。
注意:这些操作仅供参考,因为只是在特定场景(CentOS-6.5)下的操作,你可能会遇到其它问题。

1.下载qemu源码
#wget http://wiki.qemu-project.org/download/qemu-1.4.2.tar.bz2
#tar jxf qemu-1.4.2.tar.bz2

2.安装必要的开发包
#yum install libuuid-devel.x86_64
#yum install libaio-devel.x86_64
#yum install spice-server-devel.x86_64

2.执行configure
#cd qemu-1.4.2
#./configure --prefix=/usr/local/ --target-list=x86_64-softmmu --enable-vnc --disable-xen --enable-vnc-tls --enable-vnc-sasl --enable-kvm  --enable-linux-aio --disable-docs --enable-vhost-net --disable-libiscsi --disable-smartcard-nss --enable-debug  --enable-spice --enable-uuid
#make -j4
#make install

3.创建磁盘镜像
#qemu-img create -f qcow2 win7_x86.qcow2 60G

4.放通5913端口
#/sbin/iptables -I INPUT -p tcp --dport 5913 -j ACCEPT
#/etc/rc.d/init.d/iptables save 

5.下载spice客户端
https://fedorahosted.org/released/virt-viewer/virt-viewer-x64-0.6.0.msi
注意:在连接虚拟机时,URL格式为:spice://192.168.1.123:5913

6.启动虚拟机,安装Windows系统
/usr/local/bin/qemu-system-x86_64 -hda win7_x86.qcow2 -boot d -m 1024 -cdrom /media/cn_windows_7_ultimate_with_sp1_x64_dvd_u_677408.iso -spice port=5913,disable-ticketing -enable-kvm

7.安装完后,重新启动虚拟机,安装spice-guest-tools,增强spice客户端的用户体验
/usr/local/bin/qemu-system-x86_64 -hda win7_x86.qcow2 -boot c -m 1024  -spice port=5913,disable-ticketing -enable-kvm -vga qxl -cdrom /media/spice-guest-tools-0.74.iso

8.采用TAP虚拟机网卡,桥接模式来配置qemu虚拟机
1)关闭NetworkManager服务 /*这一步必须的,否则创建网桥会失败*/
#chkconfig NetworkManager off
#service NetworkManager stop

2)增加一个网桥,并将eth0物理网口加入网桥中
#vim /etc/sysconfig/network-scripts/ifcfg-br0

DEVICE=br0
TYPE=Bridge
ONBOOT=yes
BOOTPROTO=static
IPADDR=192.168.1.123
NETMASK=255.255.255.0 
GATEWAY=192.168.1.1
DELAY=0
IPV6INIT=no
USERCTL=no


#vim /etc/sysconfig/network-scripts/ifcfg-eth0

DEVICE=eth0
HWADDR=00:0C:29:DF:B5:6B
TYPE=Ethernet
UUID=29d5e780-bed2-48cf-a8e8-cb22fddfef9f
ONBOOT=yes
NM_CONTROLLED=yes
IPV6INIT=no
BOOTPROTO=static
IPADDR=192.168.1.123
NETMASK=255.255.255.0
GATEWAY=192.168.1.1
BRIDGE=br0


9.创建两个回调脚本,qemu-ifup和qemu-ifdown
qemu在不指定脚本具体路径的情况下,默认路径是/etc/qemu-ifup和 /etc/qemu-ifdown。

#vi /etc/qemu-ifup

#!/bin/sh
switch=br0

if [ -n "$1" ]
then
    ip link set $1 up
    sleep 1
 
    /usr/sbin/brctl addif ${switch} $1
 
    exit 0
else
    echo "Error: no interface specified"
    exit 1
fi


#vi /etc/qemu-ifdown

#!/bin/sh
switch=br0 

if [ -n "$1" ]
then
    ip link set $1 down
    sleep 1
 
    /usr/sbin/brctl delif ${switch} $1
 
    exit 0
else
    echo "Error: no interface specified"
    exit 1
fi


创建完记住要修改成可执行的权限:
#chmod a+x /etc/qemu-ifup
#chmod a+x /etc/qemu-ifdown


10.启动一个带virtio网卡的虚拟机
#/usr/local/bin/qemu-system-x86_64 -name win7_x86 -hda win7_x86.qcow2 -boot c -m 1024 -spice port=5913,disable-ticketing -enable-kvm -vga qxl -net nic,model=virtio -net tap,ifname=tap0

至此,一个采用qxl显卡,virtio网卡的win7虚拟机已经可以用了。




gdb调试qemu时,提示错误:Missing separate debuginfos,解决办法:
1.将/etc/yum.repos.d/CentOS-Debuginfo.repo中[debug]节点下的enabled置为1;
2.然后执行以下命令:
#debuginfo-install celt051-0.5.1.3-0.el6.x86_64 cyrus-sasl-gssapi-2.1.23-13.el6_3.1.x86_64 cyrus-sasl-lib-2.1.23-13.el6_3.1.x86_64 cyrus-sasl-md5-2.1.23-13.el6_3.1.x86_64 cyrus-sasl-plain-2.1.23-13.el6_3.1.x86_64 db4-4.7.25-18.el6_4.x86_64 glib2-2.26.1-3.el6.x86_64 glibc-2.12-1.132.el6.x86_64 gnutls-2.8.5-10.el6_4.2.x86_64 keyutils-libs-1.4-4.el6.x86_64 krb5-libs-1.10.3-10.el6_4.6.x86_64 libaio-0.3.107-10.el6.x86_64 libcom_err-1.41.12-18.el6.x86_64 libcurl-7.19.7-37.el6_4.x86_64 libgcrypt-1.4.5-11.el6_4.x86_64 libgpg-error-1.7-4.el6.x86_64 libidn-1.18-2.el6.x86_64 libjpeg-turbo-1.2.1-1.el6.x86_64 libpng-1.2.49-1.el6_2.x86_64 libselinux-2.0.94-5.3.el6_4.1.x86_64 libssh2-1.4.2-1.el6.x86_64 libtasn1-2.3-3.el6_2.1.x86_64 libuuid-2.17.2-12.14.el6_5.x86_64 ncurses-libs-5.7-3.20090208.el6.x86_64 nspr-4.10.0-1.el6.x86_64 nss-3.15.1-15.el6.x86_64 nss-softokn-freebl-3.14.3-9.el6.x86_64 nss-util-3.15.1-3.el6.x86_64 openldap-2.4.23-32.el6_4.1.x86_64 openssl-1.0.1e-15.el6.x86_64 pixman-0.26.2-5.el6_4.x86_64 spice-server-0.12.4-6.el6_5.2.x86_64 zlib-1.2.3-29.el6.x86_64


阅读(4865) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~