如何在Debian或Ubuntu上从命令行使用KVM

作者&投稿:司马炎 (若有异议请与网页底部的电邮联系)
如何在Debian或Ubuntu上从命令行使用KVM~

如果虚拟机系统带图形界面最好是用vbox,kvm和qemu配合使用的,自己搜索一下吧,大概是qemu建立磁盘映像,kvm命令行启动iso和qemu建立的磁盘映像安装,然后kvm启动虚拟机系统

你是指控制台?
CTRL+ALT+F1 或

CTRL+ALT+F2 或

CTRL+ALT+F3 或

。。。。
我的Debian 可以到 CTRL+ALT+F6

你好。
第一步:证实主机支持硬件虚拟化
作为第一步,证实主机的处理器配备硬件虚拟化扩展机制(比如英特尔VT或AMD-V),KVM需要这样的机制。下面这个命令就能证实一点。
$ egrep '(vmx|svm)' --color /proc/cpuinfo flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts mmx fxsr sse sse2 ss syscall nx rdtscp lm constant_tsc up arch_perfmon pebs bts nopl xtopology tsc_reliable nonstop_tsc aperfmperf pni pclmulqdq vmx ssse3 cx16 pcid sse4_1 sse4_2 x2apic popcnt aes xsave avx f16c rdrand hypervisor lahf_lm ida arat epb xsaveopt pln pts dtherm tpr_shadow vnmi ept vpid fsgsbase smep

如果输出结果并不含有vmx或svm标记,这意味着主机的处理器没有支持硬件虚拟化的功能。因而,你就无法在主机上使用KVM。证实了主机处理器随带vmx或svm后,接下来继续安装KVM。
第二步:安装KVM
使用apt-get,安装KVM及相关的用户空间工具。
$ sudo apt-get install qemu-kvm libvirt-bin

下一步,将你的用户ID添加到libvirt群组,那样你就能以非root普通用户的身份,管理虚拟机了。作为上面安装KVM的一部分,必须创建libvirt群组。
$ sudo adduser [youruserID] libvirt

重新装入更新后的群组成员信息,如下所示。看到要求输入密码的提示后,输入你的登录密码。
$ exec su -l $USER

这时候,你应该能够以普通用户的身份运行virsh了。为了测试一下,不妨试一试下面这个命令,它会列出可用的虚拟机(目前没有一个虚拟机)。要是你没有遇到权限错误,这意味着到目前为止,一切正常。
$ virsh --connect qemu:///system list Id Name State

第三步:配置桥接网络
想让虚拟机能够访问外部网络,一个办法就是通过在Linux主机上加以配置的Linux网桥。这种技术名为桥接网络(bridged networking)。下面介绍如何创建及配置Linux网桥br0,以便与KVM实现桥接网络。
首先,安装必要的程序包,然后从命令行创建Linux网桥。
$ sudo apt-get install bridge-utils $ sudo brctl addbr br0

