真正的 Mac OS X / OSx86 Live DVD 誕生了!
歸功於 InsanelyMac 開發團隊(spartango 等人),透過 OS X 內置的 IOHDIXController 磁碟映像引導機制與 RAMDisk 影子檔案(Shadow File)寫入技術,無需安裝即可直接從光碟開機進入完整可讀寫 Finder 桌面的 Mac OS X Live DVD 正式實現!
- 主筆作者
-
@nfoav8or
發表於 2009-01-03
- 所屬專區
- 核心發佈、社群動態與科技公告
- 典藏規模與紀錄
- 212,477 次歷史閱讀 · 7 則精選技術筆記(萃取自 12 則原始回帖) · 2009-01-03 – 2009-05-30
- 參與貢獻成員 (8)
- @nfoav8or (3)@milanca (2)@cmdshft (2)@Voyn1x@bob5731@biker69@ultimo@Quentin
- 相關硬件參考
- AMD Desktop Processors ↗ USB 3.2 Boot Flash Drives ↗ SATA III & NVMe SSDs ↗
歸功於 InsanelyMac 的開發團隊,專為 OS X 與 OSx86 打造的真正 Live DVD 夢想終於成真了!
以下轉載 spartango 於 InsanelyMac.com 發表的原文:
「在 REVENGE 發出號召後不久,OS X Live DVD 團隊就取得了重大突破!
我們現在已經擁有一套步驟簡單且運作相當穩定的 Live DVD 製作方法。事實上,視乎所搭配的核心延伸模組(Kext)與開機引導程式,這套方法無論在黑蘋果(Hackintosh)還是正廠 Mac 真機上都能正常運作!
這套方法之所以可行,是因為 OS X 本身就內置了一套磁碟映像檔開機機制(Disk Image Boot System),原本是用來支援其網絡開機(NetBoot)功能的。IOHDIXController 與系統核心可以接收傳入的磁碟映像檔路徑,並透過將磁碟映像識別為可掛載檔案系統的『imageboot』機制,直接將其掛載為根目錄 /。
此外,Apple 還設計了一套能將「影子檔案」(Shadow File)附加到唯讀磁碟映像檔的機制,使其變成可寫入狀態。這項機制原本是為了支援 NetBoot 網絡開機,讓使用者的工作階段(Session)保存在本機且重啟後不留存,具體實作位於 /etc/rc.netboot 中。簡單來說,vndevice(/usr/libexec/vndevice)會將一個影子檔案附加到 DMG 映像檔上,並在該裝置啟用寫入時複製(Copy-on-Write)策略——所有對 DMG 的寫入操作都會被轉向至暫存的影子檔案中。這與 Linux Live DVD 的運作原理非常相似,只是 Linux 採用的是 UnionFS。
在一般情況下,影子檔案會建立在本機磁碟或網絡共享空間(NFS 或 HFS 格式)上。而在我的方法中,影子檔案則是建立在格式化為 HFS 的記憶體磁碟(RAMDisk)上,系統運作起來就跟透過 NetBoot 開機完全一樣。唯一的差別在於,我指定要引導的 DMG 位於本機(file:///),然後手動啟動一個自訂的 rc 腳本。這個腳本的行為與 rc.netboot 類似,差別只在於我會先建立一個 RAMDisk 並將影子檔案設在那裏,而非本機硬碟上。完成這步之後,根目錄 / 就具備完整讀寫權限(R/W),OS X 也能像平時一樣正常引導進入 Finder 桌面……甚至執行各種進階操作。
更多技術細節請參閱下方 InsanelyMac X Labs 的討論串連結!
http://forum.insanelymac.com/index.php?showtopic=144128 ↗」
上方圖片由 spartango 於原帖 ↗提供。
我個人對這群比我聰明得多的神人致以萬分敬意 :-B,因為我自己前陣子也一直嘗試修改 modbin 的方法 ↗ 卻始終未能完美成功。
同時我也認為,大家不應該把用這套方法自製出來的各種映像檔到處放上網絡散播。對於 Windows 用戶而言:網上已經有一些現成版本,只需使用 TransMac 編輯映像檔內的驅動即可在自己的機器上運作;至於我們這些已經在使用 OS X 的玩家……直接按照教學親手做一張屬於自己的 Live DVD 吧!現在有了完整的 [How-To] 指南,製作過程已經非常簡單了。相關技術問題可以直接向開發團隊請教,也很歡迎在我們論壇這裏開帖討論(請在標題加上適當標籤)。
希望這張 Live DVD 的誕生,能幫我們救回許多原本看似無藥可救的崩潰系統!
再次向各位開發者脫帽致敬,開發團隊幹得太漂亮了!
(文章上方展示的 OS X LIVE 圖片是我之前為自己製作的舊版 AMD-LIVE DVD 在 Photoshop 設計的,這次特別修改後用於本篇文章。)
社群實測與技術補充筆記
自 12 則原始討論回帖中萃取 7 則高價值技術回應
太棒的消息了!我期待這項技術已經好長一段時間了 :
沒錯,這絕對是了不起的突破……前幾天我在 InsanelyMac 看到那篇原帖時就照著做了一張,運作起來順暢無比,真的太讚了!這對整個黑蘋果社群來說絕對是一大福音。
@bob5731我想要一份它的 ISO 映像檔。
據悉即將推出的新版 Leo4All 安裝 DVD 就會直接內置這項功能了,這也是為什麼我不打算上傳自己做的版本。我手頭這張 LiveDVD 雖然在我的主機和另外幾部電腦上運作良好,但我可不想傳上去之後,引來一堆人抱怨為什麼在他們的電腦上開不了機(因為我當初製作時本來就只針對自己的硬體配置)。
老實說,自己動手做一張真的比較快。
拿一張「舊版」的 Leopard OSx86 安裝 DVD 裝好系統並更新,然後按照教學指南一步步操作即可。要我說的話,這些步驟真的非常簡單。
是的,我也同意自己動手製作一張 LiveDVD 非常簡單。我自己做了一張,在我的兩部主機上都能完美運作。我原本也可以把它上傳分享出來,但一張通用版 LiveDVD 必須涵蓋夠多種類的晶片組驅動才行。誰知道呢,說不定我之後會整合看看、做一張類似通用版(Universal)的 LiveDVD,但目前還不確定。無論如何,這項技術本身真的非常了不起,能幫我們省下為了救援系統而額外在另一顆硬碟保留備用系統的麻煩,也不用每次都慢吞吞地從安裝 DVD 開機,用來還原備份映像檔或進行各種系統維護都超方便!真是太棒了。
這套方法似乎對實體記憶體(RAM)容量有一定要求。
我的電腦只有 1GB 記憶體,拿別人傳給我的一張測試版 Live DVD 開機時,跑到一半就會卡住無法進桌面。看來系統至少需要 1.1GB 或以上的實體記憶體才能順利引導開機。
我想如果在最初建立映像檔時把 RAMDisk 的容量改小一點,應該就能在記憶體較小的電腦上順利運作了。
PCWiz 和我正準備測試幾項改良方案,他那邊剛收到一些測試資料,我們接下來很可能會嘗試編寫一個能自動偵測實體記憶體容量的啟動腳本,以動態分配並最佳化 RAMDisk 的大小。