位置: 编程技术 - 正文

在Ubuntu的命令行终端里管理KVM虚拟机的教程(ubuntu的命令行快捷键)

编辑:rootadmin

推荐整理分享在Ubuntu的命令行终端里管理KVM虚拟机的教程(ubuntu的命令行快捷键),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:ubuntu怎样调出命令行,ubuntu如何用命令运行程序,ubuntu怎样调出命令行,ubuntu的命令行在哪里,ubuntu如何用命令运行程序,ubuntu的命令行界面输入无效,ubuntu的命令行快捷键,ubuntu的命令行怎么开,内容如对您有帮助,希望把文章链接给更多的朋友!

有很多不同的方式去管理运行在 KVM 管理程序上的虚拟机。例如,virt-manager 就是一个流行的基于图形界面的前端虚拟机管理工具。然而,如果你想要在没有图形窗口的服务器环境下使用 KVM ,那么基于图形界面的解决方案显然是行不通的。事实上,你可以单纯使用包装了 kvm 命令行脚本的命令行来管理 KVM 虚拟机。作为替代方案,你可以使用 virsh 这个容易使用的命令行程序来管理客户虚拟机。在 virsh 中,它通过和 libvirtd 服务通信来达到控制虚拟机的目的,而 libvirtd 可以控制多个不同的虚拟机管理器,包括 KVM,Xen,QEMU,LXC 和 OpenVZ。当你想要对虚拟机的前期准备和后期管理实现自动化操作时,像 virsh 这样的命令行管理工具是非常有用的。同样,virsh 支持多个管理器也就意味着你可以通过相同的 virsh 接口去管理不同的虚拟机管理器。

在这篇文章中,我会示范怎样在 ubuntu 和 debian 上通过使用 virsh 命令行去运行 KVM。

第一步:确认你的硬件平台支持虚拟化

第一步,首先要确认你的 CPU 支持硬件虚拟化扩展(e.g.,Intel VT 或者 AMD-V),这是 KVM 对硬件的要求。下面的命令可以检查硬件是否支持虚拟化。复制代码代码如下:$ egrep '(vmx|svm)' --color /proc/cpuinfo

如果在输出中不包含 vmx 或者 svm 标识,那么就意味着你的 cpu 不支持硬件虚拟化。因此你不能在你的机器上使用 KVM 。确认了 cpu 支持 vmx 或者 svm 之后,接下来开始安装 KVM。

对于 KVM 来说,它不要求运行在拥有 位内核系统的主机上,但是通常我们会推荐在 位系统的主机上面运行 KVM。

第二步:安装KVM

使用 apt-get 安装 KVM 和相关的用户空间工具。复制代码代码如下:$ sudo apt-get install qemu-kvm libvirt-bin安装期间,libvirtd 用户组(在 debian 上是 libvirtd-qemu 用户组)将会被创建,并且你的用户 id 将会被自动添加到该组中。这样做的目的是让你可以以一个普通用户而不是 root 用户的身份去管理虚拟机。你可以使用 id 命令来确认这一点,下面将会告诉你怎么去显示你的组 id:复制代码代码如下:$ id <your-userID>

如果因为某些原因,libvirt(在 debian 中是 libvirt-qemu)没有在你的组 id 中被找到,你也可以手动将你自己添加到对应的组中,如下所示:

在 ubuntu 上:复制代码代码如下:$ sudo adduser [youruserID] libvirtd在 debian 上:复制代码代码如下:$ sudo adduser [youruserID] libvirt-qemu按照如下命令重新载入更新后的组成员关系。如果要求输入密码,那么输入你的登陆密码即可。复制代码代码如下:$ exec su -l $USER这时,你应该可以以普通用户的身份去执行 virsh 了。做一个如下所示的测试,这个命令将会以列表的形式列出可用的虚拟机(当前的列表是空的)。如果你没有遇到权限问题,那意味着到目前为止一切都是正常的。复制代码代码如下:$ virsh list Id Name State第三步:配置桥接网络

