kvm环境创建虚拟机

2023-11-19

使用libvirt的xml配置文件创建虚拟机

  kvm支持的镜像很多,常用的是原始镜像(*.img),还有支持动态大小扩张的qocw2格式(首选)。

更优的选择是系统盘如C盘用img格式,数据盘用qcow2格式以减少服务器磁盘闲置空间。

本文仅记录如何用ubuntu.iso制作系统镜像ubuntu.qcow2并创建启动虚拟机

一、制作虚拟机镜像

1、创建qcow2镜像,但是其实际占有磁盘大小仅为193K左右,而虚拟机内部显示磁盘大小为10G,也就是磁盘空间使用时才分配,即所谓动态扩张。

      qemu-img create -f qcow2 ubuntu.qcow2 10G     

2、下载并复制ubuntu的iso镜像到指定目录,本文将所有镜像及配置文件放到 /home/createvm 目录下

     2.1  创建配置文件setup.xml,内容如下

<domain type='kvm'>
    <name>test_ubuntu</name>                     //虚拟机名称
    <memory>1048576</memory>                  //最大内存
    <currentMemory>1048576</currentMemory>    //可用内存
    <vcpu>1</vcpu>                                                      //虚拟cpu个数
    <os>
      <type arch='x86_64' machine='pc'>hvm</type>
      <boot dev='cdrom'/>                                           //光盘启动
   </os>
   <features>
     <acpi/>
     <apic/>
     <pae/>
   </features>
   <clock offset='localtime'/>
   <on_poweroff>destroy</on_poweroff>
   <on_reboot>restart</on_reboot>  
   <on_crash>destroy</on_crash>
   <devices>
     <emulator>/usr/libexec/qemu-kvm</emulator>
     <disk type='file' device='disk'>
      <driver name='qemu' type='qcow2'/>            //此处关键,要求libvirt版本至少应该在0.9以上才能支持,libvirt版本升级http://blog.csdn.net/gg296231363/article/details/6891460
       <source file='/home/createvm/ubuntu.qcow2'/>         //目的镜像路径
       <target dev='hda' bus='ide'/>
     </disk>
     <disk type='file' device='cdrom'>
       <source file='/home/createvm/ubuntu.iso'/>              //光盘镜像路径
       <target dev='hdb' bus='ide'/>
     </disk>
    <interface type='bridge'>                                               //虚拟机网络连接方式
      <source bridge='br0'/>
      <mac address="00:16:3e:5d:aa:a8"/>    //为虚拟机分配mac地址,务必唯一,否则dhcp获得同样ip,引起冲突
    </interface>
    <input type='mouse' bus='ps2'/>
     <graphics type='vnc' port='-1' autoport='yes' keymap='en-us'/>//vnc方式登录,端口号自动分配,自动加1
   </devices>
 </domain>

    2.2 virsh define setup.xml       //创建虚拟机 查看当前系统所有的虚拟机信息:virsh list --all

    2.3 virsh start  test_ubuntu    //启动虚拟机

    2.4 virsh vncdisplay test_ubuntu   //查看虚拟机的vnc端口

    2.5 使用vnc登录虚拟机,vnc安装配置http://blog.csdn.net/gg296231363/article/details/6899655

           登录后能看到操作系统安装的初始界面,开始安装系统,安装完成即表示镜像制作完成(ubuntu.qcow2)。

二、使用制作好的虚拟机镜像启动虚拟机

1 创建文件start.xml,内容如下:

<domain type='kvm'>
<name>test_ubuntu</name>
<memory>1048576</memory>
<currentMemory>1048576</currentMemory>
<vcpu>1</vcpu>
<os>
<type arch='x86_64' machine='pc'>hvm</type>
<boot dev='hd'/>     //即harddisk,从磁盘启动 
</os>
<features>
<acpi/>
<apic/>
<pae/>
</features>
<clock offset='localtime'/>
<on_poweroff>destroy</on_poweroff>
<on_reboot>restart</on_reboot>
<on_crash>destroy</on_crash>
<devices>
<emulator>/usr/libexec/qemu-kvm</emulator>
<disk type='file' device='disk'>
<driver name='qemu' type='qcow2'/>
<source file='/home/createvm/ubuntu.qcow2'/> //目的镜像路径
<target dev='hda' bus='ide'/>
</disk>
<disk type='file' device='cdrom'>
<source file='/home/createvm/ubuntu.iso'/> //光盘镜像路径
<target dev='hdb' bus='ide'/>
</disk>
<interface type='bridge'>
<source bridge='br0'/>
<mac address="00:16:3e:5d:aa:a8"/>
</interface>
<input type='mouse' bus='ps2'/>
<graphics type='vnc' port='-1' autoport='yes' keymap='en-us'/>

