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

【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语言:递归

递归简单来说就是函数自己调用自己。 特点&#xff1a;一般代码比较简洁&#xff0c;没有出口。 例子1&#xff1a;用一个函数计算阶乘 #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

最近复习了一下关于自动化测试的内容&#xff0c;结合[码尚教育] 相关的思路来对测试框架进行开发。 争取实现零代码来实现自动化测试环境的搭建 AutoTestFrame 介绍 AutoTestFrame是一个基于Python的自动化测试框架&#xff0c;旨在帮助测试人员快速、高效地完成测试任务。…...

Python 笔记 numpy.ndarray切片

NumPy 的 ndarray 类型提供了非常灵活的切片功能&#xff0c;可以方便地访问和操作数组中的元素。切片允许您通过指定索引来选择数组的一部分。下面是一些基本的切片操作及其解释。 一维数组的切片 对于一维数组&#xff0c;切片操作类似于 Python 列表的切片。 示例 impor…...

一、HTML5知识点精讲

一、HTML5介绍 html是用来描述网页的一种语言&#xff08;就是写网页的一种语言&#xff09;。 它和CSS&#xff0c;JS称为网页三要素。 HTML负责把元素简单呈现在网页上&#xff0c;是网页的身体CSS负责给网页元素添加各种样式&#xff0c;是网页的衣服JS负责实现各种动态、…...

【杂乱算法】前缀和与差分

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

Arduino调试ESP32常见问题 exit status 1

问题1&#xff1a;代码上传&#xff08;烧录&#xff09;报Failed uploading: uploading error: exit status 1大概率原因&#xff1a;没有安装对应的驱动&#xff0c;我的ESP32驱动是CH340点击这里下载CH340 下载后打开&#xff0c;若出现乱码不用在意&#xff0c;点击第一个按…...

“决胜面试:高频题目与算法策略一览”

干货分享&#xff0c;感谢您的阅读&#xff01; &#xff08;暂存篇---后续会删除&#xff0c;完整版和持续更新见高频面试题基本总结回顾&#xff08;含笔试高频算法整理&#xff09;&#xff09; 备注&#xff1a;引用请标注出处&#xff0c;同时存在的问题请在相关博客留言…...

Node-RED的安装

最近对Node-RED比较感兴趣&#xff0c;因为在上OpenHarmony课程的时候&#xff0c;一直想找一个可以通过MQTT控制设备的低代码客户端解决方案。第一次指导Node-RED是在试用聆思开发板的时候&#xff0c;它的云端就是使用的Node-RED。 在安装Node-RED之前&#xff0c;请确保您的…...

java中的Collections

Java 的集合框架(Collections Framework)提供了一组标准的数据结构接口和类,用于存储和操作数据。Java 集合类位于 java.util 包中,主要包括以下几个核心接口和实现类。 1. 核心接口 1.1. Collection 接口 Collection 是集合框架的根接口,但它本身并不提供任何直接实现…...

linux Qt QkeyEvent及驱动键盘按键捕获

基于正点原子 QT中有专门的类处理键盘事件的类QKeyEvent 1.include “QKeyEvent” 查看它的说明中的描述 也就是说接受按键事件在keyPressEvent和keyReleaseEvent这两个函数&#xff0c;继续查看 重构这个函数 查看输入的QKeyEvent类&#xff0c;发现有一个方法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用户数据(拓展程序,书签等)丢失问题

一、问题背景 我出现这个情况的问题背景是&#xff1a;因为C盘块满了想清理一部分空间&#xff08;具体看这&#xff1a;windows -- C盘清理_c盘softwaredistribution-CSDN博客&#xff09;&#xff0c;于是找到了更改AppDatta这个方法&#xff0c;但因为&#xff0c;当时做迁移…...

数据结构——链式队列和循环队列

目录 引言 队列的定义 队列的分类 1.单链表实现 2.数组实现 队列的功能 队列的声明 1.链式队列 2.循环队列 队列的功能实现 1.队列初始化 (1)链式队列 (2)循环队列 (3)复杂度分析 2.判断队列是否为空 (1)链式队列 (2)循环队列 (3)复杂度分析 3.判断队列是否…...

数据库死锁解决方法,学费了吗?

避免死锁&#xff1a;尽量设计良好的数据库结构&#xff0c;避免出现死锁的情况。可以使用合适的事务隔离级别&#xff0c;以及良好的并发控制策略。 死锁检测和回滚&#xff1a;当检测到死锁时&#xff0c;可以使用死锁检测算法来确定死锁的存在&#xff0c;并回滚其中一个或…...

API网关之Apache ShenYu

Apache ShenYu&#xff08;原名Soul&#xff09;是一个开源的API网关&#xff0c;旨在支持高性能、跨语言和云原生架构。它为管理和控制客户端与服务之间的数据流提供了一种高效且可扩展的解决方案。 文档见 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模型。本文将介绍几…...