为了使 KVM 虚拟机能够访问外部网络,一种方法是通过在 KVM 宿主机上创建 Linux 桥来实现。创建之后的桥能够将虚拟机的虚拟网卡和宿主机的物理网卡连接起来,因此,虚拟机能够发送和接收由物理网卡传输的数据包。这种方式叫做网络桥接。

下面将告诉你如何创建并且配置网桥,我们创建一个网桥称它为 br0。

首先,安装一个必需的包,然后用命令行创建一个网桥。复制代码代码如下:$ sudo apt-get install bridge-utils$ sudo brctl addbr br0下一步就是配置已经创建好的网桥,即修改位于 /etc/network/interfaces 的配置文件。我们需要将该桥接网卡设置成开机启动。为了修改该配置文件,你需要关闭你的操作系统上的网络管理器(如果你在使用它的话)。跟随操作指南的说明去关闭网络管理器。

关闭网络管理器之后,接下来就是通过修改配置文件来配置网桥了。复制代码代码如下:#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/interfaces 中还没有对 eth0 进行任何配置。桥接网卡 br0 引用了 eth0 的配置,而 eth0 也会受到 br0 的制约。

重启网络服务,并确认网桥已经被成功的配置好。如果成功的话,br0 的 ip 地址将会是 eth0 自动分配的 ip 地址,而且 eth0 不会被分配任何 ip 地址。复制代码代码如下:$ sudo /etc/init.d/networking restart$ ifconfig如果因为某些原因,eth0 仍然保留了之前分配给了 br0 的 ip 地址,那么你可能必须手动删除 eth0 的 ip 地址。

第四步:用命令行创建一个虚拟机

对于虚拟机来说,它的配置信息被存储在它对应的xml文件中。因此,创建一个虚拟机的第一步就是准备一个与虚拟机对应的 xml 文件。

下面是一个示例 xml 文件,你可以根据需要手动修改它。

XML/HTML Code复制内容到剪贴板 <domain type='kvm'> <name>alice</name> <uuid>f5b8cb-9c7a--b9-2bdf7e2aa</uuid> <memory></memory> <currentMemory></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="0x" bus="0x" slot="0x" function="0x0"/> </disk> <disk type="file" device="cdrom"> <driver name="qemu" type="raw"/> <source file="/home/dev/iso/CentOS-6.5-x_-minimal.iso"/> <target dev="hdc" bus="ide"/> <readonly/> <address type="drive" controller="0" bus="1" target="0" unit="0"/> </disk> <interface type='bridge'> <source bridge='br0'/> <mac address="::A3:B0::"/> </interface> <controller type="ide" index="0"> <address type="pci" domain="0x" bus="0x" slot="0x" function="0x1"/> </controller> <input type='mouse' bus='ps2'/> <graphics type='vnc' port='-1' autoport="yes" listen='0.0.0.0'/> <console type='pty'> <target port='0'/> </console> </devices> </domain>

上面的主机xml配置文件定义了如下的虚拟机内容。

1GB内存,一个虚拟cpu和一个硬件驱动

在Ubuntu的命令行终端里管理KVM虚拟机的教程(ubuntu的命令行快捷键)

磁盘镜像:/home/dev/images/alice.img

从 CD-ROM 引导(/home/dev/iso/CentOS-6.5-x_-minomal.iso)

网络:一个桥接到 br0 的虚拟网卡

通过 VNC 远程访问

<uuid></uuid> 中的 UUID 字符串可以随机生成。为了得到一个随机的 uuid 字符串,你可能需要使用 uuid 命令行工具。复制代码代码如下:$ sudo apt-get install uuid$ uuid生成一个主机 xml 配置文件的方式就是通过一个已经存在的虚拟机来导出它的 xml 配置文件。如下所示。复制代码代码如下:$ virsh dumpxml alice > bob.xml

第五步:使用命令行启动虚拟机

在启动虚拟机之前,我们需要创建它的初始磁盘镜像。为此,你需要使用 qemu-img 命令来生成一个 qemu-kvm 镜像。下面的命令将会创建 GB 大小的空磁盘,并且它是 qcow2 格式的。复制代码代码如下:$ qemu-img create -f qcow2 /home/dev/images/alice.img G使用 qcow2 格式的磁盘镜像的好处就是它在创建之初并不会给它分配全部大小磁盘容量(这里是 GB),而是随着虚拟机中文件的增加而逐渐增大。因此,它对空间的使用更加有效。

