MacOS本身不支援systemd,所安裝的Podman Desktop的Podman machine虛擬機器有支援systemd,過程是:macOS → Podman CLI / Podman Desktop → Podman Machine(Linux VM)→ systemd → Quadlet
實際操作方式
podman machine init
podman machine start
確認:
tsaijemmy ~ % podman machine list
NAME VM TYPE CREATED LAST UP CPUS MEMORY DISK SIZE
podman-machine-default applehv 15 months ago Currently running 5 3.725GiB 93GiB
tsaijemmy ~ % podman info
Client:
APIVersion: 5.4.2
略...
tsaijemmy ~ % podman machine ssh
Connecting to vm podman-machine-default. To close connection, use `~.` or `exit`
Fedora CoreOS 41.20250215.3.0
Tracker: https://github.com/coreos/fedora-coreos-tracker
Discuss: https://discussion.fedoraproject.org/tag/coreos
Last login: Sat Sep 5 07:43:03 2026 from 192.168.127.1
root@localhost:~# pwd
/root
ssh進去後預設user是root,而Podman Desktop的Podman Machine初建立除了root帳號,也預設建立了rootless帳號,username是core。
tsaijemmy ~ % podman machine ssh --username core
Connecting to vm podman-machine-default. To close connection, use `~.` or `exit`
Fedora CoreOS 41.20250215.3.0
Tracker: https://github.com/coreos/fedora-coreos-tracker
Discuss: https://discussion.fedoraproject.org/tag/coreos
Last login: Sat Sep 5 07:43:38 2026 from 192.168.127.1
core@localhost:~$ pwd
/var/home/core
core@localhost:/var/home$ ls -l /home
lrwxrwxrwx. 2 root root 8 Aug 2 2022 /home -> var/home
可以看出Podman machine的home目錄與一般Linux不同,是掛在/var/home下,而/home是符號連結/var/home。
若不想用core這個rootless帳號,可以參照第四天的文章建立一個appuser帳號,差別是在RedHat上的/home是實際目錄,而Podman machine的作業系統是Fedora,採用了不可變(Immutable)的唯讀根檔案系統設計,所有使用者資料與狀態都強制規範存放在可讀寫的/var目錄下,為了相容傳統 Linux 的習慣,才將根目錄下的/home製作成捷徑指向 /var/home。
而先前有說我的Mac的CPU是Apple M4(linux/arm64),要打包給支援x86 CPU架構的RedHat,需加--platform linux/amd64參數。那在本機啟動的Podman Machine,照理說是應該只能支援arm64架構,但事實可以支援amd64。
tsaijemmy ~ % podman machine inspect
[
{
"ConfigDir": {
"Path": "/Users/tsaijemmy/.config/containers/podman/machine/applehv"
},
"ConnectionInfo": {
"PodmanSocket": {
"Path": "/var/folders/rd/43m0t2493cb4x8vk1sn4262c0000gn/T/podman/podman-machine-default-api.sock"
},
"PodmanPipe": null
},
"Created": "2025-05-21T13:40:50.918772+08:00",
"LastUp": "2026-09-04T17:30:38.141468+08:00",
"Name": "podman-machine-default",
"Resources": {
"CPUs": 5,
"DiskSize": 93,
"Memory": 3814,
"USBs": []
},
"SSHConfig": {
"IdentityPath": "/Users/tsaijemmy/.local/share/containers/podman/machine/machine",
"Port": 50416,
"RemoteUsername": "core"
},
"State": "running",
"UserModeNetworking": true,
"Rootful": true,
"Rosetta": true
}
]
主要看Rosetta是否為true,就能支援amd64架構。再下指令:podman machine ssh uname -m應該是得到aarch64,它就是arm64,ARM64是大眾通稱,而AArch64是官方與技術底層的正式名稱。
其架構關係是:
Apple M4
│
└── arm64
│
└── Podman Machine
Fedora CoreOS aarch64
│
├── linux/arm64 image ← 原生,建議
│
└── linux/amd64 image ← 需要 Rosetta/QEMU 等模擬
關於AMD64與ARM64的差異如下:
ARM64 與 AMD64 最核心的差別在於微處理器架構(ISA)的不同。
這兩種架構在設計理念、硬體特性以及應用場景上有很大的本質差異:
| 特性 | AMD64 (x86-64/x64) | ARM64 (AArch64) |
|---|---|---|
| 指令集設計 | CISC (複雜指令集)每個指令較大,單個指令可執行複雜任務。 | RISC (精簡指令集)每個指令簡單、長度固定,執行速度極快。 |
| 主要擁有者 | Intel、AMD (x86 專利交織) | ARM 公司 (僅授權架構,如 Apple、Qualcomm) |
| 能源效率 | 耗電量高、發熱量大,通常需要主動散熱。 | 極省電、發熱量低,適合長時間續航。 |
| 效能表現 | 單核心極致效能強,特別擅長複雜的大型運算。 | 每瓦效能(Perf-per-watt)極高,多核心擴展性好。 |