</devices>
</domain>

2 同一台服务器上当然不能有两台同名的虚拟机,第一步创建的虚拟机为制作镜像使用,可以功成身退。

virsh shutdown test_ubuntu //关闭虚拟机,如果关闭不了,可以查看http://blog.csdn.net/gg296231363/article/details/6891380

virsh destory test_ubuntu  //强制关闭虚拟机

virsh undefine test_ubuntu //删除虚拟机

3 使用制作好的镜像和start.xml配置文件来创建并启动虚拟机。

virsh define start.xml

virsh start test_ubuntu


本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

kvm环境创建虚拟机 的相关文章

  • 将 tar.gz 转换为 zip

    我的 Ubuntu 网络服务器上有大量 gzip 压缩档案 我需要将它们转换为 zip 我认为这可以通过脚本来完成 但是我应该使用什么语言 以及如何解压缩和重新压缩文件 我会用一个bash 1 单行 for f in tar gz do r
  • tomcat.conf 位于哪里?

    我找不到我的tomcat conf 我看过 etc tomcat6 但它不在那里 也不在 usr share tomcat6 我在哪里可以找到tomcat conf在 Linux Ubuntu 中 Try sudo updatedb loc
  • 使用Javascript实时读取txt文件

    我想知道是否有某种方法可以从Javascript实时读取 txt文件 我有一个每隔几秒更新一次的日志文件 我想在日志文件更新时解析该日志文件中的一些数据并将其显示在 html 中 我可以现场做这个吗 非常感谢大家 假设该文件位于可公开访问的
  • vb.net 获取目录中的文件名?

    我有以下代码 Dim text As String IO File ReadAllText C Example xtp 该代码特定于单个文件 但是我想file readalltext对于特定目录中的每个文件 我怎样才能实现这个目标 您将需要
  • 如何使用 python 或 CL 将文件复制到剪贴板,然后使用 STRG+V 粘贴它?

    我正在尝试将文件复制 使用 python 或 CL 命令 然后可以使用 python 调用 到剪贴板 以便稍后使用 STRG V 粘贴它 据我了解 文件不会 移动 到剪贴板中 而是剪贴板保存路径和告诉操作系统 这是一个文件 的参数 标志 我
  • 如何在文本文件中逐行读取和替换字符串?

    我有一个文本文件 内容如下 INSERT INTO shops VALUES 3 1000000 0 INSERT INTO shops VALUES 3 1000010 0 INSERT INTO shops VALUES 3 10000
  • Laravel 5.3 存储和读取文件目录

    目前正在尝试处理文件 但很难弄清楚将它们放在哪里以及如何在列表中读回它们 我尝试过将一些测试文件放入 files array dir opendir asset files open the cwd also do an err check
  • 在 Rails 中使用回形针进行 ajax 上传的简单方法?

    我想知道是否有一个简单的方法 例如一个插件 用回形针在 Rails 中进行 ajax 上传 还是我必须从头开始构建它 Cheers 编辑 另外 我正在寻找非闪存解决方案 你可以试试remotipart http os alfajango c
  • 节点命令不起作用[重复]

    这个问题在这里已经有答案了 我正在使用 ubuntu 14 04 当我在终端上使用 node hello js 命令时 没有任何反应 我使用 sudo apt get 命令安装了软件包 我不知道出了什么问题 没有错误消息或任何东西 我搜索了
  • 在 Ubuntu 12.04 中打开 eclipse juno 并出现错误“No more handles ...”

    从今天开始 每次我打开 Eclipse 时 都会弹出一个标题为 出现问题 的消息框 内容如下 不再处理 未知的 Mozilla 路径 未设置 MOZILLA FIVE HOME 可能的参数 0 1 2 3 不再有句柄 未知的 Mozilla
  • 如何在文本文件中找到最长的 N 行并将其打印到标准输出?

    第一行包含数字 N 的值 后跟多行 我可以按照n 2算法的顺序解决它 有人可以建议一个更好的吗 您可以使用最小堆并在 O n log N 中完成 heap new Min Heap N foreach line in text if len
  • 使用 java.nio.Files 更改 Linux 下的文件所有者组

    我有一台 Linux 服务器 并且正在 Java 中为服务器上的多个网站运行图像调整大小作业 网站文件由不同的操作系统用户 组拥有 新创建的缩略图 预览由运行调整大小作业的用户拥有 现在我正在谷歌搜索如何在调整大小程序中更改新创建的预览 缩
  • 从文件中读取第n行的快速方法

    介绍 我有一个名为的 C 进程MyProcess我称之为nbLines时间 地点nbLines是一个名为的大文件的行数InputDataFile txt在其中可以找到输入数据 例如调用 MyProcess InputDataFile txt
  • tar 命令在提取时更改所有者:组

    使用此命令提取文件时tar zxf bluez arm package tgz文件和目录的所有者 1000 组 脉冲 是 更改如下例 Example drwxrwxr x 4 1000 pulse 1024 Jul 21 00 32 dbu
  • 如何重新安装最新的cmake版本?

    我想在Linux环境下安装cmake的最新版本 我安装了 cmake 3 5 版 但某些应用程序不支持 我尝试通过卸载当前版本来升级它 但是当我使用 sudo apt get install cmake 重新安装时 我重新安装了相同的版本
  • VS Code 不会构建具有多个 .cpp 源文件的 C++ 程序

    请注意 我在 Ubuntu 17 10 上使用 VS Code 并使用 GCC 编译器 我在构建一个使用附加 cpp 文件的简单程序时遇到问题 我可能在这里遗漏了一些明显的东西 因为我对编程相当陌生 但我会解释到目前为止我所做的事情 这阻止
  • 滚动文件实现

    我一直很好奇滚动文件是如何在日志中实现的 如何开始用任何语言创建一个文件写入类 以确保不超过文件大小 我能想到的唯一可能的解决方案是 write method size file size size of string to write i
  • urllib.request 模块无法安装在我的系统中

    尝试使用以下命令安装 urllib request 模块 sudo pip install urllib request 但它回来了 Downloading unpacking urllib request Could not find a
  • 使用 ImageMagick 从文本生成图像?

    我正在尝试使用 ImageMagick 创建 3840 x 2160 的缩略图 我需要图像具有黑色背景和白色文本 文本应垂直和水平居中 我希望能够设置字体大小 但如果文本超出图像 则会自动减小字体大小 使其适合左侧和右侧的一定量的填充 我将
  • 如何在 Ubuntu 10.04 上使用 PostgreSQL 8.4.4 生成 uuid?

    我正在 Ubuntu 10 04 上运行 PostgreSQL 8 4 4 我正在尝试生成 uuid 但找不到方法 我确实有 uuid ossp sql usr share postgresql 8 4 contrib uuid ossp

