纯命令行在Ubuntu中安装qemu的ubuntu虚拟机,成功备忘
信息总体还算完整,有个别软件更新了名字,所以在这备忘一下
1. 验证kvm是否支持
________________________________________________________________
$ grep vmx /proc/cpuinfo

__________________________________________________________________
也可以这样:
$ grep -E '(vmx|svm)' /proc/cpuinfo # cpu虚拟化支持
$ lsmod|grep kvm # 查看Linux内核是否已安装KVM内核模块

________________________________________________________________
有相关关键字输出,既可以认为本机支持 kvm;
2. 安装 qemu 及其依赖包
2.1 利用ubuntu 软件仓库安装
sudo apt-get install qemu-kvm libvirt-daemon-system libvirt-clients virtinst bridge-utils virt-manager virt-viewer
安装后务必重启系统;
2.2 源码安装注意事项
代码网址:
https://github.com/qemu/qemu
git clone https://github.com/qemu/qemu.git
按照官网指示构建即可:
mkdir build
cd build
../configure
make
如果是源码编译qemu的话,当在./configure 阶段遇到 ERROR: meson setup failed 时,需要安装如下软件包:
apt-get install libpixman-1-dev
python 和 ninja 一般机器都有安装,可以稍作检验:

编译完成后可以不用安装,直接执行 build 文件夹中文件,如红框的 qemu-system-x86_64

3.关闭 apparmor
AppArmor 是一种应用级别的访问控制(ACL)工具,可以限制进程访问文件和目录的权限,从而保护应用程序和敏感数据的安全。下面介绍如何使用 AppArmor 来保护应用程序和敏感数据:
确认 AppArmor 是否安装:
$ aa-status
来查询 AppArmor 是否已安装。如果输出中包含 AppArmor 字样,表示 AppArmor 已安装。
sudo /etc/init.d/apparmor teardown && \
sudo update-rc.d -f apparmor remove

4. 重启 libvirtd 服务
sudo systemctl restart libvirtd
5. 预备启动盘安装文件
5.0 下载光盘
$ wget http://old-releases.ubuntu.com/releases/22.04.1/ubuntu-22.04.2-live-server-amd64.iso
其他版本没来得及全面测试,desktop的没有成功。
5.1 挂载启动光盘
$ sudo mkdir /mnt/tmp_ubuntu_220402_live_server
$ sudo mount ./ubuntu-22.04.2-live-server-amd64.iso /mnt/tmp_ubuntu_220402_live_server -o loop
5.2 将启动光盘数据拷贝到本用户某目录
$mkdir ./os_ubuntu220402_live_server
$ ls
$ os_ubuntu220402_live_server ubuntu-22.04.2-live-server-amd64.iso
$ cp -r /mnt/tmp_ubuntu_220402_live_server/ ./os_ubuntu220402_live_server/
20402_live_server/tmp_ubuntu_220402_live_server/casper/initrd

5.3 确认文件路径
vmlinuz 文件和 initrd 文件的路径,向虚拟机中安装ubuntu时会用到(有的版本是initrd.gz 或者 initrd.lz,对应即可)
$ ls ./os_ubuntu220402_live_server/tmp_ubuntu_220402_live_server/casper/vmlinuz
### ./os_ubuntu220402_live_server/tmp_ubuntu_220402_live_server/casper/vmlinuz
$ ls ./os_ubuntu220402_live_server/tmp_ubuntu_220402_live_server/casper/initrd
### ./os_ubuntu2
6. 创建虚拟机镜像,并安装linux
6.1 将用户入组
sudo usermod -aG kvm $USER && \
sudo usermod -aG libvirt $USER
6.2 创建虚拟机文件
$ qemu-img create more_test22042.qcow2 -f qcow2 30G
6.3 启动虚拟机并安装ubuntu
sudo qemu-system-x86_64 -m 8192M -smp 4 -boot c -cpu host -hda more_test22042.qcow2 --enable-kvm \
--nographic -append console=ttyS0 -cdrom ubuntu-22.04.1-live-server-amd64.iso \-kernel ./os_22041_live/tmp22041_live/casper/vmlinuz \-initrd ./os_22041_live/tmp22041_live/casper/initrd
一路的安装选项几乎都是默认,如下面总结,有两三处选择发生。
如果网络不错的话,会安装十几二十几分钟,直到出现 [ reboot ]字样,关掉终端,再开一个终端来启动虚拟机;
6.4 对 6.1到6.3的总结命令
由于经常重复,总结如下:
rm more_test22042.qcow2 && \
sudo usermod -aG kvm $USER && \
sudo usermod -aG libvirt $USER && \
qemu-img create more_test22042.qcow2 -f qcow2 30G && \
sudo qemu-system-x86_64 -m 8192M -smp 4 -boot c -cpu host -hda more_test22042.qcow2 --enable-kvm \
--nographic -append console=ttyS0 -cdrom ubuntu-22.04.1-live-server-amd64.iso \-kernel ./os_22041_live/tmp22041_live/casper/vmlinuz \-initrd ./os_22041_live/tmp22041_live/casper/initrd
启动虚拟机,不知道如何去掉 -cdrom 等选项,所以关闭终端,重开一个终端即可。
6.5 正式启动已经安装好了的虚拟机
启动虚拟机:
不知道如何去掉 -cdrom 等选项,所以关闭终端,重开一个终端:
sudo usermod -aG kvm $USER \
&& sudo usermod -aG libvirt $USER \
&& sudo qemu-system-x86_64 -m 8192M -smp 4 -boot c -cpu host \
-hda test22042.qcow2 --enable-kvm --nographic
启动后会停着不懂,回车后才出现 login:

7. 附件
是














否则会重复进入安装界面

安装过程的选项信息,乱七八糟,仅供参考,并非必需;
除了选择了如下两项,以及用户名机器名和密码,其他都是顺着往下来的
[ Continue in basic mode > ]
[X] Install OpenSSH server
相关文章:
纯命令行在Ubuntu中安装qemu的ubuntu虚拟机,成功备忘
信息总体还算完整,有个别软件更新了名字,所以在这备忘一下 1. 验证kvm是否支持 ________________________________________________________________ $ grep vmx /proc/cpuinfo __________________________________________________________________…...
Vue的学习Day1_是什么以及两种风格
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言一、Vue是什么?二、渐进式框架1.渐进式 三、Vue API风格1.选项式 API (Options API)2.组合式 API (Composition API) 四、Vue 开发前的准备 前言 放…...
磁悬浮人工心脏的不良事件分析:美国FDA数据库的启示
引言: 左心室辅助装置(LVAD)是治疗末期难治性心力衰竭(HF)患者的有效手段。磁悬浮人工心脏HeartMate-3(磁悬浮人工心脏)作为第三代LVAD,自2017年获得美国食品药品监督管理局&#x…...
HarmonyOS(十二)——全面认识HarmonyOS三种渲染控制
渲染控制概述 ArkUI通过自定义组件的build()函数和builder装饰器中的声明式UI描述语句构建相应的UI。在声明式描述语句中开发者除了使用系统组件外,还可以使用渲染控制语句来辅助UI的构建,这些渲染控制语句包括控制组件是否显示的条件渲染语句ÿ…...
SQL 系列教程(二)
目录 SQL DELETE 语句 DELETE 语句 演示数据库 DELETE 实例 删除所有行 SQL TOP, LIMIT, ROWNUM 子句 TOP 子句 演示数据库 SQL TOP、LIMIT 和 ROWNUM 示例 SQL TOP PERCENT 实例 添加WHERE子句 SQL MIN() 和 MAX() 函数 MIN() 和 MAX() 函数 演示数据库 MIN() …...
CSS实现文本和图片无限滚动动画
Demo图如下: <style>* {margin: 0;padding: 0;box-sizing: border-box;font-family: Poppins, sans-serif;}body {min-height: 100vh;background-color: rgb(11, 11, 11);color: #fff;display: flex;flex-direction: column;justify-content: center;align-i…...
MacOS 无法ping 通 github.com 解决方案
ping github.com 会显示请求超时: PING github.com (192.30.253.112): 56 data bytes Request timeout for icmp_seq 0 Request timeout for icmp_seq 1 Request timeout for icmp_seq 2 Request timeout for icmp_seq 3 Request timeout for icmp_seq 4 Request …...
Mac 也能玩文明6!下载安装详细教程
最近朋友给我分享了一个 Mac 玩文明6的方法,丝毫不卡顿,非常流畅,分享给大家 文明6是最新的文明系列游戏,和以往的文明游戏一样,玩家将从石器时代创建文明,然后迈向信息时代,最终通过军事、经济…...
git tag的用法详解
目录 一、tag标识一个commit 二、查看tag 三、对分支打tag 四、删除tag 五、根据某个tag来clone 一、tag标识一个commit tag是用于去标记一个特定的commit。通常,在进行编译部署之前,我们需要对某一个即将release的版本进行tag,例如tag为…...
TC397 EB MCAL开发从0开始系列 之 [17.1] ETH配置实战 - ping/发送
一、ETH配置1、配置目标2、目标依赖2.1 硬件使用2.2 软件使用2.3 新增模块3、EB配置3.1 配置讲解3.2 模块配置3.2.1 MCU配置3.2.2 PORT配置3.2.3 ETH配置3.2.4 ResourceM配置4、ADS代码编写及调试4.1 工程编译...
Scrapy爬虫在新闻数据提取中的应用
Scrapy是一个强大的爬虫框架,广泛用于从网站上提取结构化数据。下面这段代码是Scrapy爬虫的一个例子,用于从新闻网站上提取和分组新闻数据。 使用场景 在新闻分析和内容聚合的场景中,收集和组织新闻数据是常见需求。例如,如果我…...
【服务器GPT+MJ+GPTs】创建部署GPT+MJ+GPTs程序网站
目录 🌺【前言】 🌺【准备】 🌺【宝塔搭建GPT+MJ+GPTs】 🌼1. 给服务器添加端口 🌼2. 安装宝塔 🌼3. 安装Docker 🌼4. 安装ChatGPT程序 🌼5. 程序更新 🌼6. 修改端口 | 密码 🌼7. 绑定域名+申请SSL证书 🌺【前言】 相信大家都对openai的产品ch…...
C语言零基础入门第2天《 visual studio下载安装教程和搭建开发环境及踩坑指南》(保姆级图文教程)
visual studio下载安装教程和搭建开发环境 1、 项目实战效果图2、简单了解一下目前主流的开发环境3、 visual studio下载地址4、 visual studio安装教程5、 配置visual studio环境变量 6、如何新建一个C项目7、新建第一个C程序8、用代码测试创建的项目是否可用8、如何成功让代码…...
分析Vue3生命周期
一.什么是生命周期 在Vue中,生命周期是组件从创建到销毁的整个过程中的不同阶段。Vue组件的生命周期主要由一系列的钩子函数(hook functions)组成。 以下是Vue组件生命周期的主要阶段: 1. 创建阶段: - beforeCre…...
Android 13.0 Launcher3 禁止在HotSeat创建Folder文件夹功能实现
1.概述 在13.0的系统rom定制化开发中,在laucher3的某些功能中,在拖拽item时 靠近某个图标时会形成文件夹(folder), 而根据客户需求不想再hotseat形成文件夹, 这就要从workspace.java从来寻找解决方案了分析hotseat是怎么变成 folder的,接下来具体实现相关功能 2.Launch…...
大模型训练 - 华为机试真题第二题(200分)
考试平台: 时习知 题目类型: 3 道编程题 (100分 200分 300分) 考试时间: 2024-01-24 (两小时) AI大模型学习大量的训练样本,通过大量参数拟合出样本背后复杂的高维概率密度分布关系…...
创作活动(九十三)———ChatGPT 和文心一言哪个更好用?
#ChatGPT 和文心一言哪个更好用?# 根据提供的搜索结果,ChatGPT和文心一言各有特点和优势,选择哪一个更好用取决于具体的应用场景和个人需求。以下是两者的对比: ChatGPT: 适用场景:适合需要生成大量知识性…...
Spring 声明式事务 @Transactional(详解)【面试重点,小林出品】
关于 Transactional 注解的基本使用,推荐看Spring 声明式事务 Transactional(基本使用) 概述 本篇博客主要学习 Transactional 注解当中的三个常⻅属性: 1. rollbackFor:异常回滚属性.指定能够触发事务回滚的异常类型.可以指定多个异常类型 …...
CSS之高度塌陷和外边距塌陷
目录 1.高度塌陷(原因,如何解决) 【概念介绍】 【解决办法】 【概念介绍-BFC】 【拓展-BFC的触发条件】 2.外边距塌陷 (原因,如何解决) 【概念介绍】 【两种情况】 1.相邻块元素 2.嵌套块元素 【…...
基于SpringBoot Vue美食网站系统
大家好✌!我是Dwzun。很高兴你能来阅读我,我会陆续更新Java后端、前端、数据库、项目案例等相关知识点总结,还为大家分享优质的实战项目,本人在Java项目开发领域有多年的经验,陆续会更新更多优质的Java实战项目&#x…...
OpenRGB终极指南:一站式免费控制所有RGB设备的完整解决方案
OpenRGB终极指南:一站式免费控制所有RGB设备的完整解决方案 【免费下载链接】OpenRGB Open source RGB lighting control that doesnt depend on manufacturer software. Supports Windows, Linux, MacOS. Mirror of https://gitlab.com/CalcProgrammer1/OpenRGB. R…...
物联网技术如何重塑智能电网的底层架构
1. 物联网技术重塑智能电网的底层逻辑2003年美加大停电事故导致5000万人陷入黑暗,这场灾难直接催生了现代智能电网的诞生。如今,当我们谈论智能电网时,本质上是在讨论一个由物联网(IoT)技术重构的能源神经系统。这个系统通过海量智能终端实时…...
Win11内存完整性报错?手把手教你定位并安全移除不兼容驱动程序
1. 遇到Win11内存完整性警告怎么办? 最近很多升级到Windows 11的用户都遇到了一个让人头疼的问题——系统右下角突然弹出"内存完整性已关闭"的安全警告。这个黄色的小三角图标确实挺烦人的,特别是对于像我这样有点强迫症的用户来说。第一次看到…...
五分钟完成python脚本对接taotoken多模型api的教程
🚀 告别海外账号与网络限制!稳定直连全球优质大模型,限时半价接入中。 👉 点击领取海量免费额度 五分钟完成Python脚本对接Taotoken多模型API的教程 对于希望快速接入多个主流大模型的Python开发者而言,Taotoken提供的…...
终极指南:调度系统架构设计的核心原理与实践技巧
终极指南:调度系统架构设计的核心原理与实践技巧 【免费下载链接】system-design-101 Explain complex systems using visuals and simple terms. Help you prepare for system design interviews. 项目地址: https://gitcode.com/GitHub_Trending/sy/system-desi…...
避坑指南:ESP32 ADC采样时这些操作会让数据‘丢帧’(WiFi冲突、看门狗、串口打印)
ESP32 ADC采样稳定性实战:规避数据丢失的6个关键策略 在物联网和嵌入式开发领域,ESP32因其出色的无线连接能力和丰富的外设资源成为热门选择。但当开发者将其ADC(模数转换器)功能用于高精度数据采集时,常常会遇到采样数…...
Quectel移远展锐平台5G模组RX500U/RG200U工作模式深度解析:从网卡到路由的实战选择
1. 5G模组工作模式基础认知 第一次接触Quectel移远展锐平台5G模组时,最让我困惑的就是网卡模式和路由模式的区别。记得去年做智能快递柜项目时,就因为没搞清这两种模式的特点,导致现场调试时手忙脚乱。后来在工业网关项目上反复折腾RX500U模组…...
矿用防爆监控哪家更值得选择
导读:矿用防爆监控是保障煤矿等高危工业场景安全的重要设备,其性能和可靠性直接关系到生产安全。在众多品牌中,如何选择一款优质的矿用防爆监控产品成为了许多企业的关注焦点。本文将从多个维度对矿用防爆监控进行深度解析,并推荐…...
古吉拉特语TTS项目上线倒计时48小时!这份含11个合规性检查项的ElevenLabs交付清单请立刻保存
更多请点击: https://intelliparadigm.com 第一章:古吉拉特语TTS项目上线倒计时全景概览 古吉拉特语(Gujarati)作为印度西部广泛使用的官方语言,拥有超过 5500 万母语使用者,但其高质量、低延迟、可商用的…...
Arm Streamline性能分析工具在嵌入式Linux开发中的应用
1. Arm Streamline性能分析工具概述在嵌入式Linux开发领域,性能优化始终是开发者面临的核心挑战之一。Arm Streamline作为专为Arm架构设计的性能分析工具,提供了从应用层到内核层的全栈性能监控能力。与传统的perf工具相比,Streamline的最大优…...