麦橘超然Flux控制台快速体验:输入文字秒出高清图片

麦橘超然Flux控制台快速体验&#xff1a;输入文字秒出高清图片 1. 为什么选择Flux控制台 如果你正在寻找一个简单高效的AI图像生成工具&#xff0c;麦橘超然Flux控制台值得考虑。这个基于DiffSynth-Studio构建的Web服务&#xff0c;集成了majicflus_v1模型&#xff0c;通过fl…...

VisionPro实战:CogGraphicCollection在工业检测中的5个高效用法(附代码)

VisionPro实战&#xff1a;CogGraphicCollection在工业检测中的5个高效用法&#xff08;附代码&#xff09; 在工业自动化领域&#xff0c;机器视觉系统正变得越来越智能和高效。作为康耐视VisionPro平台的核心组件之一&#xff0c;CogGraphicCollection为工程师提供了强大的图…...

Neeshck-Z-lmage_LYX_v2实际作品:基于LoRA微调的专属IP形象批量生成

Neeshck-Z-lmage_LYX_v2实际作品&#xff1a;基于LoRA微调的专属IP形象批量生成 1. 引言&#xff1a;从零到一&#xff0c;打造你的专属数字形象 想象一下&#xff0c;你需要为你的品牌、游戏或者社交媒体账号设计一套统一的视觉形象。传统的做法是找设计师&#xff0c;沟通需…...

OpenClaw安全实践:GLM-4.7-Flash本地化部署的权限控制指南

OpenClaw安全实践&#xff1a;GLM-4.7-Flash本地化部署的权限控制指南 1. 为什么需要关注OpenClaw的权限控制&#xff1f; 去年夏天&#xff0c;我在整理电脑上的财务报告时&#xff0c;无意中发现OpenClaw自动将我的税务文件同步到了一个陌生目录。这个意外让我意识到——当…...

OpenClaw技能分享:GLM-4.7-Flash驱动的邮件自动处理系统

OpenClaw技能分享&#xff1a;GLM-4.7-Flash驱动的邮件自动处理系统 1. 为什么需要自动化邮件处理 每天早晨打开邮箱&#xff0c;看到堆积如山的未读邮件总让人头皮发麻。作为一个小团队的负责人&#xff0c;我经常需要处理客户咨询、内部沟通、会议邀请等各种类型的邮件。最…...

ssm+java2026年毕设私人医生预约系统【源码+论文】

本系统&#xff08;程序源码&#xff09;带文档lw万字以上 文末可获取一份本项目的java源码和数据库参考。系统程序文件列表开题报告内容一、选题背景关于在线医疗问诊服务的研究&#xff0c;现有研究主要以综合性互联网医疗平台的宏观发展分析为主&#xff0c;专门针对基于SSM…...

开源电子书工具:如何用鸿蒙系统打造专属个性化阅读空间

开源电子书工具&#xff1a;如何用鸿蒙系统打造专属个性化阅读空间 【免费下载链接】legado-Harmony 开源阅读鸿蒙版仓库 项目地址: https://gitcode.com/gh_mirrors/le/legado-Harmony 你是否曾因阅读应用充斥广告而烦躁&#xff1f;是否渴望完全掌控自己的阅读体验&am…...

模型微调集成:OpenClaw调用Qwen3-32B的LoRA适配器实战

模型微调集成&#xff1a;OpenClaw调用Qwen3-32B的LoRA适配器实战 1. 为什么需要本地微调模型接入&#xff1f; 去年我在处理一批医疗文献自动化摘要任务时&#xff0c;发现通用大模型对专业术语的理解总差那么一口气。当模型把"冠状动脉搭桥术"解释成"心脏旁…...

工业视觉代码交付总被退回?(甲方验收必查的6项硬性指标:实时性≤35ms、重复精度±0.015px、抗电磁干扰日志完备性)

第一章&#xff1a;工业视觉代码交付失败的典型归因分析工业视觉系统在产线部署阶段频繁遭遇代码交付失败&#xff0c;其根本原因往往并非算法性能不足&#xff0c;而是工程化落地环节存在系统性疏漏。以下从环境适配、数据闭环、接口契约三个维度展开典型归因。运行时环境不一…...

2026 LinkedIn账号安全机制分析与稳定运营实践

随着 LinkedIn 风控机制的不断完善&#xff0c;账号的登录环境、行为模式以及网络条件&#xff0c;都会直接影响账号的稳定性。对于需要长期运营账号的用户来说&#xff0c;理解平台的风控逻辑&#xff0c;比单纯增加操作频率更为重要。本文将从使用场景、常见环境问题、账号行…...