利用QEMU安装一台虚拟机的三种方法

文章目录

  • 宿主机的选择
  • 方法一:直接用qemu源码安装
    • 步骤1:下载好qemu源码,这里我们用qemu-5.1.0
    • 步骤2:编译
    • 步骤3:创建一个系统盘
    • 步骤4:用步骤2编译的qemu-system-x86_64 启动一台Linux虚拟机
    • 步骤5:用vnc连接步骤4启动的虚拟机
    • 步骤6:就可以接着步骤5开始一步一步的安装对应的系统了
  • 方法二:配合libvirt在linux宿主机上安装部署Guest OS (主流操作)
    • 步骤1:准备系统盘磁盘文件
    • 步骤2:准备guest os的xml文件
    • 步骤3:开始安装
    • 步骤4:调整xml文件
  • 方法三:使用Qemu指令在Windows宿主机安装部署Guest OS
    • 步骤1:创建系统磁盘文件
    • 步骤2:启动安装
    • 步骤3:正常启动

宿主机的选择

  • linux作为宿主机时可通过图形界面工具virt-manager或libvirt或qemu指令直接部署Guest OS
  • windows作为宿主机时只能使用qemu指令部署Guest OS

方法一:直接用qemu源码安装

步骤1:下载好qemu源码,这里我们用qemu-5.1.0

解压qemu-5.1.0.tar.xz包

步骤2:编译

cd /root/Workplace/qemu-5.1.0
make -j 4

编译结束后,有这样一个目录,下面有对应的二进制文件。其中qemu-system-x86_64 文件即编译后的qemu二进制文件

root@liyuanchao:~/Workplace/qemu-5.1.0# ls x86_64-softmmu/
accel                       config-devices.mak.old     disas.o      exec-vary.o    gdbstub-xml.d        Makefile            softmmu
config-devices.h            config-target.h            dump         fpu            gdbstub-xml.o        migration           target
config-devices.h-timestamp  config-target.h-timestamp  exec.d       gdbstub.d      hmp-commands.h       monitor             tcg
config-devices.mak          config-target.mak          exec.o       gdbstub.o      hmp-commands-info.h  qapi                trace
config-devices.mak.d        disas.d                    exec-vary.d  gdbstub-xml.c  hw                   qemu-system-x86_64  ubuntu.img
root@liyuanchao:~/Workplace/qemu-5.1.0#

步骤3:创建一个系统盘

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

步骤4:用步骤2编译的qemu-system-x86_64 启动一台Linux虚拟机

./qemu-system-x86_64 -m 1024 -hda ubuntu.img -cdrom ~/image/ubuntu-18.04.6-live-server-amd64.iso --enable-kvm -vnc 192.168.170.142:33

步骤5:用vnc连接步骤4启动的虚拟机

在这里插入图片描述

步骤6:就可以接着步骤5开始一步一步的安装对应的系统了

方法二:配合libvirt在linux宿主机上安装部署Guest OS (主流操作)

步骤1:准备系统盘磁盘文件

创建系统磁盘文件

qemu-img create -f qcow2 /images/winsrv2019/winsrv2019.qcow2 50G    //预分配50G大小的系统盘,一般刚安装完系统文件实际大小不超过10G,后续使用会增加)

步骤2:准备guest os的xml文件

根据实际情况配置xml模板文件:win_install.xml (如果要放到51hyper上运行,为避免冲突,vnc端口、ip地址、网卡MAC按51服务器/images/network-default.xml文件中递增),这个文件定义了一些guest os的一些基础配置。在/images/network-default.xml中按示例增加vmname的mac地址及ip地址对应项。并执行如下命令使其实时生效:
virsh net-update default add ip-dhcp-host “” --live --config

