分类: 服务器与存储
2008-11-20 10:59:54
让KVM运行在你的机器上
目录
1。准备工作
2。解压和准备KVM组件
3。为客户机创建一个磁盘镜像
4。安装客户操作系统
5。运行新安装的客户操作系统
准备工作:
-------------------------------------
需要下面的条件:
*KVM-release.tar.gz
*一块具有VT功能的Intel处理器或一块有SVM功能的AMD处理器
*qemu预备需求:
zlib 库和头文件
SDL 库和头文件
alsa 库和头文件(可选alsa支持:缺省为disable,可用--enable-alsa选项enable)
gnutls 库和头文件(可选VNC TLS支持:缺省为enable,可用--disable-vnc-tls选项disable)
kernel headers (在Fedora中为kernel-devel包)
在基于debain的系统中,可以用下面的命令来安装上面的预需求:
apt-get install gcc libsdl1.2-dev zlib1g-dev libasound2-dev linux-kernel-headers pkg-config libgnutls-dev
注意:When building from git, you also need gawk.
解包和配置kvm组件
你可能需要看一下kernel-optimizations()。那里有一个将SDL的快捷键ctrl-alt改为ctrl-alt-shift的“kvm-26-alt-grap.diff.gz”。它主要用于应对基于NT的VMs中会大量使用ctrl-alt-delete的问题。
如果你正在使用一个已经打过补丁的内核(e.g. a recent -mm kernel or the kvm git tree),正常配置并启动它,同时:
tar xzf kvm-release.tar.gz
cd kvm-release
./configure --prefix=/usr/local/kvm --with-patched-kernel
make
sudo make install
sudo /sbin/modprobe kvm-intel
# or: sudo /sbin/modprobe kvm-amd
如果你使用的是没有打过补丁的内核:
tar xzf kvm-release.tar.gz
cd kvm-release
./configure --prefix=/usr/local/kvm
make
sudo make install
sudo /sbin/modprobe kvm-intel
# or: sudo /sbin/modprobe kvm-amd
为客户机创建一个磁盘镜像
/usr/local/kvm/bin/qemu-img create -f qcow vdisk.img 10G
安装客户机操作系统
sudo /usr/local/kvm/bin/qemu-system-x86_64 -hda vdisk.img -cdrom /path/to/boot-media.iso -boot d -m 384
(kvm doesn't make a distinction between i386 and x86_64 so even in i386 you should use qemu-system-x86_64)
(KVM不区分i386和x86_64,所以即使你在i386架构的机器上,你也应该使用qemu-system-x86_64)
如果你安装windows系统,那么用-no-acpi选项来强制虚拟机不使用ACPI支持可以让安装和运行快很多。更详细的信息请查看Windows ACPI Workaround ()
如果你的机器的内存少于1GB,不要使用-m 384标记(它将分配384M的内存给客户机),对于512M内存的计算机,使用-m 192或更低的-m 128(缺省)较安全。
运行新安装的客户机
sudo /usr/local/kvm/bin/qemu-system-x86_64 vdisk.img -m 384
或者我们举一个稍微复杂一些的例子,假设桥接网络存在于tap0;安装提示请看Kernel-optimizations():
/usr/local/kvm/bin/qemu-system-x86_64 -hda xp-curr.img -m 512 -soundhw es1370 -no-acpi -snapshot -localtime -boot c -usb -usbdevice tablet -net nic,vlan=0,macaddr=00:00:10:52:37:48 -net tap,vlan=0,ifname=tap0,script=no
(kvm doesn't make a distinction between i386 and x86_64 so even in i386 you should use qemu-system-x86_64)
如果你不是用Debian Etch, 用KVM替换qemu-system-x86_64(substitute kvm for qemu-system-x86_64). See also the entries under the label "Ubuntu" on the HOWTO() page. qemu-system-x86_64`