现在,你可以通过使用之前创建的 xml 配置文件启动你的虚拟机了。下面的命令将会创建一个虚拟机,然后自动启动它。复制代码代码如下:$ virsh create alice.xmlDomain alice created from alice.xml注意: 如果你对一个已经存在的虚拟机执行了了上面的命令,那么这个操作将会在没有任何警告的情况下抹去那个已经存在的虚拟机的全部信息。如果你已经创建了一个虚拟机,你可能会使用下面的命令来启动虚拟机。复制代码代码如下:$ virsh start alice.xml使用如下命令确认一个新的虚拟机已经被创建并成功的被启动。复制代码代码如下:$ virsh list Id Name State---------------------------------------------------- 3 alice running同样,使用如下命令确认你的虚拟机的虚拟网卡已经被成功的添加到了你先前创建的 br0 网桥中。复制代码代码如下:$ sudo brctl show

远程连接虚拟机

为了远程访问一个正在运行的虚拟机的控制台,你可以使用VNC客户端。

首先,你需要使用如下命令找出用于虚拟机的VNC端口号。复制代码代码如下:$ sudo netstat -nap | egrep '(kvm|qemu)'

在这个例子中,用于 alice 虚拟机的 VNC 端口号是 。 然后启动一个VNC客户端,连接到一个端口号为的VNC服务器。在我们的例子中,虚拟机支持由CentOS光盘文件启动。

使用 virsh 管理虚拟机

下面列出了 virsh 命令的常规用法:

创建客户机并且启动虚拟机:复制代码代码如下:$ virsh create alice.xml停止虚拟机并且删除客户机:复制代码代码如下:$ virsh destroy alice关闭虚拟机(不用删除它):复制代码代码如下:$ virsh shutdown alice暂停虚拟机:复制代码代码如下:$ virsh suspend alice恢复虚拟机:复制代码代码如下:$ virsh resume alice访问正在运行的虚拟机的控制台:复制代码代码如下:$ virsh console alice设置虚拟机开机启动:复制代码代码如下:$ virsh autostart alice查看虚拟机的详细信息:复制代码代码如下:$ virsh dominfo alice编辑虚拟机的配置文件:复制代码代码如下:$ virsh edit alice上面的这个命令将会使用一个默认的编辑器来调用主机配置文件。该配置文件中的任何改变都将自动被libvirt验证其正确性。

你也可以在一个virsh会话中管理虚拟机。下面的命令会创建并进入到一个virsh会话中:复制代码代码如下:$ virsh在 virsh 提示中,你可以使用任何 virsh 命令。

问题处理

我在创建虚拟机的时候遇到了一个错误:

error: internal error: no supported architecture for os type 'hvm'

如果你的硬件不支持虚拟化的话你可能就会遇到这个错误。(例如,Intel VT或者AMD-V),这是运行KVM所必需的。如果你遇到了这个错误,而你的cpu支持虚拟化,那么这里可以给你一些可用的解决方案:

首先,检查你的内核模块是否丢失。复制代码代码如下:$ lsmod | grep kvm如果内核模块没有加载,你必须按照如下方式加载它。复制代码代码如下:$ sudo modprobe kvm_intel (for Intel processor)$ sudo modprobe kvm_amd (for AMD processor)第二个解决方案就是添加 --connect 参数到 virsh 命令中,如下所示。当你正在你的硬件平台上使用超过一个虚拟机管理器的时候就需要添加这个参数(例如,VirtualBox,VMware)。

$ virsh --connect create alice.xml当我试着访问我的虚拟机的登陆控制台的时候遇到了错误:复制代码代码如下: $ virsh console alice error: internal error: cannot find character device <null>这个错误发生的原因是你没有在你的虚拟机配置文件中定义控制台设备。在 xml 文件中加上下面的内部设备部分即可。

XML/HTML Code复制内容到剪贴板 <console type='pty'> <target port='0'/> </console>

