【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连接)。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

6. type *(0)的神奇之处

表达式 type * (0) 在 C/C 编程中是一个常见的技巧,通常用于内核编程和一些系统编程场景中。这种语法形式的主要作用是获取特定类型指针的虚拟地址 0,从而进行类型转换或执行其他计算。接下来我们会深入分析这个表达式的具体含义和应用。 1. 表达式的基…

GPT4o编写步进电机控制代码

我给出的要求如下: 基于STM32F407 HAL库,写一个步进电机控制程序,需要控制8个步进电机,我会给出描述步进电机的结构体变量,基于这些变量需要你做出以下功能,电机脉冲通过定时器中断翻转脉冲引脚的电平实现…

安科瑞电气防火在线保护器 ASCP210系列适用于汽车充电桩

安科瑞电气防火限流式保护器 传统保护方式采用电磁脱扣式断路器,检测到短路时,脱扣器动作,分断时间在毫米级,无法阻断短路电流。较好的方式是采用响应速度快的限流技术和器件。 电弧也有克星,可以微秒被扼杀在摇篮中&…

Vscode——如何实现 Ctrl+鼠标左键 跳转函数内部的方法

一、对于Python代码 安装python插件即可实现 二、对于C/C代码 安装C/C插件即可实现

【MySQL进阶之路】数据的查询

目录 建表 全列查询 指定列查询 查询表达式 指定别名 结果去重 WHERE 条件查询 模糊查询 结果排序 筛选分页结果 不同子句的执行顺序 个人主页:东洛的克莱斯韦克-CSDN博客 建表 CREATE TABLE grades( id INT UNSIGNED PRIMARY KEY AUTO_INCREMENT, name …

视觉巡线小车(STM32+OpenMV)——技术总结

在现代机器人技术中,视觉巡线是一种常见的导航方式,它允许机器人通过识别和跟踪地面上的线路来自主导航。本文将总结使用STM32微控制器和OpenMV视觉模块来实现视觉巡线小车的关键技术和步骤。 引言 视觉巡线小车是一种基于视觉识别技术的智能机器人&am…

CF 966 Div3 F. Color Rows and Columns

原题链接:Problem - F - Codeforces 题意:多测,每组测试数据给出n和k,n代表有n个长方形,k代表需要的到k分,每个长方形都有宽和高,每次可以填涂一个格子,如果填满一列或者一行就可以…

前端技巧——复杂表格在html当中的实现

应用场景 有时候我们的表格比较复杂,表头可能到处割裂,我们还需要写代码去完成这个样式,所以学会在原生html处理复杂的表格还是比较重要的。 下面我们来看这一张图: 我们可以看到有些表头项的规格不太一样,有1*1 2*…

雅菲奥朗 FinOps 认证培训:开启企业云财务管理转型之路

前言: 在当今快速变化的商业环境中,企业面临着前所未有的IT财务挑战。随着云计算和数字化转型的推进,传统的财务管理方式已经不能满足“企业上云”的需求。FinOps,即“云财务管理”应运而生,成为帮助企业实现IT财务流…

Oracle Index Partition索引分区的管理

Oracle索引分区的管理是数据库管理中的重要任务之一,它涉及索引的创建、维护、重建以及优化等多个方面。以下是对Oracle索引分区管理的详细解析: 一、索引分区的概念 索引分区(Partitioned Index)是针对分区表而言的&#xff0c…

虚幻引擎游戏开发 | 程序化生成道具位置 Randomize Height

当地图上有无数个收集物【如水晶】,一键随机化高度 应用前 应用后 这时候水晶的高度是离散型地在0和110两个数中平均概率地选择。 如果要有权重地分布高度,减少高位水晶的比例(由于过多连续跳跃会让玩家无聊和难以持续专注)可以加…

R语言统计分析——回归中的异常观测值

参考资料:R语言实战【第2版】 一个全面的回归分析要覆盖对异常值的分析,包括离群点、高杠杆点和强影响点。这些数据点需要更深入的研究,因为它们在一定程度上与其他观点不同,可能对结果产生较大的负面影响。 1、离群点 离群点是指…

[ACL 2024] Revisiting Knowledge Distillation for Autoregressive Language Models

Contents IntroductionMethodRethinking Knowledge Distillation for Autoregressive LMsImproving Knowledge Distillation with Adaptive Teaching Modes ExperimentsReferences Introduction 作者提出 Autoregressive KD with Adaptive Teaching Modes (ATKD),通…

拦截器实现 Mybatis Plus 打印含参数的 SQL 语句

1.实现拦截器 package com.sample.common.interceptor;import com.baomidou.mybatisplus.extension.plugins.inner.InnerInterceptor; import lombok.extern.slf4j.Slf4j; import org.apache.ibatis.executor.Executor; import org.apache.ibatis.mapping.BoundSql; import or…

java之类和对象的介绍

1.面向对象和面向过程的概念: 面向对象:面向对象是解决问题的一种思想,主要依靠对象之间的交互完成一件事。 面向过程:注重完成一件事情的过程,后续代码维护扩展较为麻烦。 以洗衣服为例,面向对象为传统…

模糊测试技术与高效模糊测试策略设计(第一篇)

一、概述 模糊测试(Fuzzing)是一种自动化测试技术,通过向目标软件输入大量随机或异常数据来发现潜在的安全漏洞。这种技术在软件安全研究中至关重要,尤其适用于发现未知漏洞。本文将详细讲解如何使用模糊测试工具,以及…

软件测试 |属性获取与断言

1.断言简介 断言时候UI自动化测试的三要素之一,是UI自动化测试中不可或缺的部分。我们使用定位器到定位元素后,通过测试脚本进行业务交互操作时,想要验证交互操作过程中的结果正确性就需要用到断言。 2.常规的UI自动化测试中使用的断言 在…

vue3基础ref,reactive,toRef ,toRefs 使用和理解

文章目录 一. ref基本用法在模板中使用ref 与 reactive 的区别使用场景 二. reactive基本用法在模板中使用reactive 与 ref 的区别使用场景性能优化 三. toRef基本用法示例在组件中的应用主要用途对比 ref 和 toRef 四. toRefs基本用法示例在组件中的应用主要用途对比 ref 和 t…

基于UE5和ROS2的激光雷达+深度RGBD相机小车的仿真指南(一)---UnrealCV获取深度+分割图像

前言 本系列教程旨在使用UE5配置一个具备激光雷达深度摄像机的仿真小车,并使用通过跨平台的方式进行ROS2和UE5仿真的通讯,达到小车自主导航的目的。本教程使用的环境: ubuntu 22.04 ros2 humblewindows11 UE5.4.3python8 本系列教程将涉及以…

二叉树中的奇偶树问题

目录 一题目: 二思路汇总: 1.二叉树层序遍历: 1.1题目介绍: 1.2 解答代码(c版): 1.3 解答代码(c版): 1.4 小结一下: 2.奇偶树分析&#xf…