macUSB 開源 macOS 啟動隨身碟製作工具:把 createinstallmedia 的跨代雷包成圖形流程

macUSB 是 Swift 原生開源的 macOS 啟動隨身碟製作工具,把 createinstallmedia 包成圖形化流程,內建從蘋果伺服器下載安裝檔的 Downloader,支援從 macOS Tahoe 26 到 Mac OS X Tiger 10.4 的跨代相容。本篇從原始碼、Issues 與同類工具對比,拆解它的簽章機制、鏡像來源與格式化資料風險。

用 AI 摘要這篇文章:

把 macOS 安裝碟做成可開機 USB 這件事,蘋果官方給的答案一直是同一行終端指令:sudo /Applications/Install\ macOS\ *.app/Contents/Resources/createinstallmedia --volume /Volumes/MyVolume。指令本身沒問題,問題在於它假設你拿得出一台能跑、能簽、能識別那個 installer app 的 Mac。當你拿著 2025 年的 M4 Mac 想幫一台 2014 年的 Intel MacBook 做 macOS Catalina 安裝隨身碟,這條指令經常卡在憑證過期、代碼簽章校驗失敗那一關。TechMoon 這篇要評的 macUSB(GitHub:Kruszoneq/macUSB),就是一位波蘭開發者 Krystian Pierz 為了解決這個反覆出現在論壇的「跨代製作安裝碟」問題而打造的開源 macOS 圖形化工具。它的設計思路與我們之前評過的 DFU-Tools 把 Apple Configurator 的 DFU 恢復流程包成 macOS 應用是同一條路:不繞過蘋果底層,而是把會卡住人的指令重新包裝。

一句話定位:macUSB 是用 Swift 原生寫的 macOS 應用程式,把 createinstallmedia 那條容易出錯的終端流程包成圖形化精靈,加上內建的 macOS 安裝檔下載器(直接從蘋果伺服器拉取),以及一份一路覆蓋到 Mac OS X Tiger 10.4 的版本相容表。它適合「新 Mac 做舊系統碟」這種特別容易翻車的場景,不適合只想平順升級到最新 macOS 的一般使用者。

本篇判斷:如果你是會在終端機敲 createinstallmedia 但每次都被憑證或簽章擋下來的進階使用者,macUSB 值得裝一份在工具箱裡。如果你只會用系統更新和「回復模式」,它對你太重,一般日常升級用不到。

macUSB 官方網站 kruszoneq.github.io/macUSB 的產品登入頁Pin
macUSB 官方網站。除了 GitHub Releases,作者也維護一份 GitHub Pages 上的產品頁與 PowerPC 開機指南。

先和三個老方法擺在一起看:macUSB 多解決了什麼

macUSB 進場之前,macOS 啟動隨身碟這個需求已經有三條主要路徑,每一條都有它的盲點。把四種方案放在同一張表上,差異就清楚得多。

方案型態跨代處理(新 Mac 做舊 macOS 碟)取得 macOS 安裝檔簽章 / 公證狀態
createinstallmedia(蘋果官方)終端指令容易遇到憑證過期、代碼簽章驗證失敗需自行從 App Store 或軟體更新下載蘋果內建
balenaEtcher跨平台圖形化(TypeScript / Electron)主要為 .img / .iso 燒錄設計,不會幫你處理 macOS installer app 的簽章鏈無,僅燒錄你給它的映像檔Apache-2.0 開源
TINU開源 macOS 圖形化(Swift)理念接近 macUSB,但專案已封存、四年未更新無內建下載器GPL-2.0
macUSB開源 macOS 圖形化(Swift)封裝 createinstallmedia 並補上舊版相容處理,提供從 Tiger 到 Tahoe 的相容表內建 Downloader 從蘋果伺服器拉MIT + 已公證(Notarized)
四種 macOS 可開機隨身碟製作方案的差異(截至 2026 年 7 月,依各專案 GitHub 與官方文件整理)。

