qemu+kvm的基本用法

qemu+kvm的基本用法

  • 1. `KVM`和`QEMU`的关系
  • 2 `QEMU`的安装
  • 3 使用`QEMU`
    • 3.1 创建虚拟镜像文件
    • 3.2 创建虚拟机
    • 3.3 使用虚拟机
  • 4 关于`kvm`用户权限问题

1. KVMQEMU的关系

首先KVMKernel Virtual Machine)是Linux的一个内核驱动模块,它能够让Linux主机成为一个Hypervisor(虚拟机监控器)。在支持VMX(Virtual Machine Extension)功能的x86处理器中,Linux在原有的用户模式和内核模式中新增加了客户模式,并且客户模式也拥有自己的内核模式和用户模式,虚拟机就是运行在客户模式中。KVM模块的职责就是打开并初始化VMX功能,提供相应的接口以支持虚拟机的运行。
QEMUquick emulator)本身并不包含或依赖KVM模块,而是一套由Fabrice Bellard编写的模拟计算机的自由软件。QEMU虚拟机是一个纯软件的实现,可以在没有KVM模块的情况下独立运行,但是性能比较低。QEMU有整套的虚拟机实现,包括处理器虚拟化、内存虚拟化以及I/O设备的虚拟化。QEMU是一个用户空间的进程,需要通过特定的接口才能调用到KVM模块提供的功能。从QEMU角度来看,虚拟机运行期间,QEMU通过KVM模块提供的系统调用接口进行内核设置,由KVM模块负责将虚拟机置于处理器的特殊模式运行。QEMU使用了KVM模块的虚拟化功能,为自己的虚拟机提供硬件虚拟化加速以提高虚拟机的性能。
KVM只模拟CPU和内存,因此一个客户机操作系统可以在宿主机上跑起来,但是你看不到它,无法和它沟通。于是,有人修改了QEMU代码,把他模拟CPU、内存的代码换成KVM,而网卡、显示器等留着,因此QEMU+KVM就成了一个完整的虚拟化平台
KVM只是内核模块,用户并没法直接跟内核模块交互,需要借助用户空间的管理工具,而这个工具就是QEMU。KVM和QEMU相辅相成,QEMU通过KVM达到了硬件虚拟化的速度,而KVM则通过QEMU来模拟设备。对于KVM来说,其匹配的用户空间工具并不仅仅只有QEMU,还有其他的,比如RedHat开发的libvirt、virsh、virt-manager等,QEMU并不是KVM的唯一选择。
所以简单直接的理解就是:QEMU是个计算机模拟器,而KVM为计算机的模拟提供加速功能

2 QEMU的安装

Slackware下,用SlackBuilds网站下载安装脚本,从qemu官网下载最新的qemu源码包。

3 使用QEMU

3.1 创建虚拟镜像文件

$ qemu-img create -f qcow2 image_file.cow 40G

这样就产生了一个image_file.cow的镜像文件。大小会随着使用的变化而增大。

3.2 创建虚拟机

$ qemu-system-x86_64  -enable-kvm -cdrom en_windows_xp_professional_with_service_pack_3_x86_cd_vl_x14-73974.iso  -boot menu=on -drive file=image_file.cow  -m 4G

使用虚拟机

3.3 使用虚拟机

$ qemu-system-x86_64 -enable-kvm -boot menu=on -drive file=image_file.cow  -m 4G

在3.2 和3.3中,命令qemu-system-x86_64都可以使用qemu-kvm来代替。
事实上,qemu-kvm就是指向qemu-system-x86_64的一个链接。
qemu中使用menuetOS

4 关于kvm用户权限问题

如果在3.2和3.3中有用户组权限不足问题,请参考
Slackbuids官网qemu安装脚本说明,脚本中We patch the installed udev rules to require membership in "users" group instead of a custom "kvm" group to use /dev/kvm.
所以我们可以切换到root用户,

$ su
# vigr
# vigr -s

users用户组后面添加你所在的用户组。
或者使用

$ su
# usermod --append  ${你所在的用户组} --groups users 

至此,kvm用户权限问题解决。

附:添加你所在的用户组kvm

# usermod --append  ${你所在的用户组} --groups kvm

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【项目】均衡代码评测

