热门标签 | HotTags
当前位置:  开发笔记 > 运维 > 正文

Debian系统安装KVM虚拟机过程详解

ps:新配了电脑,特别要求cpu支持虚拟化,一直没时间尝试,先收藏些资料,十一假期抽个时间,实验下喽~检测CPU支持$egrep‘(vmx|svm)’/proc/cpuinfo实施kvm虚拟机记录如下:debian的etch版本下是没有kvm虚拟机的,所以升级系统的debian5然后安装几个
ps:  新配了电脑,特别要求cpu支持虚拟化,一直没时间尝试,先收藏些资料,十一假期抽个时间,实验下喽~
检测CPU支持
$egrep ‘(vmx|svm)’ /proc/cpuinfo
实施kvm虚拟机记录如下:
debian的etch版本下是没有kvm虚拟机的,所以升级系统的debian 5
然后安装几个包就行了:
aptitude install kvm kvm-source qemu
现在开始生成kvm内核模块
执行module-assistant 在图形界面下,先用update安装需要的文件包,再选prepare选中kvm模块,然后build并安装内核模块。就这么简单,kvm就安装好了。
下面就是系统的安装了。
kvm使用的是qemu虚拟机程序。qemu有2种方式支持远程运行。
1.字符模式,就是把串口关联在当前的控制台,这样在安装的时候,安装程序的内核参数增加一个cOnsole=ttyS0
就可以让安装程序的控制台使用串口,也就是kvm运行的终端。
2.vnc模式 就是远程机器连接到本机的某个vnc端口,作为kvm的显示器,vnc模式灵活性比较大,我们采用这种模式。
先生成一个5G虚拟磁盘。
qemu-img create /home/kvm.img  -f qcow2 10G
从debian.org下载 安装盘 netinst.iso
启动安装过程