随机推荐

  • 在 Linux 中创建分区 - 分步指南

    在本教程中 我们将介绍在 Linux 中创建分区的步骤 这可以帮助您为特定用途分配不同的内存区域 创建分区还可以帮助您在计算机上安装多个操作系统 并最大限度地减少磁盘损坏时的损坏 如何在Linux中创建分区 在本教程中 我们将使用 fdis
  • Python实战项目23个实战小项目小程序简单

    Python项目23个小项目简单 项目类别 部分项目运行截图 含代码注释 项目类别 51商城 AI智能联系人管理 双击即启动 BBS问答社区 DIY字符画 双击即启动 Excel数据分析师 双击即启动 RCQ读者书库 双击即启动 Word助
  • LaTeX+Overleaf 论文速通教程

    一 文本 排版 二 章节和段落 三 数学公式 四 插入图片 五 插入表格 六 参考文献与交叉引用 不使用BibTeX 使用BibTeX 推荐 七 交叉引用label和ref Overleaf开发界面 latex命令 命令 可选参数 必选参数
  • 【ts】使用ts的vue项目必须安装的插件和要进行的配置(一般使用搭建vue的时候脚手架会帮忙弄好,但是还是要知道项目里这些代码都是什么)

    使用ts的项目 是需要安装ts loader来处理 ts文件的 例如babel loader是用于处理js文件 而ts就是ts loader 先确保项目是否安装了webpack和typescript npm install webpack
  • 前端面试话术集锦第 14 篇:高频考点(React常考基础知识点)

    这是记录前端面试的话术集锦第十四篇博文 高频考点 React常考基础知识点 我会不断更新该博文 1 生命周期 在V16版本中引入了Fiber机制 这个机制一定程度上的影响了部分生命周期的调用 并且也引入了新的2个API来解决问题 在之前的版
  • 深度学习用streamlit做网页demo

    CSDN话题挑战赛第2期 参赛话题 学习笔记 深度学习 图像生成领域许多工作都会做网页demo 技术与应用接轨 让用户体验模型能力 之前试过用轻量级Web应用框架Flask将深度学习模型部署到微信小程序端 pytorch模型部署小程序 三思
  • 智能机器人编程有必要学吗?

    机器人编程是由各种传统的学科构成的 例如 数学 物理 化学 结构 建筑 地理 生物 能源 信息技术等 学习机器人可以培养孩子的各种能力 包括动手 想象 创造 观察 分析 判断 归纳 理解 决策 组织 实验 计划性 条理性等 如果你正为这些纷
  • 31种选择器的应用

    选择器 selector 是CSS中很重要的概念 所有HTML语言中的标记都是通过不同的CSS选择器进行控制的 用户只需要通过选择器对不同的HTML标签进行控制 并赋予各种样式声明 即可实现各种效果 1 1 margin 0 padding
  • 2021.1.18

    标题 标题 标题 标题 标题 标题 引用 1 代码引用 for i in range 100 print hello world 三个反引号 语言类别插入代码框 2 句中引用 ban掉菲奥娜 3 单行引用 亚索示意敌人已不见踪影 亚索已经0
  • 【9】Docker的迁移与备份

    1 容器保存为镜像 实际工作中经常会使用到 docker commit 容器名称 保存为新镜像的名称 不能和已有的镜像名称重复 我们可以通过以下的命令将容器保存为镜像 docker commit redis myredis 根据新保存的 镜
  • ping

    为什么ping不通 1 ping不通也有好几种返回信息的 Ping不成功的返回信息有 Request Timed Out Destination Net Unreachable 和 Ba d IP address 还有 Source que
  • 3个超好用的图片压缩软件,超高压缩比,保持图片清晰度

    分享3个好用的图片压缩工具 不仅可以大大压缩图片大小 还能保持图片分辨率 压缩后的图片画质也能保持清晰 1 一键抠图 一个智能抠图在线网站 支持人像抠图 物品抠图和证件照之外 除此之外 还有图片压缩 图片格式转换 图片编辑 照片修复等功能
  • ValueError: embedded null character

    问题 报错 ValueError embedded null character 原因 路径中包含 0 被认为是转义字符 不会自动识别为路径 导致报错 需注意含 0 t 等特殊转义字符的路径 解决方案 路径改为 1 D 00pythonPr
  • 电源滤波电路的设计

    一 电源滤波技术 常用的滤波措施有 去耦电容 电感 磁珠等 常用的滤波场景有 电源滤波 接口滤波等 在进行PCB设计时 滤波器件的摆放位置相当关键 对于电容类去耦的滤波原则是靠近滤波区域位置放置最佳 在滤波电路的EMC设计中 滤波的作用基本
  • 电磁场仿真工具们

    首先说明两点 1 不同的商用电磁场仿真工具可能采用的算法不同 但对于偏上电感等常见结构 在各仿真器设置正确的情况下 各仿真工具得到的结果应该相似 如果对仿真结果有疑问 最简单的验证方法是 对同一模型使用不同原理的两种电磁场仿真工具进行仿真
  • vue2使用 tinymce富文本编辑器-图片上传、粘贴图片上传致服务器

    1 安装tinymce富文本编辑器插件 npm i tinymce npm i tinymce tinymce vue 2 创建Editor js文件 封装组件 以便使用
  • c1048: [编程入门]自定义函数之字符串拷贝

    题目描述 有一字符串 包含n个字符 写一函数 将此字符串中从第m个字符开始的全部字符复制成为另一个字符串 输入 数字n 一行字符串 数字m 输出 从m开始的子串 样例输入复制 6 abcdef 3 样例输出复制 cdef 思路 两种方法 一
  • Kafka : KafkaProducer Closing the kafka producer with timeoutMillis

    1 美图 2 背景 一段kafka写入程序 不晓得为啥突然发现很多奇怪的日志 kafka 多线程发送数据 然后在本地是可以的 在服务器上是偶现的 我写了一个本地程序多线程生产数据 发现是没有问题的 Test public void mult
  • mysql“Access denied for user 'root'@'IP地址

    mysql Access denied for user root IP地址 2013 12 27 17 29 1308人阅读 评论 0 收藏 举报 分类 面试 经历 42 版权声明 本文为博主原创文章 未经博主允许不得转载 xshell连
  • kvm环境创建虚拟机

    使用libvirt的xml配置文件创建虚拟机 kvm支持的镜像很多 常用的是原始镜像 img 还有支持动态大小扩张的qocw2格式 首选 更优的选择是系统盘如C盘用img格式 数据盘用qcow2格式以减少服务器磁盘闲置空间 本文仅记录如何用