/* 重点关注以下配置 *//* 配置guest的名字以及uuid */
<name>winsrv2019</name>
<uuid>9707D4B1-8FAB-4D00-87D9-CF71A21C749A</uuid>  // 通过uuid工具生成一个不会重复的uuid/* 在hd启动项之前,增加cdrom 启动项作为第一启动项目 */
<boot dev='cdrom'/>
<boot dev='hd'/>/* 配置第一块文件磁盘(系统盘)指向之前创建好的系统磁盘文件 */
<disk type='file' device='disk'><driver name='qemu' type='qcow2'/><source file='/images/winsrv2019/winsrv2019.qcow2'/><target dev='vda' bus='virtio'/>    // 如果没有virtio驱动包,此处应该磁盘类型从virtio改为ide,否则识别不到该系统盘<address type='pci' domain='0x0000' bus='0x00' slot='0x06' function='0x0'/>
</disk>/* 配置cdrom用于加载安装系统的ISO文件 */
<disk type='file' device='cdrom'><driver name='qemu' type='raw'/><source file='/kernel/software/iso/cn_windows_server_2019_updated_july_2020_x64_dvd_2c9b67da.iso'/><target dev='hda' bus='ide'/><readonly/><address type='drive' controller='0' bus='0' target='0' unit='0'/>
</disk>/* 配置第二个cdrom用于加载virtio驱动包 */
<disk type='file' device='cdrom'><driver name='qemu' type='raw'/><source file='/images/winsrv2019/virtio-win-0.1.190.iso'/><target dev='hdb' bus='ide'/><readonly/><address type='drive' controller='0' bus='0' target='0' unit='1'/>
</disk>/* 配置vnc端口用于vncviewer连接进行界面操作 */
<graphics type='vnc' port='5929' autoport='no' listen='0.0.0.0'>  // port=5929(5900+29)vnc客户端连接时使用宿主机 ip:29 形如 172.31.20.51:29即可连接<listen type='address' address='0.0.0.0'/>
</graphics>/* 配置网卡MAC地址不要重复 */
<interface type='network'><mac address='52:54:00:15:ff:29'/>    // MAC地址有6个字节,为了方便习惯最后一个字节就设置成与vnc端口号一致<source network='default'/><model type='virtio'/><address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x0'/>
</interface>

步骤3:开始安装

开始安装window操作系统

/* 开始安装 */
virsh create /images/winsrv2019/win_install.xml/*
* 使用vncviewer连接host ip:vncport 如 172.31.20.51:29即可看到安装界面。
* 安装过程中选中磁盘时,因为系统盘配置类型为virtio,但windows原生ISO中并没有virtio磁盘驱动,所以在安装界面时选择加载驱动并进行扫描,
* 此时会从配置的第二个cdrom中识别到磁盘驱动viostor,我们选择对应系统版本的驱动安装好之后就能识别到系统盘。
* 如果没有virtio驱动,那就把系统盘配置成ide类型。
*/

步骤4:调整xml文件

将win_install.xml重命名为winsrv2019.xml (一个有意义的名字),并修改以下配置

/* 去掉cdrom启动项 */
<boot dev='cdrom'/>/* 去掉两个配置cdrom ISO disk *//* 使新的配置生效 */
virsh define /images/winsrv2019/winsrv2019.xml

下次我们就直接用winsrv2019.xml来启动系统了

方法三:使用Qemu指令在Windows宿主机安装部署Guest OS

步骤1:创建系统磁盘文件

qemu-img create -f qcow2 d:\qemu\winsrv2019.qcow2 50G    //预分配50G大小的系统盘,一般刚安装完系统文件实际大小不超过10G,后续使用会增加)

步骤2:启动安装

qemu-system-x86_64 -m 2048M -smp 2  -cdrom F:\windows_iso\cn_windows_server_2019_updated_july_2020_x64_dvd_2c9b67da.iso -hda d:\qemu\winsrv2019.qcow2 -boot d -vnc 0.0.0.0:29 -usbdevice tablet/* 参数解释 */
-m 配置2048内存
-smp 配置2核cpu
-cdrom 使用ISO文件作为光盘映像(不能同时使用-hdc和-cdrom)
-hda 指定文件作为硬盘(会在上面安装系统),-hda -hdb -hdc -hdd将文件用作硬盘 0、1、2 或 3,硬盘ID跟abcd无需严格的对应关系,一个-hdx就是一块盘
-boot d 启动项配置为d, d通常表示系统第一块cdrom盘
-vnc 0.0.0.0:29  vnc viewer通过本地任何一个ip地址如127.0.0.1:29 连接Guest
-usbdevice tablet 解决vnc鼠标偏移问题/* 还有其他参数 */
-enable-kvm   linux 作为宿主机才支持
-accel hax (windows 宿主机加速,需要安装加速组件) https://www.qemu.org/2017/11/22/haxm-usage-windows/
-spice port=3001,disable-ticketing  使用spice连接:remote-viewer spice://127.0.0.1:3001  更多spice功能:https://www.spice-space.org/spice-user-manual.html

步骤3:正常启动

