【Linux】ARM服务器命令行安装虚拟机
在Arm服务器上安装虚拟机操作笔记
- 一、基础环境准备
- 1、环境准备
- 2、检查KVM支持
- 3、启动并启用libvirtd服务
- 4、创建虚拟网络(可选)
- 5、使用virt-manager创建虚拟机(支持KVM)
- 6、管理虚拟机
- 9、监控和日志
- 二、软虚拟化替代方案
- 1、查看虚拟机CPU可支持类型:
- 2、创建虚拟硬盘
- 3、使用命令行启动虚拟机并进行操作系统安装
一、基础环境准备
1、环境准备
确保你的Linux系统已经更新,并且安装了必要的依赖包。
sudo apt update
sudo apt upgrade -y
sudo apt install -y qemu-kvm libvirt-daemon-system libvirt-clients bridge-utils virt-manager
2、检查KVM支持
egrep -c '(vmx|svm)' /proc/cpuinfo
如果输出的结果大于0,说明你的CPU支持虚拟化。
3、启动并启用libvirtd服务
sudo systemctl enable libvirtd
sudo systemctl start libvirtd
4、创建虚拟网络(可选)
如果你需要虚拟机有外部网络访问,可以创建一个桥接网络。
sudo virsh net-start default
sudo virsh net-autostart default
5、使用virt-manager创建虚拟机(支持KVM)
安装virt-manager后,你可以使用GUI来创建和管理虚拟机。1、打开virt-manager。
2、点击“新建虚拟机”按钮。
3、选择安装介质(ISO文件或网络引导)。
4、设置虚拟机名称、内存、CPU等资源分配。
5、配置虚拟磁盘大小。
6、网络配置可以选择桥接或NAT模式。
7、最后,启动虚拟机,进行操作系统的安装。
命令行安装:
可以使用virt-install工具进行安装
sudo virt-install \
--name=vm_name \
--vcpus=2 \ #CPU核数
--memory=2048 \ #内存大小
--cdrom=/path/to/iso \ #镜像文件路径
--disk size=20 \ #磁盘大小
--os-type=linux \ #系统类型
--network network=default,model=virtio \ #网络,选择默认网桥
--graphics vnc,listen=0.0.0.0 \
--noautoconsole
6、管理虚拟机
使用以下命令来管理虚拟机:
列出所有虚拟机:
sudo virsh list --all
启动虚拟机:
sudo virsh start vm_name
关闭虚拟机:
sudo virsh shutdown vm_name
删除虚拟机:
sudo virsh undefine vm_name
9、监控和日志
使用virt-top工具可以监控虚拟机的资源使用情况。
sudo apt install virt-top
sudo virt-top
二、软虚拟化替代方案
如果你的CPU确实不支持硬件虚拟化,或者你无法启用此功能,仍然可以使用软件虚拟化技术,例如使用QEMU的全软件仿真模式来创建虚拟机,但性能会较低。
可以使用以下命令创建一个不依赖硬件虚拟化的虚拟机:
x86:
sudo qemu-system-x86_64 -cdrom /path/to/iso -m 1024 -hda myvirtualdisk.img
ARM:
qemu-system-aarch64 -machine virt -cpu cortex-a57 -m 1024 -nographic -smp 2 \-kernel /path/to/kernel -append "console=ttyAMA0" -hda /path/to/disk.img
参数说明:
-machine virt: 指定虚拟机类型为通用ARM虚拟平台。
-cpu cortex-a57: 使用ARM Cortex-A57 CPU型号。
-m 1024: 分配1024MB内存。
-nographic: 不使用图形界面,直接在终端运行。
-smp 2: 分配2个CPU核心。
-kernel /path/to/kernel: 指定内核镜像的路径。
-append "console=ttyAMA0": 启动时附加的内核参数,指定控制台为串口。
-hda /path/to/disk.img: 指定虚拟硬盘的路径。
1、查看虚拟机CPU可支持类型:
使用以下命令列出QEMU支持的CPU类型:
qemu-system-aarch64 -cpu help
设备类型:
qemu-system-aarch64 -machine help
2、创建虚拟硬盘
创建一个50GB的虚拟硬盘文件,用于安装操作系统。
qemu-img create -f qcow2 /iso/img/mykylin.img 50G
执行结果:
root@FT-2000-pc:/iso# qemu-img create -f qcow2 /iso/img/mykylin.img 50G
Formatting '/iso/img/mykylin.img', fmt=qcow2 size=53687091200 cluster_size=65536 lazy_refcounts=off refcount_bits=16
3、使用命令行启动虚拟机并进行操作系统安装
使用以下命令启动虚拟机,并从ISO镜像启动安装程序。
qemu-system-aarch64 -machine virt -cpu cortex-a57 -m 4096 -smp 2 \-nographic -drive if=none,file=/iso/img/mykylin.img,id=hd0 \-device virtio-blk-device,drive=hd0 \-cdrom /iso/kylin/Kylin-Server-10-SP2-x86-Release-Build09-20210524.iso \-boot d -device virtio-net-device,netdev=net0 \-netdev user,id=net0,hostfwd=tcp::2222-:22
参数说明
-machine virt: 通用的ARM虚拟机平台,适用于多种ARM CPU架构,包括aarch64。
-cpu cortex-a57: 使用Cortex-A57 CPU模型,这是QEMU中常用的ARMv8-A CPU类型。
-m 4096: 分配4GB内存。
-smp 2: 分配2个CPU核心。
-nographic: 以命令行方式运行,不使用图形界面。
-drive if=none,file=/iso/img/mykylin.img,id=hd0: 连接50GB虚拟硬盘。
-device virtio-blk-device,drive=hd0: 使用Virtio驱动,提升磁盘性能。
-cdrom /iso/kylin/Kylin-Server-10-SP2-x86-Release-Build09-20210524.iso: 使用ISO镜像文件进行安装。
-boot d: 从光盘启动,进行操作系统安装。
-device virtio-net-device,netdev=net0: 使用Virtio网络设备,提升网络性能。
-netdev user,id=net0,hostfwd=tcp::2222-:22: 设置用户模式网络,并将宿主机的2222端口映射到虚拟机的22端口(用于SSH连接)。
相关文章:
【Linux】ARM服务器命令行安装虚拟机
在Arm服务器上安装虚拟机操作笔记 一、基础环境准备1、环境准备2、检查KVM支持3、启动并启用libvirtd服务4、创建虚拟网络(可选)5、使用virt-manager创建虚拟机(支持KVM)6、管理虚拟机9、监控和日志 二、软虚拟化替代方案1、查看虚…...
Android 10.0 锁屏页面忘记锁屏密码情况下点击5次解锁图标弹出锁屏密码功能实现
1. 前言 在10.0的系统ROM定制化开发中,在一些产品中带锁屏密码的功能中,系统默认是滑动解锁,但是客户会设置锁屏密码,在某些时候会 忘掉锁屏密码,导致需要进入恢复出厂设置然后才能进入系统桌面,这样就导致系统的保存的资料都丢失了,所以需要要求在锁屏密码页面在忘记解…...
Java-CompletableFuture工具类
CompletableFuture 是 Java 8 引入的一个强大的异步编程工具,它提供了对异步计算的高级支 持,包括组合多个任务的能力、处理结果、异常处理等。为了方便地使用 CompletableFuture,你 可以创建一个工具类来封装常用的操作。 CompletableFuture 工具类 下面是一个 Complet…...
C语言:递归
递归简单来说就是函数自己调用自己。 特点:一般代码比较简洁,没有出口。 例子1:用一个函数计算阶乘 #include<stdio.h>//不用递归 int fac(int n) {int val 1;for (int i 1; i <n;i){val * i;}return val; }//用递归 int fac1(…...
自动化测试框架pytest+allure+requests
最近复习了一下关于自动化测试的内容,结合[码尚教育] 相关的思路来对测试框架进行开发。 争取实现零代码来实现自动化测试环境的搭建 AutoTestFrame 介绍 AutoTestFrame是一个基于Python的自动化测试框架,旨在帮助测试人员快速、高效地完成测试任务。…...
Python 笔记 numpy.ndarray切片
NumPy 的 ndarray 类型提供了非常灵活的切片功能,可以方便地访问和操作数组中的元素。切片允许您通过指定索引来选择数组的一部分。下面是一些基本的切片操作及其解释。 一维数组的切片 对于一维数组,切片操作类似于 Python 列表的切片。 示例 impor…...
一、HTML5知识点精讲
一、HTML5介绍 html是用来描述网页的一种语言(就是写网页的一种语言)。 它和CSS,JS称为网页三要素。 HTML负责把元素简单呈现在网页上,是网页的身体CSS负责给网页元素添加各种样式,是网页的衣服JS负责实现各种动态、…...