把這張表橫著讀,可以看到 macUSB 的差異化其實集中在一個點上:它不是「另一個燒錄工具」,而是把 createinstallmedia 在跨代場景下會踩到的雷,重新包裝成一條會主動檢查的圖形化流程。balenaEtcher 是通用映像檔燒錄器,你給它 .iso 它就幫你寫進 USB,但它不會知道你給它的 installer app 是不是被蘋果簽過、能不能在目標機型上開機;對純粹的 Windows USB 重灌需求,微軟官方的 Windows 10/11 USB 安裝工具PassFab for ISO 這類 USB 開機工具碟反而更對題。TINU 做的事最接近 macUSB,但開發者已經封存專案(archived),最近一次 commit 是 2022 年,面對 2025 年之後的 macOS Tahoe 與 Apple Silicon 新機已經跟不上。

macUSB GitHub 倉庫首頁(Kruszoneq/macUSB),顯示專案描述、星數與 README 開頭Pin
macUSB 的 GitHub 倉庫首頁。專案從 2025 年 12 月 14 日首次提交至今累積超過 1700 顆星,最新版 v2.3.1 於 2026 年 6 月 30 日發布。

它到底怎麼把終端指令變成可信任的圖形流程

讀進 macUSB 的原始碼會發現,這個工具不是把 createinstallmedia 偷偷包一層 GUI 那麼簡單。寫入 USB 隨身碟這件事在 macOS 上需要 root 等級的磁碟存取權限,所以作者把它拆成兩支程式:一支是使用者層級的圖形化應用(macUSB.app,bundle id com.kruszoneq.macUSB),另一支是跑在後台的特權輔助程式(macUSBHelper,註冊為 macOS 的 com.kruszoneq.macusb.helper XPC 服務)。兩支程式透過 macOS 內建的 NSXPCListener 溝通。

真正關鍵的是這條 XPC 連線的信任策略。在 macUSBHelper/Security/HelperConnectionSecurityPolicy.swift 裡,作者把連線的代碼簽章要求寫死成這麼一條規則:

anchor apple generic and certificate leaf[subject.OU] = "27NC66L8P2" and identifier "com.kruszoneq.macUSB"

這行程式的意思是:後台輔助程式只接受「同一個 Team ID(27NC66L8P2)簽署、且 bundle id 是 com.kruszoneq.macUSB」的連線對象。換句話說,沒有作者本人的簽章,任何外部程式都喚不動這個跑在 root 的輔助程式。v2.3.1(2026 年 6 月 30 日發布)把這條策略再升級成「應用程式與輔助程式雙向驗證彼此的代碼簽章」,也就是說不光 helper 檢查 caller,連 app 也會反向檢查 helper 的簽章才肯放行。

這層簽章工程對應到的現實問題,正是蘋果從 macOS 13 開始收緊的安裝碟信任鏈。蘋果官方文件對 createinstallmedia 的說明裡,沒有一條提到跨代場景下 installer app 的憑證會過期;但 Reddit r/macapps、MacRumors 與各種維修論壇的求助文裡,「codesign and certificate validation failures on legacy installer paths」是反覆出現的關鍵字(macUSB 的 README 直接把這句列為它要解決的問題之一)。把它寫死成一條 Team ID 規則,是開發者選擇用代碼簽章而非密碼來保護這條特權通道。如果你關心 macOS 工具如何處理本機權限與隱私邊界,Input 0 開源 macOS 語音輸入工具的 LLM 外送邊界討論是另一個對比例子。

macUSB README 的功能列表與快速開始段落,顯示內建下載器、本機來源支援、Apple Silicon 舊版相容處理Pin
macUSB README 的 Key Features 段落。內建下載器從蘋果伺服器拉取安裝檔、Apple Silicon 對舊版 installer 的相容處理,是它的差異化主軸。

系統映像檔從哪裡來,這件事比你想的更重要

製作 macOS 安裝碟最容易被低估的風險,是「你那個 .dmg / .app 從哪裡來」。蘋果官方唯一的正版來源是 App Store 的「取得 macOS」與系統軟體更新機制;任何自稱「macOS Catalina 完整映像」的第三方網站,都是潛在的供應鏈風險,因為 macOS installer 是會執行 root 等級安裝的程式,被改過的映像檔可以在你按下一個「繼續」之間就完成持久化植入。

macUSB 的選擇是:內建 Downloader 直接從蘋果伺服器抓。這條路徑在 README 的描述是「discover and download macOS installers available from Apple servers」,也就是說它走的是蘋果公開的安裝檔散布管道,等同於你在 App Store 按「取得」背後走的那條路。除此之外,macUSB 也接受本機已有的 .dmg、.iso、.cdr、.app 檔案匯入,並會對 .iso、.cdr、.dmg 計算 SHA-256 checksum,讓你比對手上這份映像檔與官方版本是否一致。