/* 使用VNC连接 需要安装vncviewer */
qemu-system-x86_64 -m 2048M -smp 2 -hda winsrv2019.qcow2 -vnc 0.0.0.0:29 -usbdevice tablet/* 使用spice客户端连接 需要安装 remote-viewer*/
qemu-system-x86_64 -m 2048M -smp 2 -hda winsrv2019.qcow2 -spice port=3001,disable-ticketing/* 对于windows版的qemu 默认可以 */
qemu-system-x86_64 -m 2048M -smp 2 -hda winsrv2019.qcow2

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/429373.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

arm-硬件

一、ARM体系与架构 ARM芯片组成 -- arm 体系中&#xff0c;一般讲到的芯片由两大部分组成&#xff1a;arm的内核、外设 arm内核&#xff1a; -- 其内核主要由&#xff1a;寄存器、指令集、总线、存储器映射规则、中断逻辑主调试组件构成。ARM公司只设计内核&#xff0c;授权给…

用最通俗易懂的语言和例子讲解三维点云

前言&#xff1a; 我整体的学习顺序是看的按B站那“唯一”的三维点云的视频学习的&#xff08;翻了好久几乎没有第二个...&#xff09;对于深度学习部分&#xff0c;由于本人并没有进行学习&#xff0c;所以没有深究。大多数内容都进行了自己的理解并找了很多网络的资源方便理解…

客户转化预测以及关键因素识别_支持向量机与相关性分析

数据入口&#xff1a;数字营销转化数据集 - Heywhale.com 数据集记录了客户与数字营销活动的互动情况。它涵盖了人口统计数据、营销特定指标、客户参与度指标以及历史购买数据&#xff0c;为数字营销领域的预测建模和分析提供了丰富的信息。 数据说明&#xff1a; 字段说明Cu…

unity3d入门教程九

unity3d入门教程九 20.2播放音频20.3在代码中播放21.1延时调用21.2invoke API21.3消息调用22.1交互界面22.2添加canvas22.3canavas的位置22.4添加text 这里给一个资源网站&#xff0c;可以部分免费下载&#xff0c;音乐和音效超多&#xff0c;支持检索 爱给网 https://www.aige…

Arthas sysenv(查看JVM的环境变量)

文章目录 二、命令列表2.1 jvm相关命令2.1.5 sysenv&#xff08;查看JVM的环境变量&#xff09;举例1&#xff1a;sysenv 查看所有环境变量举例2&#xff1a;sysenv java.version 查看单个属性&#xff0c;支持通过tab补全 二、命令列表 2.1 jvm相关命令 2.1.5 sysenv&#x…

2.Seata 1.5.2 集成Springcloud-alibaba

一.Seata-server搭建已完成前提下 详见 Seata-server搭建 二.Springcloud 项目集成Seata 项目整体测试业务逻辑是创建订单后&#xff08;为了演示分布式事务&#xff0c;不做前置库存校验&#xff09;&#xff0c;再去扣减库存。库存不够的时候&#xff0c;创建的订单信息数…

开源 AI 智能名片 S2B2C 商城小程序与营销工具的快速迭代

摘要&#xff1a;本文以开源 AI 智能名片 S2B2C 商城小程序为研究对象&#xff0c;探讨在营销工具快速迭代的背景下&#xff0c;该小程序如何借鉴以拼多多为代表的“小程序拼团”、以蘑菇街为代表的“小程序直播”、以花点时间为代表的“小程序按月订花”等经典案例&#xff0c…

camtasia2024绿色免费安装包win+mac下载含2024最新激活密钥

Hey, hey, hey&#xff01;亲爱的各位小伙伴&#xff0c;今天我要给大家带来的是Camtasia2024中文版本&#xff0c;这款软件简直是视频制作爱好者的福音啊&#xff01; camtasia2024绿色免费安装包winmac下载&#xff0c;点击链接即可保存。 先说说这个版本新加的功能吧&#…

解密.bixi、.baxia勒索病毒:如何安全恢复被加密数据

导言 在数字化时代&#xff0c;数据安全已成为个人和企业面临的重大挑战之一。随着网络攻击手段的不断演进&#xff0c;勒索病毒的出现尤为引人关注。其中&#xff0c;.bixi、.baxia勒索病毒是一种新型的恶意软件&#xff0c;它通过加密用户的重要文件&#xff0c;迫使受害者支…

Linux,uboot,kernel启动流程,S5PV210芯片的启动流程,DRAM控制器初始化流程