【杂乱算法】前缀和与差分
前缀和 文章目录 前缀和一维应用 二维差分一维 二维扩展1、前缀和与哈希表 一维 一个数组prefix中,第i个元素表示nums[0]至nums[i-1]的总和,那么我们就称这个prefix数组是nums数组的前缀和。 prefix [ i ] ∑ j 0 i nums [ j ] \text{prefix}[i] \s…...

Arduino调试ESP32常见问题 exit status 1
问题1:代码上传(烧录)报Failed uploading: uploading error: exit status 1大概率原因:没有安装对应的驱动,我的ESP32驱动是CH340点击这里下载CH340 下载后打开,若出现乱码不用在意,点击第一个按…...

“决胜面试:高频题目与算法策略一览”
干货分享,感谢您的阅读! (暂存篇---后续会删除,完整版和持续更新见高频面试题基本总结回顾(含笔试高频算法整理)) 备注:引用请标注出处,同时存在的问题请在相关博客留言…...

Node-RED的安装
最近对Node-RED比较感兴趣,因为在上OpenHarmony课程的时候,一直想找一个可以通过MQTT控制设备的低代码客户端解决方案。第一次指导Node-RED是在试用聆思开发板的时候,它的云端就是使用的Node-RED。 在安装Node-RED之前,请确保您的…...
java中的Collections
Java 的集合框架(Collections Framework)提供了一组标准的数据结构接口和类,用于存储和操作数据。Java 集合类位于 java.util 包中,主要包括以下几个核心接口和实现类。 1. 核心接口 1.1. Collection 接口 Collection 是集合框架的根接口,但它本身并不提供任何直接实现…...