TOC 目录 项目介绍 开发环境 主要技术 项目实现 公共模块 日志 工具类 编译运行模块 介绍 编译 运行 编译和运行结合起来 业务逻辑模块 介绍 MVC模式框架 模型(Model) 视图(View) 控制器(Controller&#xff09…

【Linux】文件属性信息、文件目录权限修改

Linux文件属性信息 在 Linux 中,ls命令用于列出目录内容,并提供了许多参数以定制输出和显示不同类型的信息。以下是一些常用的ls命令参数 -a显示所有文件和目录,包括以.开头的隐藏文件。-l使用长格式列出文件和目录的详细信息,包…

基于 C++ STL 的图书管理系统213行

定制魏:QTWZPW,获取更多源码等 目录 一、实践项目名称 二、实践目的 三、实践要求 四、实践内容 五、代码框架参考 六、代码效果展示 七、完整代码主函数展示 一、实践项目名称 基于 C STL 的图书管理系统 二、实践目的 通过设计和实现一个基于…

Linux中的常用基础操作

ls 列出当前目录下的子目录和文件 ls -a 列出当前目录下的所有内容(包括以.开头的隐藏文件) ls [目录名] 列出指定目录下的子目录和文件 ls -l 或 ll 以列表的形式列出当前目录下子目录和文件的详细信息 pwd 显示当前所在目录的路径 ctrll 清屏 cd…

专业135+总分400+重庆邮电大学801信号与系统考研经验重邮电子信息与通信工程,真题,大纲,参考书。

今年分数出来还是比较满意,专业801信号与系统135,总分400,没想到自己也可以考出400以上的分数,一年的努力付出都是值得的,总结一下自己的复习心得,希望对大家复习有所帮助。专业课:(…

C/C++语言相关常见面试题总结

目录 const关键字的作用 volatile 关键字 #define和const有什么区别 decltype和auto的区别 extern 关键字的作用 如何避免野指针 C/C中的类型转换以及使用场景 什么是RTTI?其原理是什么? RTTI 的原理: C中引用和指针的区别 C11用过…

亮剑AIGC,紫光云能否胜人一筹?

【全球云观察 | 科技热点关注】 扎实创新每一步, 先人一步快人一步。 2023年全球科技行业最火的莫过于生成式AI,即Artificial Intelligence Generated Content。在迈向生成式AI的道路上,虽然说不上千军万马,但是国内…

Redis - hash 哈希表

前言 ⼏乎所有的主流编程语⾔都提供了哈希(hash)类型,它们的叫法可能是哈希、字典、关联数组、映射。在 Redis 中,哈希类型是指 value 本⾝⼜是⼀个键值对结构,形如 key "key",value { { fiel…

java设计模式(2)---六大原则

设计模式之六大原则 这篇博客非常有意义,希望自己能够理解的基础上,在实际开发中融入这些思想,运用里面的精髓。 先列出六大原则:单一职责原则、里氏替换原则、接口隔离原则、依赖倒置原则、迪米特原则、开闭原则。 一、单一职…

Linux环境基础开发工具yum,vim使用

目录 1.Linux 软件包管理器 yum1.1什么是软件包1.2关于 rzsz1.3注意事项1.4查看软件包1.5如何安装软件1.6如何卸载软件 2.Linux开发工具2.1Linux编辑器-vim使用2.1.1vim的基本概念2.1.2vim的基本操作2.1.3vim正常模式命令集2.1.4vim末行模式命令集2.1.5vim操作总结 2.2简单vim配…

成功案例|全基因组测序+GWAS联合分析揭示不同种族帕金森病的遗传同质性和异质性

发表期刊:npj Parkinson’s Disease 影响因子:8.7 测序方式:WGS 研究对象:人 1 研究背景 帕金森病(PD)是一种常见的与年龄相关的神经退行性疾病,其特征是运动迟缓、姿势不稳定、僵硬和静息…

面试八股——redis——缓存——缓存穿透、击穿、雪崩

HR:你在项目中的那些场景用到了redis? 1. 缓存穿透问题 (项目中使用的方法) 2. 缓存击穿 解决办法1:加互斥锁。大量并发时,先让一个人去查,其他人等着。这样剩下人就可在缓存直接获取值。&#…

软件应用,麻将馆棋牌室计时计费管理系统软件,在计时的时候可以使用灯控器智能控灯

软件应用,麻将馆棋牌室计时计费管理系统软件,在计时的时候可以使用灯控器智能控灯 一、前言 以下软件操作教程以佳易王棋牌计时计费软件V18.0为例说明,其他版本可以参考 件文件下载可以点击最下方官网卡片——软件下载——试用版软件下载 …

Perfetto Trace抓取

1. Perfetto简介 Perfetto 是一个用于 Android 系统的性能跟踪工具,可以帮助开发者分析系统性能和调试问题。 Perfetto 是 Android 10 中引入的全新平台级跟踪工具。这是适用于 Android、Linux 和 Chrome 的更加通用和复杂的开源跟踪项目。 在低于Android R的版本上…

高性价比不入耳运动耳机哪个牌子好?精心筛选五大高赞好物推荐

在现在的时代运动耳机已成为我们不可或缺的伴侣,而在众多的运动耳机品牌中,选择一款高性价比、佩戴舒适且不入耳的款式,往往能让我们在运动过程中享受更加纯粹的音乐体验,接下来,就让我们一起探索那些备受好评的不入耳…

RobotFrameWorkRIDE失败重试

一、方法一:修改源码 【方式】https://blog.csdn.net/qq_15158911/article/details/119077562 二、方式二:使用插件 【需要环境】robotframework>4.1Python>3.8RobotFrameWorkRIDE2.X 【操作】 1、安装robotframework-retryfailed pip insta…

CleanMyMac X 4.15.1 for Mac 最新中文破解版 系统优化垃圾清理工具

CleanMyMac X for Mac 是一款功能更加强大的系统优化清理工具,相比于 CleanMyMac 4.15.1来说,功能增加了不少,此版本为4.15.1官方最新中英文正式破解版本,永久使用,解决了打开软件崩溃问题,最新版4.15.1版本…

Java后端项目性能优化实战-群发通知

背景 公司群发通知模块性能存在问题,我进行全面的系统调优,系统处理能力大幅提升。 原发送流程 优化后的发送流程 优化的点 说明:以下问题基本都是压测过程遇到的,有些问题普通的功能测试暴露不了。优化目标:保证高…

Transformer的前世今生 day07(Masked Self-Attention

Masked Self-Attention 掩码自注意力 由于NLP中的生成模型,是一个一个的生成单词, 所以为了让自注意力也实现这个过程,就设计了掩码自注意力 掩码:在自注意力机制中,每个输入位置都会与其他位置进行注意力计算&#x…

Maven从零到放弃:文档学习

学习背景: Maven一直在使用,自己也构建过相应的项目。也对常用的配置和命令有一些了解,也处理过一些相关的问题。例如:项目缺少依赖;版本冲突或其他构建失败的问题。但是一直没有进行系统性的学习。 链接:…