一、安装qemu
主要参考http://smilejay.com/kvm_theory_practice/
Kvm在安装好Ubuntu13.10server后就有。
二、安装guest OS
参照http://blog.sina.com.cn/s/blog_62401233010156je.html
首先创建一块10G以上的虚拟磁盘镜像。用dd命令也可以创建一块空的硬盘镜像,但是很慢。
qemu-img create -f qcow2 disk.img 10G
之后安装命令为qemu-system-x86_64 -hda disk.img -m 512 -cdrom ubuntu.iso
在另一个终端里输入:
vncviewer 127.0.0.1:5900 (安装vncviewer)
即可看到安装过程。
为了在启动guest时指定virtio-net,参照
http://blog.csdn.net/simonzhao0536/article/details/9188859配置host
brctl addbr br0 # 增加一个虚拟网桥br0
brctl addif br0 eth0 # 在br0中添加一个接口eth0
dhclient br0
tunctl -t tap
启动时的/etc/qemu-ifup为
!/bin/bash
ifconfig $1 0.0.0.0 up
brctl addif br0 $1
关闭时的/etc/qemu-ifdown为
#! /bin/sh
brctl delif br0 $1
ifconfig $1 down
之后重启guest命令为: qemu-system-x86_64 -net nic, macaddr=52:54:00:12:34:22, model=virtio, –net tap –enable-kvm
在guest中可以看到eth0分配ip,对照http://smilejay.com/2012/08/qemu-kvm-networking-mode/
验证。
三、编译内核
由于Ubuntu 13.10server将virtio-net内建至内核,需要重新编译内核,内核版本为3.13.6. 参照http://blog.csdn.net/zangcf/article/details/23954335进行编译
# 安装编译环境即必要库
sudo apt-get install build-essential
sudo apt-get install libncurses5-dev
make menuconfig配置
[*] Virtualization --->
<*> PCI driver for virtiodevices
Device Drivers --->
[*] Network device support --->
<*> Virtio network driver
Device Drivers --->
[*] Block devices --->
<*> Virtio block driver
其目的在于使CONFIG_VIRTIO_BLK=m
CONFIG_VIRTIO_NET=m
CONFIG_VIRTIO_CONSOLE=m
CONFIG_VIRTIO_RING=m
CONFIG_VIRTIO_PCI=m
CONFIG_VIRTIO_BALLOON=m
可参见http://smilejay.com/2012/11/kvm-virtio-network/
# 编译内核和模块
make bzImage
make modules
sudo make modules_install
sudo make install
# 更新grub
sudo update-grub
之后重启,可以看到virtio-net以模块的形式存在
四、qemu虚拟机与外部网络共享文件-samba
sudo apt-get installsamba
主机创建共享目录
mkdir/home/share
sodu chmod 777 /home /share
修改配置文件
sudo vi /etc/samba/smb.conf
在smb.conf最后添加
[share]
path = /home /share
available = yes
browseable = yes
public = yes
writeable = yes
创建账户
sudo touch/etc/samba/smbpasswd
sudo smbpasswd-a komy
重启Samba
sudo restart smbd
在linux虚拟机中访问时有两种方式:
1. smbclient。与ftp类似,可使用get、put等命令
smbclient //192.168.1.1/share -U administrator
2. mount命令。
mount -t cifs -ousername=administrator,password=111 //192.168.1.1/share /mnt/tmp
注意//192.168.1.1/对应于主机文件夹由smb.conf中path决定
卸载采用umount /mnt/tmp即可