Kernel-based Virtual Machine (KVM) 基本操作备忘
Kernel-based Virtual Machine (KVM) 基本操作备忘
KVM Front Page
Ubuntu KVM Documentation
操作环境: Ubuntu 8.10 @ Intel Core 2 Duo T7250
安装 kvm
sudo apt-get install kvm
lsmod | grep kvm
若未载入 kvm、kvm_intel (或 kvm_amd) 模块, 则手动载入
sudo modprobe kvm
sudo modprobe kvm_intel (或 kvm_amd, 视 CPU 选用)
基本操作
建立虚拟硬盘
qemu-img create -f qcow2 virtual_disk.qcow2 10G
挂载本机光盘与刚刚建立的虚拟硬盘, 以光驱优先开机
kvm -hda virtual_disk.qcow2 -cdrom /dev/cdrom /
-boot d -m 512 -net nic -net user -soundhw all
NAT 模式
kvm -cdrom livecd.iso -m 512 -net nic -net user
Bridge (桥接) 模式
sudo ifconfig eth0 0.0.0.0 up
sudo brctl addbr br0
sudo brctl addif br0 eth0
sudo dhclient br0
sudo kvm -cdrom livecd.iso -m 512 -net nic -net tap,ifname=tap0
使用 USB 装置
lsusb (查看本机 usb 装置列表)
kvm -usb -usbdevice host:064e:a111
或于 QEMU 窗口中按 Ctrl + Alt + 2 进入 console 模式进行以下操作:
info usb
info usbhost
usb_add host:064e:a111
Ctrl + Alt + 1 回到虚拟系统画面
虚拟机运作中更换虚拟机光驱加载内容 (光盘换片)
Ctrl + Alt + 2 进入 Console 模式
info block (查询 block device, 确认光驱名称)
eject -f ide1-cd0
change ide1-cd0 /path/to/another.iso
Ctrl + Alt + 1 回到虚拟系统画面
ps. 虚拟机里的 WinXP 最好先在档案总管将光驱 "退出", 再进入 Console 模式 change ide1-cd0
虚拟机 (Windows XP) 挂载本机 Samba 分享文件夹
sudo apt-get install samba
sudo vi /etc/samba/smb.conf
scurity = share
[qemu]
path = /path/to/share
read only = no
public = yes
kvm -hda winxp.qcow2 -m 512 -net nic -net user
(WinXP) net use z: //10.0.2.2/qemu
ps. 启动 smbd 同时网络上其他人亦可连入本机的 samba 分享
将 VMware (VMDK)、VirtualBox (VDI) 虚拟硬盘转成 Qemu COW2 (qcow2) 格式
#Converting VMDK to Qemu image
qemu-img convert -f vmdk myimage.vmdk -O qcow2 myimage.qcow2
#Converting VDI to Qemu image
wget http://dhiru.kholia.googlepages.com/vditool.tar (for AMD64 systems)
sudo tar xf vditool.tar -C /usr/lib/virtualbox
LD_LIBRARY_PATH=/usr/lib/virtualbox /usr/lib/virtualbox/vditool COPYDD ~/.VirtualBox/VDI/myimage.vdi myimage.raw
qemu-img convert -f raw myimage.raw -O qcow2 myimage.qcow2
Ref:
http://cha.homeip.net/blog/archives/2008/08/_vmware_server.html
http://yonkeltron.com/2008/02/21/virtualbox-to-qemu/
http://eligere.wordpress.com/2008/08/31/vdi-to-raw-raw-to-vdi-conversion/
挂载 RAW image file
qemu-img convert -f qcow2 myimage.qcow2 -O raw myimage.raw
mount -o loop,offset=32256 myimage.raw /mnt
我所遇到的问题与解决方法
Q: open /dev/kvm: Permission denied
A1: sudo usermod -a -G kvm your_account
A2: sudo chmod 666 /dev/kvm
Q: 虚拟机无法取得 IP (NAT 模式, -net nic -net user)
A: modprobe -r kvm_intel && modprobe kvm_intel
Q: VirtualBox can't operate in VMX root mode. Please disable the KVM kernel extension, recompile your kernel and reboot. (NS_ERROR_FAILURE 0x80004005)
A: sudo rmmod kvm_intel
Q: 虚拟机里的鼠标光标突然变得很慢
A: kvm -usb -usbdevice tablet -vnc :1 && vncviewer localhost:1
Q: 虚拟 XP 的 .qcow2 档案越来越大,但虚拟 XP 所看到的实际使用空间却没那么多,如何减少 .qcow2 档案占用空间?
A: 虚拟 XP 先使用 defraggler 重组磁盘, 再使用 sdelete 把 free space 填入 zero (执行 sdelete -c c:), 关机后于 Linux 系统执行: qemu-img convert -O winxp.qcow2 winxp_new.qcow2 && mv winxp.qcow2 winxp_old.qcow2 && mv winxp_new.qcow2 winxp.qcow2
Q: 如何调整 (扩充) 虚拟硬盘的容量?
A: 参考: The QEMU forum - HowTo: Resize (expand) QEMU qcow/qcow2/raw disk images
转载自
http://cha.homeip.net/blog/archives/2009/02/kernelbased_vir.html#more