分享如何在iPad善用UTM跑Linux虚拟机,执行Docker服务,并介绍外部SSH连线,以及UTM
与iOS共享资料夹的方法。
板上已经有大大分享过许多UTM的使者用报告,惟其多专注在Windows虚拟机方面,本篇我
将讨论UTM搭配Linux虚拟机的用途。
缘由
UTM为基于QEMU开发的开源虚拟机软件,提供macOS与iOS版本。UTM有在App Store上架,
该版本称作“UTM SE”,不需要AltStore侧载也不用越狱就能用,但缺点就是非常的慢。
iOS没有越狱就无法使用Hypervisor,虚拟机执行效率十分低落。这导致UTM装图形接口完
全没有实用性,宛如东南苦行山。即使是最轻量的Alpine Linux,开机到进XFCE4桌面10
分钟,开启Firefox一个YouTube网页10分钟还跑不出来...就算你的iPad处理器再强也没
有多大用处。
https://i.imgur.com/JGVCgBe.jpg
不过,UTM跑纯文字Linux虚拟机倒还凑合,每个指令的回应速度约5秒,所以是能够跑一
些纯文字工具的,例如ffmpeg(批次转档影片)、ImageMagick(批次转档照片)、
NodeJS、Python-pip、Rust,还有Docker服务。
只要设定资料夹共享,就能把iOS的档案丢到虚拟机处理再取出来。
左边是虚拟机内部的档案管理员,右边为iPad的档案APP,共享资料夹的档案会同步。
https://i.imgur.com/0xKafW0.jpg
此外,UTM的虚拟机可作为另一个APP“iSH Shell”的替代品。iSH Shell模拟了一个x86
的Alpine Linux环境,虽然启动速度很快,但它是32位元又有一堆Bad System Call的bug
,故透过UTM安装Linux虚拟机可获得更完整的Linux环境,起码QEMU对x86指令的支援度要
比iSH Shell好多了。
环境
- iPad Air 6 M2
- RAM 8GB
- UTM SE 4.5.4
- Alpine Linux 3.20
安装Alpine Linux
选用Alpine Linux是因为它体积小,开机速度快,约20分钟就能完成系统安装。如果要装
Ubuntu Server也是可以啦,但是安装时间较长。
1. 下载x86_64版本映像档
https://alpinelinux.org/downloads/
2. 安装UTM APP,新增Linux虚拟机。RAM至少512MB,储存空间至少8GB,CPU至少分配2核
心。
https://apps.apple.com/tw/app/utm-se-retro-pc-emulator/id1564628856
3. 将虚拟机开机,执行seupt-alpine指令稿,依照指示完成系统安装。
4. 这样就能跑Docker了:
sudo apk add docker docker-cli-compose
sudo addgroup $USER docker
sudo rc-update add docker
sudo rc-service docker start
https://i.imgur.com/W5Evcm9.jpg
设定外部SSH存取
iSH Shell的终端机界面方便我们复制文字执行指令。
UTM虚拟机默认网络无法从外部存取。编辑Alpine Linux虚拟机网络设定,新增通讯埠转
送,把虚拟机内部的22通讯埠导向localhost的2022通讯埠,这样虚拟机的SSH服务才能从
外部连线。
https://i.imgur.com/ybyhBWY.jpg
UTM放在后台容易被iOS系统中止。如果是iPad的话使用“滑动置前”或“幕前调度”开启
iSH Shell视窗即可保证两个APP不会被系统中止。在iSH Shell的视窗,输入ssh
user@localhost -p 2022指令登入。
https://i.imgur.com/iQP25z7.jpg
iOS与UTM虚拟机共享资料夹
编辑UTM虚拟机,到共享资料夹启用VirtFS (9Pfs),挂载iOS的“下载”资料夹给虚拟机
存取。
https://i.imgur.com/dISOutC.jpg
然后在虚拟机内执行指令,挂载iOS的资料夹:
sudo mount share -t 9p /mnt