linux Qt QkeyEvent及驱动键盘按键捕获
基于正点原子 QT中有专门的类处理键盘事件的类QKeyEvent 1.include “QKeyEvent” 查看它的说明中的描述 也就是说接受按键事件在keyPressEvent和keyReleaseEvent这两个函数,继续查看 重构这个函数 查看输入的QKeyEvent类,发现有一个方法key返回哪一个按…...

【GH】【EXCEL】P6: Shapes
文章目录 componentslinepicture components line picture Picture A Picture object Input parameters: Worksheet (Generic Data) A Worksheet, Workbook, Range Object, Excel Application, or Text Worksheet NameName (Text) An optional object nameLocation (Point) A p…...

google浏览器chrome用户数据(拓展程序,书签等)丢失问题
一、问题背景 我出现这个情况的问题背景是:因为C盘块满了想清理一部分空间(具体看这:windows -- C盘清理_c盘softwaredistribution-CSDN博客),于是找到了更改AppDatta这个方法,但因为,当时做迁移…...

数据结构——链式队列和循环队列
目录 引言 队列的定义 队列的分类 1.单链表实现 2.数组实现 队列的功能 队列的声明 1.链式队列 2.循环队列 队列的功能实现 1.队列初始化 (1)链式队列 (2)循环队列 (3)复杂度分析 2.判断队列是否为空 (1)链式队列 (2)循环队列 (3)复杂度分析 3.判断队列是否…...
数据库死锁解决方法,学费了吗?
避免死锁:尽量设计良好的数据库结构,避免出现死锁的情况。可以使用合适的事务隔离级别,以及良好的并发控制策略。 死锁检测和回滚:当检测到死锁时,可以使用死锁检测算法来确定死锁的存在,并回滚其中一个或…...