有一個小細節值得記下來:v2.3.1(2026 年 6 月 30 日的版本)對來源分析做了一次「拒絕」的改動,會主動把「不是有效 macOS installer 的 .app bundle 與磁碟映像」識別出來並拒絕寫入。換句話說,你拿一個普通應用程式的 .dmg 想偽裝成 macOS 安裝檔讓 macUSB 寫進 USB,它會在前置分析階段就停下來告訴你這不是 installer,而不是傻傻地寫一個無法開機的 USB 給你。這個改動對應到 GitHub Issue #83「Validate macOS installer apps during source analysis」,是作者回應使用者把錯誤檔案餵進工具時的常見失誤。

如果你問我會不會擔心有人拿 macUSB 來寫入來路不明的映像檔,我的判斷是工具本身做了它能做的兩件事:一是引導你走內建下載器(源頭就是蘋果),二是給你 checksum 工具讓你自行驗證本地檔案。它沒辦法替你判斷「網路上某論壇分享的 Catalina.dmg 是不是被改過」,這部分只能靠你自己不去碰第三方映像站。製作系統安裝碟這件事,源頭比工具更重要

把它當一般的「點一下就做好」工具,會漏掉三個硬性限制

圖形化介面很容易讓人誤以為 macUSB 是一個「免責任一鍵工具」。實際上它對宿主機和目標碟都有明確的硬性要求,這些門檻被作者寫在 README 的 Requirements 區塊,但 README 太長沒人看完時,這些限制就被略過了。

  1. 宿主機必須是 macOS 14.6 Sonoma 或更新。這代表你那台還在跑 macOS Monterey 的 2015 年 Intel Mac,是裝不開 macUSB 的。你想用它做舊版碟,前提是另有一台夠新的 Mac 當工作母機。
  2. 必須在系統設定裡手動開啟「允許在背景執行」與「完全磁碟存取權限」。沒開這兩項,特權輔助程式的工作流會直接失敗。這是 macOS 對背景輔助程式的強制規定,不是 macUSB 的特殊要求,但第一次用的人很容易漏掉。
  3. USB 隨身碟會被格式化抹除。README 裡這句被重複標註了三次:All data on the selected USB drive will be erased。製作過程會重新分割並格式化你選的目標碟,所以如果你插了一顆裡面還有家族照片的舊隨身碟,資料會消失。為了降低這個風險,作者把外接 HDD 與 SSD 預設關閉,要使用者主動到 Options 才能啟用。這是一個值得肯定的安全設計。

還有兩個小限制:製作 macOS Sequoia 15 與之後版本的安裝碟,最低 USB 容量是 32GB;內建 Downloader 在下載階段會佔用最多 45GB 暫存空間(依 macOS 版本而定),實際寫入 USB 階段再佔約 20GB。如果你用一台只有 128GB 剩餘空間的入門 MacBook Air 跑 Sequoia 下載流程,要先確認磁碟空間夠。

它的適合與不適合,可以用一個條件切開

macUSB 的判斷邊界其實非常乾淨:你的需求是不是「跨代做舊版 macOS 安裝碟」。是,就用;不是,就不用。為了讓這個判斷更具體,我把它拆成五種情境。

情境該不該用 macUSB理由
有新 Mac,想幫老 Intel Mac 做一個 macOS Catalina 之前的安裝碟推薦macUSB 的核心設計目標,覆蓋到 OS X Lion 與 Tiger
維護多台不同年代的 Mac,需要做各版本安裝碟推薦相容表從 Mac OS X Tiger 10.4 一路到 macOS Tahoe 26
想從 Windows 或 Linux 映像檔做可開機 USB可以用 v2.3 之後版本從 v2.2 起新增 Linux 與 Windows ISO 支援,但這不是它的主戰場
只有一台新 Mac,想升級到最新 macOS不需要系統設定裡的「軟體更新」或開機時的「回復模式」就夠了
想救回一台 PowerPC 時代的老 Mac(如 iMac G5、iBook G4)部分適合作者用 iMac G5 實機驗證過 USB 開機,但 iBook G4 雖能偵測 USB 卻無法成功開機,相容性因機型而異
macUSB 適合的情境判斷表。

