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

推荐阅读
  • Vulnhub DC3 实战记录与分析
    本文记录了在 Vulnhub DC3 靶机上的渗透测试过程,包括漏洞利用、内核提权等关键步骤,并总结了实战经验和教训。 ... [详细]
  • Node.js在服务器上的多种部署策略
    本文探讨了Node.js应用程序在服务器上部署的几种有效方法,包括使用Screen、PM2以及通过宝塔面板进行简易管理。 ... [详细]
  • 调试利器SSH隧道
    在开发微信公众号或小程序的时候,由于微信平台规则的限制,部分接口需要通过线上域名才能正常访问。但我们一般都会在本地开发,因为这能快速的看到 ... [详细]
  • 本文介绍了Linux操作系统的核心组成部分——内核及其版本分类,以及市面上常见的几种Linux发行版,旨在为初学者提供一个清晰的学习路径。 ... [详细]
  • 在 Ubuntu 22.04 LTS 上部署 Jira 敏捷项目管理工具
    Jira 敏捷项目管理工具专为软件开发团队设计,旨在以高效、有序的方式管理项目、问题和任务。该工具提供了灵活且可定制的工作流程,能够根据项目需求进行调整。本文将详细介绍如何在 Ubuntu 22.04 LTS 上安装和配置 Jira。 ... [详细]
  • 在Ubuntu 18.04上使用Nginx搭建RTMP流媒体服务器
    本文详细介绍了如何在Ubuntu 18.04上使用Nginx和nginx-rtmp-module模块搭建RTMP流媒体服务器,包括环境搭建、配置文件修改和推流拉流操作。适用于需要搭建流媒体服务器的技术人员。 ... [详细]
  • Ubuntu 环境下配置 LAMP 服务器
    本文详细介绍了如何在 Ubuntu 系统上安装和配置 LAMP(Linux、Apache、MySQL 和 PHP)服务器。包括 Apache 的安装、PHP 的配置以及 MySQL 数据库的设置,确保读者能够顺利搭建完整的 Web 开发环境。 ... [详细]
  • 本文详细介绍如何在忘记MySQL服务器密码的情况下进行密码重置,包括具体的步骤和注意事项。 ... [详细]
  • 在 Ubuntu 中遇到 Samba 服务器故障时,尝试卸载并重新安装 Samba 发现配置文件未重新生成。本文介绍了解决该问题的方法。 ... [详细]
  • Parallels Desktop for Mac 是一款功能强大的虚拟化软件,能够在不重启的情况下实现在同一台电脑上无缝切换和使用 Windows 和 macOS 系统中的各种应用程序。该软件不仅提供了高效稳定的性能,还支持多种高级功能,如拖放文件、共享剪贴板等,极大地提升了用户的生产力和使用体验。 ... [详细]
  • Dense Matrix Inversion Results in Segmentation Fault: Causes and Solutions ... [详细]
  • Docker安全策略与管理
    本文探讨了Docker的安全挑战、核心安全特性及其管理策略,旨在帮助读者深入理解Docker安全机制,并提供实用的安全管理建议。 ... [详细]
  • 本文详细介绍了如何搭建一个高可用的MongoDB集群,包括环境准备、用户配置、目录创建、MongoDB安装、配置文件设置、集群组件部署等步骤。特别关注分片、读写分离及负载均衡的实现。 ... [详细]
  • 本文详细介绍了如何在ARM架构的目标设备上部署SSH服务端,包括必要的软件包下载、交叉编译过程以及最终的服务配置与测试。适合嵌入式开发人员和系统集成工程师参考。 ... [详细]
  • 本文详细介绍了在 Ubuntu 系统上安装和配置 MySQL、Tomcat 和 JDK 的步骤。通过本文,您将了解如何顺利安装这些组件,并确保它们能够正常协同工作。 ... [详细]
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社区 版权所有