当前位置: 首页 > news >正文

纯命令行在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的构建,这些渲染控制语句包括控制组件是否显示的条件渲染语句&#xff…...

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图如下&#xff1a; <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 会显示请求超时&#xff1a; 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的方法&#xff0c;丝毫不卡顿&#xff0c;非常流畅&#xff0c;分享给大家 文明6是最新的文明系列游戏&#xff0c;和以往的文明游戏一样&#xff0c;玩家将从石器时代创建文明&#xff0c;然后迈向信息时代&#xff0c;最终通过军事、经济…...

git tag的用法详解

目录 一、tag标识一个commit 二、查看tag 三、对分支打tag 四、删除tag 五、根据某个tag来clone 一、tag标识一个commit tag是用于去标记一个特定的commit。通常&#xff0c;在进行编译部署之前&#xff0c;我们需要对某一个即将release的版本进行tag&#xff0c;例如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是一个强大的爬虫框架&#xff0c;广泛用于从网站上提取结构化数据。下面这段代码是Scrapy爬虫的一个例子&#xff0c;用于从新闻网站上提取和分组新闻数据。 使用场景 在新闻分析和内容聚合的场景中&#xff0c;收集和组织新闻数据是常见需求。例如&#xff0c;如果我…...

【服务器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中&#xff0c;生命周期是组件从创建到销毁的整个过程中的不同阶段。Vue组件的生命周期主要由一系列的钩子函数&#xff08;hook functions&#xff09;组成。 以下是Vue组件生命周期的主要阶段&#xff1a; 1. 创建阶段&#xff1a; - beforeCre…...

Android 13.0 Launcher3 禁止在HotSeat创建Folder文件夹功能实现

1.概述 在13.0的系统rom定制化开发中,在laucher3的某些功能中,在拖拽item时 靠近某个图标时会形成文件夹(folder), 而根据客户需求不想再hotseat形成文件夹, 这就要从workspace.java从来寻找解决方案了分析hotseat是怎么变成 folder的,接下来具体实现相关功能 2.Launch…...

大模型训练 - 华为机试真题第二题(200分)

考试平台&#xff1a; 时习知 题目类型&#xff1a; 3 道编程题 &#xff08;100分 200分 300分&#xff09; 考试时间&#xff1a; 2024-01-24 &#xff08;两小时&#xff09; AI大模型学习大量的训练样本&#xff0c;通过大量参数拟合出样本背后复杂的高维概率密度分布关系…...

创作活动(九十三)———ChatGPT 和文心一言哪个更好用?

#ChatGPT 和文心一言哪个更好用&#xff1f;# 根据提供的搜索结果&#xff0c;ChatGPT和文心一言各有特点和优势&#xff0c;选择哪一个更好用取决于具体的应用场景和个人需求。以下是两者的对比&#xff1a; ChatGPT&#xff1a; 适用场景&#xff1a;适合需要生成大量知识性…...

Spring 声明式事务 @Transactional(详解)【面试重点,小林出品】

关于 Transactional 注解的基本使用&#xff0c;推荐看Spring 声明式事务 Transactional&#xff08;基本使用&#xff09; 概述 本篇博客主要学习 Transactional 注解当中的三个常⻅属性: 1. rollbackFor:异常回滚属性.指定能够触发事务回滚的异常类型.可以指定多个异常类型 …...

CSS之高度塌陷和外边距塌陷

目录 1.高度塌陷&#xff08;原因&#xff0c;如何解决&#xff09; 【概念介绍】 【解决办法】 【概念介绍-BFC】 【拓展-BFC的触发条件】 2.外边距塌陷 &#xff08;原因&#xff0c;如何解决&#xff09; 【概念介绍】 【两种情况】 1.相邻块元素 2.嵌套块元素 【…...

基于SpringBoot Vue美食网站系统

大家好✌&#xff01;我是Dwzun。很高兴你能来阅读我&#xff0c;我会陆续更新Java后端、前端、数据库、项目案例等相关知识点总结&#xff0c;还为大家分享优质的实战项目&#xff0c;本人在Java项目开发领域有多年的经验&#xff0c;陆续会更新更多优质的Java实战项目&#x…...

AtCoder 第409​场初级竞赛 A~E题解