一、S5PV210芯片的DRAM控制器介绍、初始化DDR的流程分析 1、DRAM的地址空间 1)从地址映射图可以知道&#xff0c;S5PV210有两个DRAM端口。 DRAM0的内存地址范围&#xff1a;0x20000000&#xff5e;0x3FFFFFFF&#xff08;512MB&#xff09;&#xff1b;DRAM1:的内存地址范围…

Node.js 学习

目录 1.Node.js入门 1.1 什么是 Node.js 1.2 fs模块-读写文件 1.3 path模块-路径处理 1.4 案例-压缩前端html 1.5 认识URL中的端口号 1.6 http模块-创建Web服务 1.7 案例-浏览时钟 2.Node.js 模块化 2.1 模块化简介 2.1.1 什么是模块化&#xff1f; 2.1.2 CommonJS…

BP神经网络

一、BP神经网络概述 BP神经网络由Rumelhard和McClelland于1986年提出的一种按照误差逆向传播算法训练的多层前馈神经网络。 从结构上讲&#xff0c;BP神经网络是一种典型的多层前向型神经网络&#xff0c;具有一个输入层input、数个隐含层hidden&#xff08;可以是一层&#xf…

【高级数据结构】树状数组

一、树状数组的介绍 1.思维导引 树状数组 ( B i n a r y I n d e x e d T r e e , B I T ) (Binary Indexed Tree,BIT) (BinaryIndexedTree,BIT)是利用数的二进制特征进行检索的一种树状的结构。 如何利用二分的思想高效地求前缀和? 如图 4.7 4.7 4.7所示, 以 A A A [ a …

C++初阶学习——探索STL奥秘——模拟实现list类

1、基本框架 list 由三个类构建而成: 节点类:每个节点必须的三部分(指向前一个节点的指针、指向后一个节点的指针、当前节点存储的数据) 迭代器类:此时的迭代器为双向迭代器&#xff0c;比较特殊&#xff0c;需要对其进行封装&#xff0c;如 it并非使迭代器单纯向后移动&…

BLE 设备丢包理解

前言 个人邮箱&#xff1a;zhangyixu02gmail.com在学习 BLE 过程中&#xff0c;总能听到 “丢包” 一词&#xff0c;但是我查阅资料又发现&#xff0c;有大佬说&#xff0c;ATT所有命令都是“必达”的&#xff0c;不存在所谓的“丢包”。而且我发现&#xff0c;在宣传 BLE 产品…

【如何在 Windows 10 主机上通过 VMware 安装 Windows 11 虚拟机,并共享主机网络】

环境说明 主机操作系统&#xff1a;Windows 10虚拟机操作系统&#xff1a;Windows 11虚拟机软件&#xff1a;VMware 步骤一&#xff1a;确保主机&#xff08;Windows 10&#xff09;网络连接正常 启动网络加速软件&#xff1a;在主机上启动软件&#xff0c;确保主机可以正常访…

分布式锁优化之 防死锁 及 过期时间的原子性保证(优化之设置锁的过期时间)

文章目录 1、AlbumInfoApiController --》testLock()2、AlbumInfoServiceImpl --》testLock()3、问题&#xff1a;可能会释放其他服务器的锁。 在Redis中设置一个名为lock的键&#xff0c;值为111&#xff0c;并且只有在该键不存在时才设置&#xff08;即获取锁&#xff09;。同…

Mistral AI 又又又开源了闭源企业级模型——Mistral-Small-Instruct-2409

就在不久前&#xff0c;Mistral 公司在开源了 Pixtral 12B 视觉多模态大模型之后&#xff0c;又开源了自家的企业级小型模型 Mistral-Small-Instruct-2409 &#xff08;22B&#xff09;&#xff0c;这是 Mistral AI 最新的企业级小型模型&#xff0c;是 Mistral Small v24.02 的…

【路径规划】自动泊车的 Simulink 模型

摘要 本文介绍了一个用于自主机器人路径规划和导航的 Simulink 模型&#xff0c;该模型结合了路径跟踪算法&#xff08;如 Pure Pursuit&#xff09;和动态机器人模型&#xff0c;实现了复杂环境中的路径跟随和导航控制。实验结果表明&#xff0c;模型能够在给定路径上精确控制…

QT快速安装使用指南

在Ubuntu 16.04上安装Qt可以通过多种方式进行。以下是使用Qt在线安装程序和apt包管理器的两种常见方法&#xff1a; 方法一&#xff1a;使用Qt在线安装程序 下载Qt在线安装程序 访问Qt官方网站&#xff1a;Try Qt | Develop Applications and Embedded Systems | Qt找到并下载…