CODE:
kvm -vnc :0  -no-acpi  -hda /home/kvm.img -cdrom /mnt/os/netinst.iso -boot d
然后,通过vncview或者rdesktop连接远程的192.168.xx.xx:0,
进行正常的安装过程。
(不需要安装GNOME等桌面包和vnc4server包,在另外一台计算机上用vncviewer连接安装系统)
按照以上方法在虚拟机安装XP同样可行
安装结束从新启动kvm,去掉光驱 不启动图形界面 后台运行。
CODE:
kvm -vnc :0 -daemonize  -hda /home/kvm.img -no-acpi -redir tcp:3389::3389
-M pc -m 256 -soundhw es1370   -localtime -net nic,vlan=0 -net user,vlan=0然后就可以用ssh或vncviewer对它进行远程登录管理了。
可以通过快照来备份和还原虚拟系统
建立快照
qemu-img create -b kvm.img -f qcow2 stable.ovl
使用快照
kvm -hda stable.ovl -m 512
使用远程桌面
首先确定你的虚拟机没有运行,然后运行以下的代码
kvm-M pc -m 512 -hda /home/danny/kvm/WindowsXP.img -hdb /dev/sda5 -hdc/dev/sda7 -hdd /dev/sda8 -net nic -net user -usb -localtime -vnc127.0.0.1:0 -daemonize -redir tcp:3389::3389
解释一下,
1,-hda /home/danny/kvm/WindowsXP.img             你的系统虚拟磁盘
2,-hdb/dev/sda5 -hdc /dev/sda7 -hdd /dev/sda8这个根据你自己进行选择,kvm可以加载你系统的分区。注意,分区是独享的,也就是说如果在 kvm中加载了分区,这几个分区在宿主机(unbutu)中将无法访问。我这几个分区是Windows 下的分区,在 Ubuntu下也没有什么用。
3,-net nic -net user             使用简单网络访问,可以使得虚拟机上网,或者是访问宿主机。但是宿主机不能访问虚拟机(很奇怪的问题)。
4,-usb                使能 USB 支持,我没有成功。不知道为什么。
5,-localtime   时间同步,你不希望你的虚拟机是另外的时间吧。
6,-daemonize 后台运行,不显示图形界面,这个我后面要解释。
7,-vnc 127.0.0.1:0        打开远程桌面支持,这个可不是Windows的远程桌面哦。
8,-redir tcp:3389::3389            把虚拟机的远程桌面服务器端口映射到宿主机的端口,这个才是等同windows的远程桌面。
运行了吧,怎么突然退出而没有任何反应?因为虚拟机已经在后台运行了。你有两种方式查看虚拟机的界面。
1,使用远程桌面工具,地址 localhost , 端口 5900。
2,使用远程终端,地址 localhost 端口 3389
如果你的虚拟机还没有配置远程桌面,请现用第一种方式访问虚拟机界面,然后设定虚拟机(我的是XP)远程桌面方式,然后就可以了。
下一步是整合虚拟机到你的桌面,就和我的贴图一样,使用以下命令
rdesktop localhost:3389 -u danny -p xxxxxx -g 1024×720 -D -r sound:local
-u 后面的是用户名,-p 后面的是密码。-r sound:local 是启用声音,-D 是消除远程终端窗口的边框。怎么样,桌面出来了吧?应该还有登录的声音哦。这里也应该知道 1024×720 的道理了吧。这个值根据你自己的屏幕大小来调整。
这种方式下,可以享受 kvm 的所有效率,同时,鼠标是不是很快了。另外,几乎可以避免所有的键盘冲突。但是如果在虚拟机中看电影的?可能比较痛苦。
系统配置
1.显示配置
qemu使用SDI接口来显示客户系统,这里我们有两个选择,一个是qemu本身来显示,二是通过VNC来显示。
默认情况下是由qemu自己显示,要使用vnc的话我们需要加上-vnc :1参数,因此kvm运行命令就变成:
sudo qemu-system-x86_64 -hda winxp.img -boot d -m 384 -no-acpi -vnc :1
你也可以-vnc :2用过vnc的人就知道那个数字是什么意思,也就是一个标识,这样的话kvm运行时就没有
任何的输出了,我们直接用vncviewer :1来连接kvm里的vncserver进行显示。
进入XP系统后,显卡是默认的显卡只支持1024*768大小的显示,如果我们想调整到更大,启动时加上参数-std-vga就可以了,进入XP后可以
调整显卡到更高的屏幕参数,如果客户机是linux,还可以支持opengl,详细的设置可参考官方的说明:  http://kvm.qumranet.com/kvmwiki/HOWTO_VMGL
2. 鼠标设置:
默认的qemu在窗口模式下会发现鼠标很慢,但是如果调整成全屏模式就没有这个问题,鼠标移动很平滑,很顺畅。如果是VNC的模式会发现
总是有两个鼠标,而且移动很慢,这个时候只要我们在qemu启动的时候加上-usbdevice tablet就可以解决VNC下的问题了。
3. 声卡设置:
如果需要声音,只要在启动的时候加上参数:-soundhw all就可以,也可以用qemu -soundhw ?列出所支持的声卡硬件,用-soundhw
选用指定的硬件。
4. 网络设置
首先在kvm的sourceforge下载页面: http://sourceforge.net/project/showfile … _id=180599可以看到除了kvm还有kvm-guest-drivers-windows的驱动,下载此驱动,然后想办法放到虚拟机中(通过共享,或者直接在虚拟机下载)在kvm启动参数中增加-netnic,model=virtio参数,然后重新启动xp,进入xp后就会提示你有新设备需要安装,弹出驱动安装窗口,从下载的kvm-guest-driver中选择合适的驱动程序进行安装即可。这样安装的网卡速度上更快,几乎可以接近物理网卡的速度,具体我也没有测试前后差别有多大,不过网上应该能找到,反正使用起来感觉还不错,特别是用KVM跑服务器的话,该驱动
就更应该安装了。
qemu的网络配置有3种,更VMware所支持的一样:nat, host-only, bridge.
1)nat方式
这是最简单的一种,直接在启动参数中加上-net user即可,主机打开DHCP功能,客户机通过DHCP获取IP,该置下客户机可以上网,但不能跟主机通讯。
2)host-only:
使用tap/tun虚拟出一个网卡,需要内核支持tap/tun模块(一般都支持),还需要配置iptables转发,因为tap网卡上的ip不能和主机上ip在同一个网段。客户使用该网卡可以跟主机通讯也可以上网,但局域网内的其他机器不能直接访问客户机,需要主机通过端口转发或者其他方式来访问。具体配置可以参见:
——————-
简单的:
安装 debian 下的 kvm 软件包
sudo aptitude install kvm
建立虚拟机的磁盘映像
kvm-img create -f qcow2 winxp.img 8G
启动虚拟机的安装
sudo kvm -vnc :0 -usb -usbdevice tablet -hda winxp.img -cdrom zh-hans_windows_xp_professional_with_service_pack_3_x86_cd_vl_x14-74070.iso -boot d
在 PC 上通过 VNC Viewer 连接到虚拟机的 GUI 上,完成虚拟机的安装 (安装过程中在需要按 F8 的时候,VNC Viewer 会弹出个类似右键菜单的列表,选中 “Send F8″ 即可。另外 VNC 中会出现 2 个鼠标,全屏显示 VNC Viewer 即可解决,重新回到窗口模式鼠标也正常。)。虚拟机里的 XP 安装好后设置允许远程访问,方便通过 remote desktop connection 连接。
建立 WAN 口的 bridge,虚拟机的网卡会加入到这个 bridge 中
sudo vi /etc/network/interfaces
auto lo br0
iface lo inet loopback
iface eth0 inet manual
iface br0 inet static
        address 123.45.67.89
        netmask 255.255.255.255
        gateway 123.45.67.1
        bridge_ports eth0
sudo /etc/init.d/networking restart
如果想让虚拟机网卡加入 LAN 的 bridge 中,参上上面建立 LAN 的 bridge,修改文件 /etc/kvm/kvm-ifup
sudo vi /etc/kvm/kvm-ifup
#!/bin/sh
#switch=$(ip route ls | awk '/^default / { for(i=0;i switch=br0
/sbin/ifconfig $1 0.0.0.0 up
/usr/sbin/brctl addif ${switch} $1
exit 0
最后启动安装好的虚拟机
sudo kvm -daemonize -localtime -M pc -m 256 -usb -hda /srv/kvm/winxp.img -net nic -net tap
在 PC 上通过远程桌面连接即可登录到虚拟机中的 XP。
http://forum.ubuntu.org.cn/viewtopic.php?f=65&t=154792&sid=99964d3f0289b0b92113b5ae3af95cf2

推荐阅读
author-avatar
王碧婷568473
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有