A Conflict 【题目链接】 原题链接&#xff1a;A - Conflict 【考点】 枚举 【题目大意】 找到是否有两人都想要的物品。 【解析】 遍历两端字符串&#xff0c;只有在同时为 o 时输出 Yes 并结束程序&#xff0c;否则输出 No。 【难度】 GESP三级 【代码参考】 #i…...

新能源汽车智慧充电桩管理方案:新能源充电桩散热问题及消防安全监管方案

随着新能源汽车的快速普及&#xff0c;充电桩作为核心配套设施&#xff0c;其安全性与可靠性备受关注。然而&#xff0c;在高温、高负荷运行环境下&#xff0c;充电桩的散热问题与消防安全隐患日益凸显&#xff0c;成为制约行业发展的关键瓶颈。 如何通过智慧化管理手段优化散…...

WordPress插件:AI多语言写作与智能配图、免费AI模型、SEO文章生成

厌倦手动写WordPress文章&#xff1f;AI自动生成&#xff0c;效率提升10倍&#xff01; 支持多语言、自动配图、定时发布&#xff0c;让内容创作更轻松&#xff01; AI内容生成 → 不想每天写文章&#xff1f;AI一键生成高质量内容&#xff01;多语言支持 → 跨境电商必备&am…...

IT供电系统绝缘监测及故障定位解决方案

随着新能源的快速发展&#xff0c;光伏电站、储能系统及充电设备已广泛应用于现代能源网络。在光伏领域&#xff0c;IT供电系统凭借其持续供电性好、安全性高等优势成为光伏首选&#xff0c;但在长期运行中&#xff0c;例如老化、潮湿、隐裂、机械损伤等问题会影响光伏板绝缘层…...

深入解析C++中的extern关键字:跨文件共享变量与函数的终极指南

&#x1f680; C extern 关键字深度解析&#xff1a;跨文件编程的终极指南 &#x1f4c5; 更新时间&#xff1a;2025年6月5日 &#x1f3f7;️ 标签&#xff1a;C | extern关键字 | 多文件编程 | 链接与声明 | 现代C 文章目录 前言&#x1f525;一、extern 是什么&#xff1f;&…...

Mac下Android Studio扫描根目录卡死问题记录

环境信息 操作系统: macOS 15.5 (Apple M2芯片)Android Studio版本: Meerkat Feature Drop | 2024.3.2 Patch 1 (Build #AI-243.26053.27.2432.13536105, 2025年5月22日构建) 问题现象 在项目开发过程中&#xff0c;提示一个依赖外部头文件的cpp源文件需要同步&#xff0c;点…...

【数据分析】R版IntelliGenes用于生物标志物发现的可解释机器学习

禁止商业或二改转载&#xff0c;仅供自学使用&#xff0c;侵权必究&#xff0c;如需截取部分内容请后台联系作者! 文章目录 介绍流程步骤1. 输入数据2. 特征选择3. 模型训练4. I-Genes 评分计算5. 输出结果 IntelliGenesR 安装包1. 特征选择2. 模型训练和评估3. I-Genes 评分计…...

Reasoning over Uncertain Text by Generative Large Language Models

https://ojs.aaai.org/index.php/AAAI/article/view/34674/36829https://ojs.aaai.org/index.php/AAAI/article/view/34674/36829 1. 概述 文本中的不确定性在许多语境中传达,从日常对话到特定领域的文档(例如医学文档)(Heritage 2013;Landmark、Gulbrandsen 和 Svenevei…...

管理学院权限管理系统开发总结

文章目录 &#x1f393; 管理学院权限管理系统开发总结 - 现代化Web应用实践之路&#x1f4dd; 项目概述&#x1f3d7;️ 技术架构设计后端技术栈前端技术栈 &#x1f4a1; 核心功能特性1. 用户管理模块2. 权限管理系统3. 统计报表功能4. 用户体验优化 &#x1f5c4;️ 数据库设…...

Webpack性能优化:构建速度与体积优化策略

一、构建速度优化 1、​​升级Webpack和Node.js​​ ​​优化效果​​&#xff1a;Webpack 4比Webpack 3构建时间降低60%-98%。​​原因​​&#xff1a; V8引擎优化&#xff08;for of替代forEach、Map/Set替代Object&#xff09;。默认使用更快的md4哈希算法。AST直接从Loa…...