下一步是,在/etc/network/interfaces中配置Linux网桥,那样一旦主机启动,该网桥就会自动配置。想使用/etc/network/interfaces,你就要禁用系统上的Network Manager(网络管理器),如果你在使用它的话。按这里给出的指示(http://xmodulo.com/2014/02/disable-network-manager-linux.html)操作,以禁用网络管理器。
禁用了网络管理器后,接下来在/etc/network/interfaces中配置Linux网桥br0,如下所示。
#auto eth0 #iface eth0 inet dhcp auto br0 iface br0 inet dhcp bridge_ports eth0 bridge_stp off bridge_fd 0 bridge_maxwait 0

这里我假设,eth0是主要的网络接口,可以访问外部网络。另外,我还假设,eth0通过DHCP获得其IP地址。请注意:/etc/network/interface中没有etho的配置。etho网桥受制于br0时,Linux网桥br0接过eth0的配置。
重启网络服务,证实Linux网桥已成功配置。如果配置成功,br0应该被赋予eth0的DHCP IP地址,eth0应该没有被赋予任何IP地址。
$ sudo /etc/init.d/networking restart $ ifconfig

第四步:从命令行创建虚拟机
就KVM而言,虚拟机的配置存储在一个域XML文件中。因而,创建虚拟机的第一步是准备好域XML文件。
下面是虚拟机的域XML文件示例。需要的话,你可以使用并定制该域XML文件。
<domain type='kvm'> <name>alice</name> <uuid>f5b8c05b-9c7a-3211-49b9-2bd635f7e2aa</uuid> <memory>1048576</memory> <currentMemory>1048576</currentMemory> <vcpu>1</vcpu> <os> <type>hvm</type> <boot dev='cdrom'/> </os> <features> <acpi/> </features> <clock offset='utc'/> <on_poweroff>destroy</on_poweroff> <on_reboot>restart</on_reboot> <on_crash>destroy</on_crash> <devices> <emulator>/usr/bin/kvm</emulator> <disk type="file" device="disk"> <driver name="qemu" type="raw"/> <source file="/home/dev/images/alice.img"/> <target dev="vda" bus="virtio"/> <address type="pci" domain="0x0000" bus="0x00" slot="0x04" function="0x0"/> </disk> <disk type="file" device="cdrom"> <driver name="qemu" type="raw"/> <source file="/home/dev/iso/ubuntu-13.10-server-amd64.iso"/> <target dev="hdc" bus="ide"/> <readonly/> <address type="drive" controller="0" bus="1" target="0" unit="0"/> </disk> <controller type="ide" index="0"> <address type="pci" domain="0x0000" bus="0x00" slot="0x01" function="0x1"/> </controller> <interface type='bridge'> <mac address='52:54:aa:00:f0:51'/> <source bridge='br0'/> </interface> <input type='mouse' bus='ps2'/> <graphics type='vnc' port='-1' autoport="yes" listen='127.0.0.1'/> </devices> </domain>

上面这个域XML文件定义了下面这个虚拟机。
1GB内存、一个虚拟处理器和一只硬驱。
磁盘映像:/home/dev/images/alice.img
从光盘驱动器启动(/home/dev/iso/ubuntu-13.10-server-amd64.iso)。
网络:通过br0实现桥接网络。
<uuid></uuid>里面的UUID字符串可以随机生成。想获得一个随机性的UUID,你可以使用uuid命令行工具。
$ sudo apt-get install uuid $ uuid

创建域XML文件的另一个方法是,转储现有虚拟机的域信息,如下所示。
$ virsh --connect qemu:///system dumpxml alice > bob.xml

第五步:从命令行启动虚拟机
在创建虚拟机之前,你需要创建虚拟机的初始磁盘映像。为此,你可以使用qemu-img命令,之前安装的qemu-kvm程序包随带该命令。
$ qemu-img create -f qcow2 /home/dev/images/alice.img 5G

使用qcow2作为一种磁盘映像格式的优点在于,磁盘映像起初并不是以最大值(5GB)的形式创建,不过随着磁盘被批量装入数据,可以慢慢变大。
现在你准备好了使用之前创建的那个域XML文件,启动虚拟机了。下面这个命令会启动虚拟机。
$ virsh --connect qemu:///system create alice.xml Domain alice created from alice.xml

证实一个新的域已成功创建。
$ virsh --connect qemu:///system list Id Name State -------------------------------------------------------------- 3 alice running

此外,还要证实该虚拟机(比如vnet0)的虚拟接口已成功添加到之前创建的Linux网桥br0。
$ sudo brctl show

第六步:远程访问虚拟机
想远程访问运行中虚拟机的控制台,你可以使用任何VNC客户程序。
首先,找到该虚拟机的VNC端口号,如下所示。
$ sudo netstat -nap | grep kvm

在该示例中,alice虚拟机的VNC端口号是5900。
然后启动VNC客户程序,并连接到在<KVM-host-IP>:5900处运行的VNC服务器。
借助virsh管理虚拟机
下面列出了virsh命令的一些常见用法。
想创建一个新的来宾域,并启动虚拟机:
$ virsh --connect qemu:///system create alice.xml
想终止虚拟机,销毁来宾域:
$ virsh --connect qemu:///system destroy alice

想关闭虚拟机(但不销毁域):
$ virsh --connect qemu:///system shutdown alice

想暂停虚拟机:
$ virsh --connect qemu:///system suspend alice

想恢复运行暂停的虚拟机:
$ virsh --connect qemu:///system resume alice

主机一启动,就想自动启动虚拟机:
$ virsh --connect qemu:///system autostart alice

想获得虚拟机的域信息:
$ virsh --connect qemu:///system dominfo alice

你还可以从virsh会话里面管理虚拟机。想创建并进入新的virsh会话,只要运行:
$ virsh --connect qemu:///system

出现virsh提示符后,你就可以使用任何virsh命令了。


到底什么是开源,它有什么特别的魅力吗?为什么全世界都在推崇开源!_百 ...
Perens已经在“Debian社会契约”(Debian Social Contract)中明确地阐明了这一立场。开源软件的定义是“Debian社会契约”的直接产物,因此开源软件是与GNU的精神一脉相承的。 与GPL相比,开源软件的定义允许更大授权自由。特别是当软件中混合了专有软件和开源软件时,开源软件的定义允许在它们的基础上生成更大的混合。 结果...

谁rk3399机顶盒 刷成功过debian
盒子不错,刷这个系统意义何在?

现在很纠结,我想再装一个系统,是装Linux或Android x86_64还是Chrome...
兼容性当然是linux更好~软件很丰富~大多都是开源和免费的软件。安全稳定,不需要什么垃圾文件清理或者磁盘清理。裸奔也不会中病毒。可以满足工作,编程,服务器的需要(娱乐性相对差一些)实用性很强,如果不是把电脑当游戏机,linux系统能够满足日常的使用和工作的需要~目前我的电脑上只有linux系统~建议lin...

秀屿区19299821761: 怎样在虚拟机的Ubuntu系统上安装软件. -
谢琛鑫贝: 我们先运行VM虚拟机,创建一个Ubutun虚拟机空白系统,(就是只创建了,还没安装系统的虚拟机)加载好下载的Ubutun 的ISO镜像包到CD/DVD(ISO镜像安装包,请百度有很多的)我们在BISO中设置从光盘(CD-ROM)引导启动,并保存设...

秀屿区19299821761: 如何在Ubuntu上安装软件的方法和技巧 -
谢琛鑫贝: AMD的CPU使用的文本方式安装版本 Ubuntu软件源中的软件非常丰富,不必像Windows软件那样四处搜寻;Ubuntu上的软件安装工具众多,使用也很简单.Ubuntu系统提供的命令行安装工具有apt...

秀屿区19299821761: 如何在Ubuntu上几步搭建Git Server -
谢琛鑫贝: 搭建Git服务器需要准备一台运行Linux的机器,强烈推荐用Ubuntu或Debian,这样,通过几条简单的apt命令就可以完成安装. 假设你已经有sudo权限的用户账号,下面,正式开始安装. 第一步,安装git: $ sudo apt-get install git

秀屿区19299821761: 如何在Debian或Ubuntu上安装完整的内核源码 -
谢琛鑫贝: 在Debian上安装完整的内核源码 在下载内核源码之前,先安装dpkg-dev,其中包含你在Debian上生成源代码时需要的开发工具套件.不仅如此,dpkg-dev中还包含在用来解压Debian源码包并自动打补丁的工具dpgk-source.$ sudo apt-get ...

秀屿区19299821761: 如何在Ubuntu下安装软件包 -
谢琛鑫贝: Linux系统中,软件通常以源代码或者预编译包的形式提供.(1)软件源代码需要编译为二进制的机器代码才能够使用,安装比较耗时,不过您可以自行调节编译选项,决定需要的功能或组件,或者针对硬件平台作一些优化.(2)预编译的软件包,...

秀屿区19299821761: 如何在Debian或Ubuntu上从命令行使用KVM -
谢琛鑫贝: 眼下有几种不同的方法可以管理在KVM虚拟机管 理程序上运行的虚拟机.比如说,virt-manager就是一种广受欢迎的基于图形用户界面(GUI)的前端工具,可用来管理虚拟机.不过,如果你想在 无外设服务器上使用KVM,那么基于GUI的解决...

秀屿区19299821761: 怎样在 debian 上装 docker -
谢琛鑫贝: 将Docker安装到CentOS或Fedora上 要将Docker安装到CentOS上,首先启用EPEL软件库,然后使用yum命令:$ sudo yum install docker-io $ sudo service docker start $ sudo chkconfig docker on 要将Docker安装到Fedora上,使用下面这些命令...

秀屿区19299821761: 64位Ubuntu怎么安装32位软件 -
谢琛鑫贝: 下面的命令可以在 Ubuntu/Debian 13.10 或更高的发行版上运行.第一步: 确认你有一个64位架构的内核 你可以打开终端然后输入:dpkg --print-architecture 你将会看到像下面这样的内容:amd64 这说明着你已经拥有了64位架构内核.第二步...

秀屿区19299821761: debian软件包怎么安装 ubuntu -
谢琛鑫贝: Debian软件包是.deb后缀的文件,在Ubuntu上可以用dpkg命令安装,不过有些软件在Ubuntu不一定能正常运行.dpkg命令的安装方式是这样的:dpkg -i deb文件的文件名

秀屿区19299821761: 怎样使用Ubuntu作web服务器系统?
谢琛鑫贝: Ubuntu 是一个完全以 Gnu/Linux 为基础的操作系统,它是一个基于 Debian的发行版.目前版本是 5.10. 如果你想快速在本地设置web环境的话,可以按照以下方法配置...

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网