從版本演進看這個專案認不認真

判斷一個開源工具會不會是「上架即停更」,最快的辦法是看它的 release 節奏。macUSB 從 2025 年 12 月 14 日第一次 commit 到 2026 年 7 月初為止,已經發了 15 個版本,最近一次 v2.3.1 在 2026 年 6 月 30 日發布(截至 2026 年 7 月 4 日我整理資料時的最新狀態)。把它和同類專案對比,差距很明顯:TINU 已封存、最後更新停在 2022 年;DiskMaker X 沒有公開的原始碼倉庫可看;balenaEtcher 雖然星數高(約 3.4 萬顆星),但 open issues 已累積到六百多個。

macUSB 目前約 1764 顆星、87 個 fork、開啟中的 issue 是 0。這個 0 不是因為沒人用,而是作者密集處理(最近 20 個 issue 全數關閉,包括 #73「not working on older macos」、#71「Wimlib Split error」、#75「PowerPC installers」這些直接對應到舊機器、Windows 切分、PowerPC 開機的真實問題)。從 v2.0 到 v2.3 的功能擴展也看得出一個清楚的方向:先站穩 macOS 跨代安裝碟這個主軸,再往 Linux 與 Windows ISO 延伸,最近幾版著重的是安全性(mutual code signature verification、installer 來源分析拒絕無效 .app)。這個開發優先序,對一個會把工具放進系統修護流程的使用者來說,是合理的。

三個使用前最該問的問題

這三題是正文不方便展開、但實際使用前讀者最常追問的問題。

它需要付費嗎?不需要。README 寫得很清楚「macUSB is and will always remain completely free」(macUSB 是、且會持續是完全免費的),作者另外設了一個 Buy Me a Coffee 贊助連結,但功能沒有付費牆。如果你在第三方網站看到「macUSB Pro」或「macUSB 付費版」,那不是這個專案。

它的下載位置在哪裡?首選是 GitHub Releases 的最新版頁面(github.com/Kruszoneq/macUSB/releases/latest),或者透過 Homebrew Cask 安裝:brew install --cask macusb。macOS 上首次執行時,如果 Gatekeeper 跳出「無法驗證開發者」警告,因為 app 已公證(Notarized),你可以到「系統設定 → 隱私權與安全性」按下「仍要打開」放行;如果連公證都沒有,那就不是本文介紹的這個工具。

它支援哪些 macOS 版本做為安裝碟的內容?從 macOS Tahoe 26 一路涵蓋到 Mac OS X Tiger 10.4,等於是蘋果二十年來的主流版本都包了。但有兩個小註記:Sierra 只支援 10.12.6 這個小版本;Mavericks 10.9 只驗證過來自 Mavericks Forever 計畫的映像檔,其他來源可能失敗。

下一步:三個可以立刻做的動作

  1. 確認你的工作母機符合資格。到「蘋果選單 → 關於這台 Mac」確認系統是 macOS 14.6 Sonoma 或更新;磁碟剩餘空間在下載階段需要 45GB、寫入階段需要 20GB。怎樣算成功:機器規格符合、空間足夠,才進下一步。
  2. 從官方來源安裝 macUSB。任選 GitHub Releases 或 brew install --cask macusb,安裝完開啟後到「系統設定 → 一般 → 登入項目與延伸功能」勾選「允許在背景執行」,再到「隱私權與安全性 → 完全磁碟存取權限」勾選 macUSB。怎樣算成功:兩個權限都開啟、app 可正常啟動。
  3. 準備一支可以完全清空的 USB 隨身碟。macOS Sequoia 之後的安裝碟用 32GB 以上、舊版本至少 16GB;插上後先把裡面的資料備份到別處(這支碟會被整支格式化)。怎樣算成功:USB 容量足夠、資料已備份、可以接受整支抹除。

蘋果為什麼不自己修好這條路:信任鏈的代價

讀到這裡,合理會問一句:蘋果為什麼不直接讓 createinstallmedia 在新 Mac 上順利處理舊版 installer app?蘋果會做,但這條信任鏈一旦放鬆,代價比你想的大。蘋果從 macOS 10.15 Catalina 開始強制所有可執行程式碼都要通過代碼簽章與公證(Notarization),這個機制本身就是為了擋住被竄改的 installer 在使用者機器上 root 等級安裝。一個 2014 年發布的 macOS Catalina installer app,它內嵌的憑證會在幾年後過期,這在蘋果的信任模型裡是「設計而非 bug」,過期的憑證就該被拒絕。

問題在於,這個設計對「想合法地把舊版 macOS 裝回老硬體」的使用者是死的。蘋果給的官方建議是:用「網路回復」(Internet Recovery)或「時間機器回復」。但這兩條路假設你的老機型能連上蘋果伺服器、且蘋果伺服器願意發那個版本給你的機型,這在 Intel Mac 跨越多個版本時經常不成立。macUSB 處理的正是這條蘋果沒有興趣修的縫隙:它靠的是一個會被蘋果接受的工作母機(macOS 14.6 Sonoma 以上、本身已通過簽章驗證的環境)來執行 createinstallmedia,並把「母機會不會拒絕這個舊 installer」這件事用圖形化流程包起來讓你看到錯在哪。繞過簽章這條路它沒走,因為那會違反信任模型。

這也解釋了為什麼 macUSB 要堅持內建 Downloader 從蘋果伺服器抓而不是讓你自己丟一份映像檔進去。從蘋果伺服器下載的 installer app,它的簽章鏈是新鮮的、憑證是有效的、bundle 是蘋果原版,這是 createinstallmedia 在你的工作母機上不會被擋的唯一保證。你自己手上的那份舊 .dmg,無論來源多乾淨,都沒有這個保證。這是 macUSB 把下載與寫入綁在同一個應用裡的設計理由,不是它想鎖住使用者。

macUSB 之於 createinstallmedia,有點像一把重新打磨過角度的扳手:底層做的事還是轉螺絲,但它把跨代場景下會滑牙的那個角度,重新設計過一次。對會用到這個需求的人,它真正省下的是你查「為什麼這條指令又出錯」的那兩小時,不是點兩下滑鼠的時間。對用不到的人,它就是工具箱裡多一個你不會打開的 app,沒有需要特地裝。

本文方法論與免責

本文基於截至 2026 年 7 月 4 日的 GitHub 倉庫 Kruszoneq/macUSB(版本 v2.3.1,最近一次推送 2026 年 6 月 30 日)、官方網站 kruszoneq.github.io/macUSB、README,以及對下列原始碼檔案的分析:macUSBHelper/Security/HelperConnectionSecurityPolicy.swift(XPC 連線代碼簽章策略)、macUSBHelper/main.swift(特權輔助程式進入點)、macUSB/macUSB.release.entitlementsmacUSBHelper/macUSBHelper.release.entitlements(公證設定)。第一手元素包括:查詢 GitHub License API(回傳 MIT)、比對 LICENSE.txt 檔案內容、讀取 version.json 確認版本、查詢最近 20 個 Issues 與 15 個 Releases 的歷史,以及與 balenaEtcher(Apache-2.0)、TINU(GPL-2.0,已封存)、DiskMaker X(無公開倉庫)三個對比工具的真實數值比對。

未涵蓋:本文未在 Mac 環境實機操作 macUSB 寫入 USB 隨身碟的完整流程,所有操作描述皆基於 README、原始碼與作者在 Reddit、MacRumors 公開回覆的內容推導,不是親自實測後的觀察。你的 Mac 機型、macOS 版本、USB 硬體與目標安裝的 macOS 版本之間的實際相容性,可能與本文描述不同。製作可開機 USB 隨身碟會格式化目標碟上的所有資料,操作前請務必備份;面對涉及舊硬體、PowerPC、降級安裝等重大系統操作時,建議同時對照蘋果官方文件(support.apple.com/en-us/101578 的 createinstallmedia 說明)與 macUSB 官方指南再下手。如果你需要的是把 Windows 或 Linux 映像檔做成可開機 USB,本文介紹的 v2.3 之後版本雖然支援,但主戰場是 macOS 安裝碟,跨平台用途建議另找 balenaEtcher 或各發行版本的官方燒錄工具。

Sliven 褚崇名
Sliven 褚崇名

每日分享科技新知、免費資源以及 WordPress、虛擬主機相關主題,任何問題歡迎在科技月球下方留言,或是發送 Email 至 [email protected] 與我聯繫。

文章: 632

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *


目錄
Share to...