API网关之Apache ShenYu
Apache ShenYu(原名Soul)是一个开源的API网关,旨在支持高性能、跨语言和云原生架构。它为管理和控制客户端与服务之间的数据流提供了一种高效且可扩展的解决方案。 文档见 Apache ShenYu 介绍 | Apache ShenYu 以下是Apache ShenYu的详细介…...
ECMA Script 6
文章目录 DOM (Document Object Model)BOM (Browser Object Model) let 和 const 命令constObject.freeze方法跨模块常量全局对象的属性 变量的结构赋值数组结构赋值对象解构赋值字符串解构赋值数值和布尔值的解构赋值函数参数解构赋值圆括号的问题 解构赋值的用途 字符串的扩展…...
如何在不破产的情况下训练AI模型
在当今的人工智能领域,训练复杂的AI模型——特别是大型语言模型(LLM)——需要巨大的算力支持。对于许多中小型企业来说,高昂的成本常常成为一个难以逾越的障碍。然而,通过采用一些策略和最佳实践,即使是在资源有限的情况下,也能有效地训练出高质量的AI模型。本文将介绍几…...
【网络】每天掌握一个Linux命令 - iftop
在Linux系统中,iftop是网络管理的得力助手,能实时监控网络流量、连接情况等,帮助排查网络异常。接下来从多方面详细介绍它。 目录 【网络】每天掌握一个Linux命令 - iftop工具概述安装方式核心功能基础用法进阶操作实战案例面试题场景生产场景…...

iOS 26 携众系统重磅更新,但“苹果智能”仍与国行无缘
美国西海岸的夏天,再次被苹果点燃。一年一度的全球开发者大会 WWDC25 如期而至,这不仅是开发者的盛宴,更是全球数亿苹果用户翘首以盼的科技春晚。今年,苹果依旧为我们带来了全家桶式的系统更新,包括 iOS 26、iPadOS 26…...

树莓派超全系列教程文档--(61)树莓派摄像头高级使用方法
树莓派摄像头高级使用方法 配置通过调谐文件来调整相机行为 使用多个摄像头安装 libcam 和 rpicam-apps依赖关系开发包 文章来源: http://raspberry.dns8844.cn/documentation 原文网址 配置 大多数用例自动工作,无需更改相机配置。但是,一…...
React hook之useRef
React useRef 详解 useRef 是 React 提供的一个 Hook,用于在函数组件中创建可变的引用对象。它在 React 开发中有多种重要用途,下面我将全面详细地介绍它的特性和用法。 基本概念 1. 创建 ref const refContainer useRef(initialValue);initialValu…...
在 Nginx Stream 层“改写”MQTT ngx_stream_mqtt_filter_module
1、为什么要修改 CONNECT 报文? 多租户隔离:自动为接入设备追加租户前缀,后端按 ClientID 拆分队列。零代码鉴权:将入站用户名替换为 OAuth Access-Token,后端 Broker 统一校验。灰度发布:根据 IP/地理位写…...
06 Deep learning神经网络编程基础 激活函数 --吴恩达
深度学习激活函数详解 一、核心作用 引入非线性:使神经网络可学习复杂模式控制输出范围:如Sigmoid将输出限制在(0,1)梯度传递:影响反向传播的稳定性二、常见类型及数学表达 Sigmoid σ ( x ) = 1 1 +...
rnn判断string中第一次出现a的下标
# coding:utf8 import torch import torch.nn as nn import numpy as np import random import json""" 基于pytorch的网络编写 实现一个RNN网络完成多分类任务 判断字符 a 第一次出现在字符串中的位置 """class TorchModel(nn.Module):def __in…...
python报错No module named ‘tensorflow.keras‘
是由于不同版本的tensorflow下的keras所在的路径不同,结合所安装的tensorflow的目录结构修改from语句即可。 原语句: from tensorflow.keras.layers import Conv1D, MaxPooling1D, LSTM, Dense 修改后: from tensorflow.python.keras.lay…...
Python ROS2【机器人中间件框架】 简介
销量过万TEEIS德国护膝夏天用薄款 优惠券冠生园 百花蜂蜜428g 挤压瓶纯蜂蜜巨奇严选 鞋子除臭剂360ml 多芬身体磨砂膏280g健70%-75%酒精消毒棉片湿巾1418cm 80片/袋3袋大包清洁食品用消毒 优惠券AIMORNY52朵红玫瑰永生香皂花同城配送非鲜花七夕情人节生日礼物送女友 热卖妙洁棉…...

GruntJS-前端自动化任务运行器从入门到实战
Grunt 完全指南:从入门到实战 一、Grunt 是什么? Grunt是一个基于 Node.js 的前端自动化任务运行器,主要用于自动化执行项目开发中重复性高的任务,例如文件压缩、代码编译、语法检查、单元测试、文件合并等。通过配置简洁的任务…...