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

Virtualbox 安装 ubuntu + qemu

0. 前言

关于 Virualbox 安装虚拟机的优秀文章太多了,笔者主要是着重梳理一些安装小细节,利己利人!!

如果需要保姆式的安装教程,可以查看后续的参考链接。

1. VirtualBox 的安装

直接去官网搜索最近的软件即可:Downloads – Oracle VM VirtualBox

2. unbuntu 镜像

直接去官网搜索最新的镜像: https://ubuntu.com/download/desktop

有几个版本:桌面、服务器 等等。

建议选择桌面版本,VirtualBox 启动的时候,可以选择要不要显示桌面。

3. VirtualBox 创建虚拟机

在VirtualBox 安装完成、ubuntu 镜像下载完成后,就正式开始虚拟机的创建,点击新建按钮,输入虚拟机的名称(根据个人喜好),选择要安装虚拟机的位置,选择虚拟光盘,勾选跳过自动安装。

接下来选择分配给虚拟机的memory、CPU、disksize 等属性,最后点完成。

4. 启动虚拟机

第一次可以选择正常启动,进入之后安装 ubuntu 的流程。后续 openssh 安装完、网卡创建好了之后,就可以通过 ssh 连接虚拟机。

5. 设置虚拟机网络

默认情况下,虚拟机在创建的时候,会默认创建 NAT 网络:

这与主机共享IP 地址,访问外部以太网网络连接。也就是说,默认虚拟机是可以向外访问。

但,如果需要向虚拟机内部访问,则需要新建一个网卡:

这里选择 Host-only 网络,这样后面主机就可以通过虚拟机的网卡2 的IP 地址访问虚拟机。

网卡2 创建好后,就可以启动虚拟机,通过 ifconfig 确认是否有网卡2 的IP 地址:

6. 安装 openssh-server

尽快执行完这一步,主机就可以通过 ssh 访问虚拟机,虚拟机的桌面也不需要打开了。

sudo apt-get update
sudo apt-get install openssh-server

7. 虚拟机开机默认是root

sudo vim /etc/ssh/sshd_config

文件中找到 PermitRootLogin项,并修改为:

PermitRootLogin yes

重启SSH服务以应用更改:

sudo systemctl restart sshd

请注意,出于安全考虑,通常不建议允许 root 用户直接登录,如果误删除系统文件,那可能需要从头再来。

8. 准备 qemu 环境

8.1 下载 kernel

git clone https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git

交叉编译工具 aarch64 可以通过如下命令安装:

sudo apt-cache search aarch64
sudo apt-get install gcc-aarch64-linux-gnu  //默认会安装最新的 aarch64sudo apt-get install gcc

其他工具:

sudo apt-get install flex
sudo apt-get install bison
sudo apt-get install openssl
sudo apt-get install libssl-dev

编译:

make ARCH=arm64 CROSS_COMPILE=aarch64-linux-gnu- defconfig
make ARCH=arm64 CROSS_COMPILE=aarch64-linux-gnu- -j12

8.2 下载 make_rootfs

https://github.com/vernon2gh/make_rootfs/tree/main

编译文件系统:

./make_rootfs.sh -a arm64

8.3 下载 qemu

sudo apt install qemu-system-arm

运行 qemu:

qemu-system-aarch64 -M virt -cpu cortex-a57 -hda rootfs.ext4 -kernel Image -append "root=/dev/vda rw console=ttyAMA0" -nographic

8.4 脚本包装

#!/bin/bashif [ ! -e "rootfs.ext4" ]
thenln -s ../make_rootfs/out/rootfs_arm64.ext4 ./rootfs.ext4
fiif [ ! -e "Image" ]
thenln -s ../linux/arch/arm64/boot/Image ./Image
fiqemu-system-aarch64 -M virt -cpu cortex-a57 -hda rootfs.ext4 -kernel Image -append "root=/dev/vda rw console=ttyAMA0" -nographic

参考:

https://blog.csdn.net/weixin_44205779/article/details/107456016

相关文章:

  • 【WRF理论第四期】namelist.wps文件详述
  • 前端工程化工具系列(十)—— Browserslist:浏览器兼容性配置工具
  • VS环境Python:深度探索与实用指南
  • 在Nginx中配置php程序环境。
  • Kafka之Broker原理
  • 8.3 Go 包的组织结构
  • 轻松搞定阿里云域名DNS解析
  • cpp--lua--cpp执行lua
  • Qt/C++音视频开发76-获取本地有哪些摄像头名称/ffmpeg内置函数方式
  • 深度解读ChatGPT基本原理
  • QT Udp广播实现设备发现
  • Camtasia Studio怎么自动加字幕呢,Camtasia Studio有什么功能呢
  • 中介子方程七
  • 【西瓜书】4.决策树
  • 开发指南028-生成二维码
  • ABAP的include关键字,Java的import, C的include和C4C ABSL 的import比较
  • Android 架构优化~MVP 架构改造
  • C++回声服务器_9-epoll边缘触发模式版本服务器
  • eclipse(luna)创建web工程
  • Electron入门介绍
  • emacs初体验
  • es的写入过程
  • HashMap ConcurrentHashMap
  • Java精华积累:初学者都应该搞懂的问题
  • Js基础知识(一) - 变量
  • js中的正则表达式入门
  • MySQL几个简单SQL的优化
  • Python socket服务器端、客户端传送信息
  • RxJS 实现摩斯密码(Morse) 【内附脑图】
  • scala基础语法(二)
  • scrapy学习之路4(itemloder的使用)
  • SQLServer之创建显式事务
  • Vue UI框架库开发介绍
  • 基于Javascript, Springboot的管理系统报表查询页面代码设计
  • 嵌入式文件系统
  • 悄悄地说一个bug
  • 深入体验bash on windows,在windows上搭建原生的linux开发环境,酷!
  • 为视图添加丝滑的水波纹
  • 学习JavaScript数据结构与算法 — 树
  • 在Docker Swarm上部署Apache Storm:第1部分
  • 在Mac OS X上安装 Ruby运行环境
  • 最简单的无缝轮播
  • puppet连载22:define用法
  • 大数据全解:定义、价值及挑战
  • ​​​【收录 Hello 算法】10.4 哈希优化策略
  • # 利刃出鞘_Tomcat 核心原理解析(八)-- Tomcat 集群
  • #Linux(Source Insight安装及工程建立)
  • #vue3 实现前端下载excel文件模板功能
  • $.ajax()参数及用法
  • (4)(4.6) Triducer
  • (Bean工厂的后处理器入门)学习Spring的第七天
  • (Java)【深基9.例1】选举学生会
  • (备份) esp32 GPIO
  • (超简单)使用vuepress搭建自己的博客并部署到github pages上
  • (附源码)spring boot公选课在线选课系统 毕业设计 142011