热门标签 | 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

推荐阅读
  • 如何查看电脑系统版本_腾讯云服务器系统版本怎么看?Windows和Centos版本怎么选?...
    腾讯云服务器系统版本怎么看?想要知道自己的腾讯云服务器系统版本是哪个,可以登录云服务器后台管理系统查看,或者使用命令行查询,如果不会操作& ... [详细]
  • 在单位的一台4cpu的服务器上部署了esxserver,挂载了6个虚拟机,目前运行正常。在安装部署过程中,得到了cnvz.net论坛精华区 ... [详细]
  • 如何在服务器主机上实现文件共享的方法和工具
    本文介绍了在服务器主机上实现文件共享的方法和工具,包括Linux主机和Windows主机的文件传输方式,Web运维和FTP/SFTP客户端运维两种方式,以及使用WinSCP工具将文件上传至Linux云服务器的操作方法。此外,还介绍了在迁移过程中需要安装迁移Agent并输入目的端服务器所在华为云的AK/SK,以及主机迁移服务会收集的源端服务器信息。 ... [详细]
  • Linux一键安装web环境全攻略
    摘自阿里云服务器官网,此处一键安装包下载:点此下载安装须知1、此安装包可在阿里云所有Linux系统上部署安装,此安装包包含的软件及版本为& ... [详细]
  • Linux服务器密码过期策略、登录次数限制、私钥登录等配置方法
    本文介绍了在Linux服务器上进行密码过期策略、登录次数限制、私钥登录等配置的方法。通过修改配置文件中的参数,可以设置密码的有效期、最小间隔时间、最小长度,并在密码过期前进行提示。同时还介绍了如何进行公钥登录和修改默认账户用户名的操作。详细步骤和注意事项可参考本文内容。 ... [详细]
  • Centos7.6安装Gitlab教程及注意事项
    本文介绍了在Centos7.6系统下安装Gitlab的详细教程,并提供了一些注意事项。教程包括查看系统版本、安装必要的软件包、配置防火墙等步骤。同时,还强调了使用阿里云服务器时的特殊配置需求,以及建议至少4GB的可用RAM来运行GitLab。 ... [详细]
  • 本文介绍了在Hibernate配置lazy=false时无法加载数据的问题,通过采用OpenSessionInView模式和修改数据库服务器版本解决了该问题。详细描述了问题的出现和解决过程,包括运行环境和数据库的配置信息。 ... [详细]
  • Webmin远程命令执行漏洞复现及防护方法
    本文介绍了Webmin远程命令执行漏洞CVE-2019-15107的漏洞详情和复现方法,同时提供了防护方法。漏洞存在于Webmin的找回密码页面中,攻击者无需权限即可注入命令并执行任意系统命令。文章还提供了相关参考链接和搭建靶场的步骤。此外,还指出了参考链接中的数据包不准确的问题,并解释了漏洞触发的条件。最后,给出了防护方法以避免受到该漏洞的攻击。 ... [详细]
  • Ubuntu 9.04中安装谷歌Chromium浏览器及使用体验[图文]
    nsitionalENhttp:www.w3.orgTRxhtml1DTDxhtml1-transitional.dtd ... [详细]
  • CentOS 7部署KVM虚拟化环境之一架构介绍
    本文介绍了CentOS 7部署KVM虚拟化环境的架构,详细解释了虚拟化技术的概念和原理,包括全虚拟化和半虚拟化。同时介绍了虚拟机的概念和虚拟化软件的作用。 ... [详细]
  •     这里使用自己编译的hadoop-2.7.0版本部署在windows上,记得几年前,部署hadoop需要借助于cygwin,还需要开启ssh服务,最近发现,原来不需要借助cy ... [详细]
  • 大坑|左上角_pycharm连接服务器同步写代码(图文详细过程)
    篇首语:本文由编程笔记#小编为大家整理,主要介绍了pycharm连接服务器同步写代码(图文详细过程)相关的知识,希望对你有一定的参考价值。pycharm连接服务 ... [详细]
  • 现在比较流行使用静态网站生成器来搭建网站,博客产品着陆页微信转发页面等。但每次都需要对服务器进行配置,也是一个重复但繁琐的工作。使用DockerWeb,只需5分钟就能搭建一个基于D ... [详细]
  • systemd-nspawn可以创建最轻量级的容器(ns的意思就是namespace),本文的实验平台是Ubuntu16.04,x86_64机器。本文的目的是:在Ubuntu中用syst ... [详细]
  • centos php部署到nginx 404_NodeJS项目部署到阿里云ECS服务器全程详解
    本文转载自:http:www.kovli.com20170919ecs-deploy作者:Kovli本文详细介绍如何部署NodeJS项目到阿里云ECS上, ... [详细]
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社区 版权所有