Ubuntu系统图形化界面操作时的常用快捷键整理 键盘类1.先同时按住Alt+Ctrl键,再按键盘上的左右光标键可以切换工作区2.web时按/键等于查找功能,桌面或者目录时按/等于打开..3.当前目录下快速文件(夹

Linux服务器上使用Gmail的免费SMTP服务发送监控通知 假定你想配置一个Linux应用,用于从你的服务器或桌面客户端发送邮件信息。邮件信息可能是邮件简报、状态更新(如Cachet)、监控警报(如Monit)、磁

Ubuntu系统中图片编辑程序ImageMagick的安装教程 1.下载

标签: ubuntu的命令行快捷键

本文链接地址:https://www.jiuchutong.com/biancheng/352818.html 转载请保留说明!

上一篇:Ubuntu系统中软件安装的命令小结(ubuntu20.04常用软件)

下一篇:Ubuntu系统图形化界面操作时的常用快捷键整理(ubuntu开启图形化界面)

  • 施工单位的产值报告模板
  • 小规模纳税人核算方式选什么
  • 外商投资企业采购国产设备退税后续监管办法
  • 跨年主营业务成本直接冲回可以吗
  • 保证金转租金的会计处理
  • 公司借款给个人利息怎么做账
  • 什么叫应纳税额什么与什么的比率叫做税率
  • 当月未开发票增值税怎么报
  • 费用退回现金如何入账
  • 投标保证金支付时间
  • 奖励给优质供应商会计处理怎么做?
  • 个人在电商平台购买跨境商品需要缴纳什么税
  • 分拆业务所涉及客户
  • 机票退票费能抵扣旅客进项税吗
  • 劳务报酬属于公司员工么
  • 应交税费包括了增值税吗
  • 实物投资账务处理办法
  • 收到增值税发票怎么记账
  • window10主题的颜色浅了
  • 临时设施是租入还是租入
  • 公司旅游费用怎么入账
  • 非正常原因造成的损失计入什么科目
  • 财政部土地出让收支管理办法
  • 银行卡账户年费是什么意思 为什么扣我银行卡的钱
  • proxydriod
  • 在产品定额工时怎么算
  • php curl cookie
  • 劳动仲裁的调解款要扣税吗
  • smart 变量表
  • 使用uni-app开发网站
  • vue router 路由参数
  • python爬虫入门教程
  • 缴税的会计处理
  • 待处理财产损溢借方是增还是减
  • 自由会计服务类工作者
  • 公司收到保险公司退保费怎么账务处理
  • 公司增资该怎么做账
  • 减免申报明细表怎么填
  • 药店主营业务成本怎么算出来的
  • 公司可以打款给中间人
  • 企业接受捐赠增值税处理
  • 以前年度多缴纳房产税,可以递延次年度使用么
  • 小规模纳税人补开发票如何申报
  • 收到以前年度银行手续费发票分录
  • 残疾人工资加计扣除包括社保吗
  • 运输公司发票抵扣
  • 产品检验费怎样计算
  • 跨期费用账务处理
  • 用信用卡消费扣谁的手续费
  • 产品成本的具体内容
  • 年底结账会计要怎么做账
  • 以前年度收入少记了怎么做分录
  • 投资性房地产公允价值变动借贷方向
  • 减免税款借方余额
  • 班车租赁发票税率是多少
  • 什么是长期股权投资
  • ubuntu功能
  • win10无法新建文件夹怎么办?(已解决)
  • windows2000修改ip
  • windows允许多用户登录
  • 做好一个服务器工作
  • 详细介绍的英文
  • windows中输入法的安装步骤
  • linux安装和配置
  • centos7视频教程
  • 安装完xp系统直接黑屏怎么办
  • centos 软件源
  • win10安装字体的操作步骤
  • win7能用多屏协同吗
  • 239mbps是多少兆网速
  • perl脚本函数
  • cocos2d::Vector
  • node mongoose
  • linux安装node安装包
  • github上有什么
  • [置顶]公主大人接下来是拷问时间31
  • 按季度 税费申报日期
  • 云南税务局发票查询
  • 世界第二十八高峰
  • 股息税怎么计算
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设