看到标题是不是就觉得这是瞎折腾?
没错。如果树莓派4b中安装了ESXi on ARM,在ESXi中再安装Raspios,性能肯定不如直接使用树莓派4b裸装Raspios。
但是如果你使用一台8G版本树莓派4b,单独用一个Raspios又有点浪费了。可以试着在ESXi中多装几个Arm Linux系统,比如CentOS,Raspios,Ubuntu。然后可以在ESXi中随意切换虚拟机开关机。甚至可以同时运行几个Arm Linux系统,榨干它的性能。ESXi是可以超配的。如下图(各个虚拟的Linux空载时)。另外,还可以用到虚拟机的快照,克隆等功能,方便在上面开发测试软件,比如Pi-hole之类的。
Ubuntu,PhotonOS,Debian,CentOS在https://flings.vmware.com/esxi-arm-edition中附带的Pdf文档都说明了是支持并验证过的,方法也就是挂载ISO文件,去安装虚拟机。我就不做演示了。下面演示下装Raspios的过程。
因为官方下载到的2020-05-27-raspios-buster-arm64.img 并不默认支持EFI启动,而ESXi on Arm又只支持EFI启动,所以无法直接使用该镜像,我们要借助Debian的rescue mode来解决这个问题。
1. 下载raspios的img。使用StarWind V2V Converter转成vmdk(2个文件,上传至ESXi的datastore后显示成1个)。
2. 下载debian-10.6.0-arm64-netinst.iso,上传至datastore。
3. 创建虚拟机,类型Linux-Debian 10 x64。删掉原有虚拟的硬盘,添加上面转过的vmdk作为硬盘。光驱里加载Debian的iso文件,记得勾选上已连接,并去虚拟机选项里把引导选项的强行执行EFI设置的下次引导钩上。然后保存。cpu可以分2个核,内存1G或者2G都可以。网卡确保是能连外网的。
4. 启动虚拟机,去EFI设置的boot选项里,选择光驱启动 EFI DVD/CDROM。
5. 加载Debian,选择Advanced options,然后Rescue mode。
6. 语言,国家,键盘都默认即可。
7. 随意设置一个Hostname, Domain name, time zone.
8. Device to use as root file system 选择 /dev/sda2,一定不要选错。然后Mount separate /boot选Yes。在/dev/sda2中运行shell。
9. Continue。
10. 接下来在下方依次输入下面几行命令,注意因为需要联网下载,所以每一步都需要很长时间(根据网络情况而定)。如果某一步没有成功,一定要再执行一遍确保成功了再下一行。如果提示空间不足之类的,那就apt autoremove; apt autoclean之类的试试。
apt update
apt install linux-image-arm64
apt install grub-efi-arm64
grub-install --efi-directory=/boot/
update-grub
exit
整个过程其实就是通过debian的rescue去给raspios加了grub-efi启动选项支持。
11. 关闭虚拟机。 把Debian的ISO虚拟光驱断开连接并且去掉打开电源时连接。
12. 开机,等待第一个启动选项自动加载。完成后就看到熟悉的树莓派系统了。
13. 初始化设置。先不要更新,因为应该会遇到空间不足的问题。
14. 关机。加大硬盘的容量,比如扩大到20G。
15. 保存,开机。进入系统后去sudo raspi-config。选择第7项 Advanced Options。
16. 选择A1 Expand Filesystem。
17. 然后重启检查下硬盘是不是扩大了。
18. 可以apt update或upgrade啦。
19. 如果想安装open-vm-tools,可以按照ESXi-Arm-Fling-Doc.pdf文档中的第12步操作编译,该文档是Ubuntu中的步骤,Debian同样适用。