VirtualBox 安装Armbian x86 虚拟机

步骤

  1. 到Armbian 官网下载Armbian UEFI x86 系统镜像;
  2. 转换img 镜像文件到vdi 虚拟硬盘文件;
  3. 新建并启动虚拟机系统;
  4. 配置命令行字体;
  5. 启动ssh 连接宿主机;

1、系统镜像

听说VirtualBox 不支持在x86 宿主机上运行ARM 系统虚拟机,这种活儿要去用QEMU,所以算了,就用x86 版的Armbian 系统。官方镜像下载地址:https://armbian.com/boards/uefi-x86

注意,它这个x86 的系统实际是64 位的。有好几种系统版本可选,我选了ubuntu 26.04 Minimal 版本,就是只有命令行,没有桌面GUI 环境。反正可以在宿主机上开ssh 遥控,图形界面基本用不上。

下载后是个xz 压缩包,解压出系统镜像img 文件,然后下一步。

2. 转换vdi 虚拟磁盘文件

VirtualBox 不能直接使用img 文件,可以把img 转换成vdi 虚拟磁盘文件。找到本地VirtualBox 的安装位置,默认应该是C:/Program Files/Oracle/VirtualBox,在这里启动终端,调用它自带的VBoxManage.exe。默认这个路径不会加进PATH,所以不能直接在命令行里执行。

下面是把img 转换成vdi 的命令:

shell 复制代码
./VBoxManage convertfromraw --format VDI <Armbian_xxx.img> <Armbian.vdi>

上面两个参数分别对应img 文件的路径和vdi 文件的输出路径。转换之后,再设置一下虚拟硬盘的最大容量:

shell 复制代码
./VBoxManage modifymedium disk <Armbian.vdi> --resize 8192   # 单位 MB,即 8 GB

没有图形界面的话硬盘8G 应该够用了,系统启动以后显示占用46% 空间。有图形界面的话不好说,可能会需要16G 以上吧。vdi 文件是按需动态扩容的,所以这里改最大容量不会立即让文件膨胀成8G。听说还有一条指令可以一次完成转换和扩容,没试过:

shell 复制代码
./VBoxManage clonehd <Armbian_xxx.img> <Armbian.vdi> --format VDI --resize 8192

3. 新建虚拟机

在VirtualBox 先到设置里把界面模式切换到专家模式,不然很多选项就给隐藏了。

然后新建一个Linux 虚拟机,发行版选择Other Linux,版本Linux (64bit)。注意,它这个UEFI x86 的系统实际是64 位的,选了32 位的话会无法启动。不知道发行版能不能选Ubuntu。

之后内存至少分配1G,CPU 至少分配两个核心吧,单核也能用。记得勾选"使用EFI"。把之前转换好的vdi 文件放进虚拟机名称对应的文件夹里,没有的话自己新建一个文件夹。然后选择已有的虚拟硬盘文件,列表里没显示的话先注册介质。

不用管无人值守安装那些菜单,直接取消勾选。这样配置完以后应该就可以启动了。

4、 启动后系统配置

第一次启动系统后会配置一些系统时区之类的东西,可以全部按默认,然后让创建root 密码和一个用户,建议创建完以后把这些信息存到一个txt 里,免得一段时间没玩就给全忘了。我觉得最好别用和宿主机一样的密码,这种地方肯定随便弄个简单的弱密码就行了,比如我设置的是hi。

进系统以后可能会发现字体看着有点小,反正我2k 屏上看着稍微有点不愉快,所以要设置一下字体,用如下命令:

shell 复制代码
sudo dpkg-reconfigure console-setup

打开配置界面,编码默认UTF-8 ,字符集默认Guess optimal character set ,字体可以自己重选一个,听说大家推荐Terminus ,后面选择字体大小,我选了14x28,显示效果很适合老年人。我第一次运行这个的时候报了错没成功,之后重新执行一次就好了。这个设置是永久的,重启后保留。

然后肯定要装个fastfetch:

shell 复制代码
sudo apt install fastfetch

输出的系统信息如下:

5、宿主机ssh 连接

可以先把系统自带的包都升级一下:

shell 复制代码
sudo apt update
sudo apt upgrade

升完以后可能会需要重启系统,建议在这里先关闭虚拟机。为了之后让宿主机能连到ssh,需要把虚拟机的22 端口映射到宿主机。这个当然要在VirtualBox 上设置,开着机设置不了。

打开设置 > 网络,点开端口转发,在里面加一条SSH 的端口映射:

主机端口可以随便设置,只要没被别的东西占用。然后启动虚拟机,启动ssh 服务,并且设置以后系统启动时自动启动ssh:

shell 复制代码
# 安装ssh 服务器,实际应该不用装,已经自带了
sudo apt install openssh-server -y

# 启动 SSH 服务
sudo systemctl start ssh

# 设置开机自启
sudo systemctl enable ssh

这下再打开宿主机上的命令行,就可以连接ssh 了,完工。

shell 复制代码
ssh chris@127.0.0.1 -p 6022
相关推荐
Web3探索者1 天前
可视化服务器管理和传统命令行区别是什么?新手教程:Linux 运维到底该用图形界面还是 SSH 命令行?
linux·ssh
zylyehuo1 天前
Linux系统中网线与USB网络共享冲突
linux
Sokach10152 天前
Linux Shell 脚本从零到能用:一个新手的一天学习总结
linux
AlfredZhao3 天前
Docker 容器时区不对,`timedatectl` 不存在怎么办?
linux·timezone
zzzzzz3104 天前
9K Star 炸裂开源!这个 C 语言写的代码知识图谱,把 Linux 内核索引压缩到了 3 分钟
linux·服务器·sql
XIAOHEZIcode4 天前
Linux系统鼠标偏移常见原因以及修复方案
linux·运维·游戏
A小辣椒6 天前
TShark:Wireshark CLI 功能
linux
A小辣椒6 天前
TShark:基础知识
linux
AlfredZhao7 天前
OCI 明明分配了 200G 系统盘,为什么 df 只看到 30G?
linux·oci
AlfredZhao7 天前
vi 删除指定范围的行,不用再反复按 dd
linux·vi