作者 ivon852 (內容農場殺手)
標題 [心得] iPad UTM安裝Linux虛擬機跑Docker
時間 Wed Sep  4 10:01:59 2024


分享如何在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/
downloads | Alpine Linux
Alpine Linux ...

 

2. 安裝UTM APP,新增Linux虛擬機。RAM至少512MB,儲存空間至少8GB,CPU至少分配2核
心。
https://apps.apple.com/tw/app/utm-se-retro-pc-emulator/id1564628856
‎在 App Store 上的「UTM SE: Retro PC emulator」 ‎UTM SE is a PC emulator that allows you to run classic software and old-school games.
* Supports both VGA mode for graphics and terminal mode for text-only operating systems
* Emulates x86, ARM, PPC, ...

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

--
原創梗圖系列 https://i.imgur.com/Y10Cw4n.jpg https://i.imgur.com/FqRAWTs.jpg
https://i.imgur.com/Y1pYVqm.png https://i.imgur.com/UKvi40X.png
https://i.imgur.com/PdAKXa0.png

--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 114.39.126.122 (臺灣)
※ 作者: ivon852 2024-09-04 10:01:59
※ 文章代碼(AID): #1crx-WKt (MobileComm)
※ 文章網址: https://www.ptt.cc/bbs/MobileComm/M.1725415328.A.537.html
Lyeuiechang: 推企鵝
JIT 開下去 UTM 速度快七到八倍,但是如果沒有漏洞的情況下非常不實用,因為 app 划掉關掉之後就要重新接電腦啟動 JIT,所以研究 SE 還是有用途在的1F 09/04 10:15
hayato01: 原po這系列文章值得精華區收藏5F 09/04 10:47
GiPaPa: 這個太強了 很多東西可以從這篇延伸去搞6F 09/04 11:41
hgs1906: 推 有趣、實用7F 09/04 11:59
musashi023: 硬核8F 09/04 12:06
gaiaesque: 猛9F 09/04 12:45
Luos: 可以跑docker 耶10F 09/04 13:05
gary8442: 強11F 09/04 13:14
stark5566: 推教學,雖然我不是用蘋果12F 09/04 13:36
applewarm: 推資料13F 09/04 14:38
sam749: 推14F 09/04 15:51
powergreen: 推15F 09/04 16:18
betterbutter: 推16F 09/04 16:38
jhjhs33504: 推拓海 還能再戰幾年?17F 09/04 17:18
wmdlifecoba: Hardcore18F 09/04 17:31
phoque: alpine還要裝20分鐘 效能是真的差19F 09/04 19:37
nw0309: 看的過癮20F 09/04 20:21

--
作者 ivon852 的最新發文:
點此顯示更多發文記錄