x86 硬件上的 Mac OS X 2008–2024 技術文獻庫
InfiniteMac OSx86 › Leopard 10.5 › *11/12 更新* DMG 掛載問題與 Sandbox.kext/Seatbelt.kext …
334,965 reads · 2009-01-22 – 2012-11-26
技術專卷 Leopard 10.5

*11/12 更新* DMG 掛載問題與 Sandbox.kext/Seatbelt.kext 解決方案

DMG 掛載問題與 Sandbox.kext/Seatbelt.kext * 最後更新:2012 年 11 月 25 日 問題成因 在掛載磁碟映像檔(.DMG)時發生五國死機(Kernel Panic),通常係因為系統入面嘅 Sandbox.kext 或 seatbelt.kext 版本同目前使用嘅核心(Kernel)唔夾…

主筆作者
@lanceomni 發表於 2009-01-22
所屬專區
Leopard 10.5
典藏規模與紀錄
334,965 次歷史閱讀 · 15 則精選技術筆記(萃取自 20 則原始回帖) · 2009-01-22 – 2012-11-26
參與貢獻成員 (11)
@lanceomni (7)@eMatoS (3)@oneshot (2)@pαuℓzurrr.@nfoav8or@CamEdwardo@Sokairyk@Taisto@ptesone@Thomasasz@gils
相關硬件參考
SATA III & NVMe SSDs ↗ USB 3.2 Boot Flash Drives ↗ AMD Radeon GPUs (QE/CI) ↗
香港繁體精譯技術專卷 · 完整保留原始指令、Kext 名稱、ACPI 節點與開機參數查看英文原版 (Original English) →

DMG 掛載問題 & Sandbox.kext/Seatbelt.kext

* 最後編輯於 2012 年 11 月 25 日

問題成因
喺掛載磁碟映像檔(.DMG)期間發生嘅五國死機(Kernel Panic),可能係因為你未安裝同系統核心(Kernel)版本對應嘅 Sandbox.kext 或 seatbelt.kext。只要將你嘅核心配對返正確編譯版本嘅 seatbelt.kext,就可以解決磁碟映像檔無法掛載嘅問題。呢個情況喺使用非原生(Non-vanilla)破解核心時非常常見。

Sandbox.kext 同 Seatbelt.kext 係用嚟做乜嘅?
呢兩個核心延伸模組都係「沙盒(Sandbox)」安全機制嘅實作,詳細原理可以參考呢度:http://en.wikipedia.org/wiki/Sandbox_(computer_security ↗)。Seatbelt 係 Apple 早期使用嘅內部代號,喺 10.5 Leopard 時代沿用,去到 10.6 Snow Leopard 之後至今就正式改名做 Sandbox。

12.2.0 核心需要來自 10.8.0 嘅 Sandbox.kext (drop box.com/s/xp8p79m4rwe4vod/Sandbox.kext1080.zip)
Version N/A Build N/A Source N/A
SHA1=96ab102d51740e26d6fb278765387954b2ff2fa5

12.1.0 核心需要來自 10.8.0 嘅 Sandbox.kext (drop box.com/s/xp8p79m4rwe4vod/Sandbox.kext1080.zip)
Version N/A Build N/A Source N/A
SHA1=96ab102d51740e26d6fb278765387954b2ff2fa5

12.0.0 核心需要來自 10.8.0 嘅 Sandbox.kext (drop box.com/s/xp8p79m4rwe4vod/Sandbox.kext1080.zip)
Version N/A Build N/A Source N/A
SHA1=96ab102d51740e26d6fb278765387954b2ff2fa5

11.4.2 核心需要來自 10.7.5 嘅 Sandbox.kext (drop box.com/s/a87rle8xf2uitvu/Sandbox.kext1075.zip)
Version 177.8 Build 3 Source 177008000000000
SHA1=67097f28b296f3cf6f452dd2de4f86f0353411cf

11.4.0 核心需要來自 10.7.4 嘅 Sandbox.kext (drop box.com/s/9jcfrljqexzm96y/Sandbox.kext1074.zip)
Version 177.5 Build 11 Source 177005000000000
SHA1=639c01e5dbf243225612412b97af91d14dd085ed)

11.3.0 核心需要來自 10.7.3 嘅 Sandbox.kext (drop box.com/s/rrusjrh9dtfut4k/Sandbox.kext1073.zip)
Version 177.3 Build 6 Source 177003000000000
SHA1=1cdb7b14492a7448f7e7dfe117bf86661a072196

11.2.0 核心需要來自 10.7.2 嘅 Sandbox.kext (drop box.com/s/2ao8g03gf2haxdv/Sandbox.kext1072.zip)
Version 165.3 Build 2 Source 165003000000000
SHA1=2892f56c6f0e963bbdb9dd05a840e02cedb3e5e1

11.1.0 核心需要來自 10.7.0 嘅 Sandbox.kext (drop box.com/s/pnmfbrcoyfwe4mo/Sandbox.kext1070.zip)
Version N/A Build N/A Source N/A
SHA1=67097f28b296f3cf6f452dd2de4f86f0353411cf

10.8.0 核心需要來自 10.6.8 嘅 Sandbox.kext (drop box.com/s/rw1s1zco5aqmm0l/Sandbox.kext1068.zip)
Version 1 Build 86 Source 340100
SHA1=a4f5c98d747777781b92d12c517cdf18bc8b0692

10.7.0 核心需要來自 10.6.7 嘅 Sandbox.kext (drop box.com/s/ebaa3scr9ay5ir5/Sandbox.kext1067.zip)
Version 1 Build 54 Source 340100
SHA1=f406659a15d084749b9d9274466a096bc9cf4b89

10.6.0 核心需要來自 10.6.6 嘅 Sandbox.kext (drop box.com/s/lwbw3vbl32ei7jc/Sandbox.kext1066.zip)
Version 1 Build 13 Source 340100
SHA1=83e7e2f0882c0b0126ba8ddce8630b0a4375565f

10.5.0 核心需要來自 10.6.5 嘅 Sandbox.kext (drop box.com/s/bd9e91x9923hdxf/Sandbox.kext1065.zip)
Version 1 Build 9 Source 340100
SHA1=ea657bd1b40d16e14d43aa11979b6efa5d3df0dc

10.4.0 核心需要來自 10.6.4 嘅 Sandbox.kext (drop box.com/s/j5f4bbc0is95ktj/Sandbox.kext1064.zip)
Version 0 Build 300 Source 340000
SHA1=8ab3f051cf49387010e273f3b1eccd6f00935f8e

10.3.0 核心需要來自 10.6.0 嘅 Sandbox.kext
Version INSERT Build INSERT Source INSERT
SHA1=INSERT

10.2.0 核心需要來自 10.6.0 嘅 Sandbox.kext
Version INSERT Build INSERT Source INSERT
SHA1=INSERT

10.1.0? 核心需要來自 10.6.0 嘅 Sandbox.kext
Version INSERT Build INSERT Source INSERT
SHA1=INSERT

9.8.0 核心需要來自 10.5.8 嘅 Seatbelt.kext (drop box.com/s/5ee21mbhdws4wsf/seatbelt.kext1058.zip)
Version 107.12 Build 78 Source 1071200
SHA1=02283813a609583a6de7c7895fce22a59a09a789

9.7.0 核心需要來自 10.5.7 嘅 Seatbelt.kext (drop box.com/s/qf3w9v9xbbn4asr/Seatbelt.kext1057.zip)
Version 107.12 Build 63 Source 1071200
SHA1=fa50ed67f12d72c24ee28f61f1b971b0d13a407b

9.6.0 核心需要來自 10.5.6 嘅 Seatbelt.kext (drop box.com/s/7s9xucltiu2e3hx/seatbelt.kext1056.zip)
Version 107.10 Build 45 Source 1071100
SHA1=2e9774fd74575f438a7d18b8805fff37a189ebaa

9.5.0 核心需要來自 10.5.5 嘅 Seatbelt.kext (drop box.com/s/toezdlvdb78t2uf/seatbelt.kext1055.zip)
Version 107.10 Build 14 Source 1071100
SHA1=0e07c564d78b78327ee3f4c99fb96147986a04c8

點樣檢查目前已安裝嘅版本
打開終端機(Terminal)並輸入以下指令嚟檢查你嘅核心版本:

uname -a

OSX 10.8 Mountain Lion
Mountain Lion 只有一個版本嘅 Sandbox.kext

OSX 10.6 Snow Leopard - 10.7 Lion
檢查你嘅 Sandbox.kext 版本:

openssl sha1 /System/Library/Extensions/Sandbox.kext/Contents/MacOS/Sandbox

OSX 10.5 Leopard
檢查你嘅 Seatbelt.kext 版本:

openssl sha1 /System/Library/Extensions/Seatbelt.kext/Contents/MacOS/Seatbelt

將得出嘅 sha1 校驗碼同上面份清單對比一下。另外,本文亦喺每個項目列明咗 Source Version 同 SHA1 校驗碼。

sha1 校驗碼係透過特定演算法產生嘅雜湊值(Hash),每個檔案都會有獨一無二嘅雜湊值。只要檔案被修改過,雜湊值就會唔同。由於核心延伸模組(Kext)本質上係一個資料夾,我哋必須指定入面嘅特定執行檔先至可以計算出雜湊值。針對 Sandbox.kext,我揀咗入面嘅二進制執行檔(Binary)嚟計算。

呢啲檔案係喺邊度提取出嚟嘅?
上面提供嘅檔案全部係用 Pacifist(可喺 charles soft.com/ 下載)從 Apple 官方支援網站嘅更新包入面提取出嚟嘅。

手動安裝方法
我個人比較鍾意手動安裝系統相關檔案。咁樣做可以加深你對系統架構嘅理解,清楚知道每個檔案嘅用途、擺放位置,以及應該設定咩權限同擁有者。雖然市面上有好多現成工具程式可以幫你代勞。(無錯,你會發現下面有啲指令好似重複咗,但做多步雙重保險可以減少好多新手發問。)

簡單步驟總覽:
將下載好嘅 Kext 拖去桌面(Desktop)
(請根據你嘅系統版本,將指令入面嘅 "Sandbox" 替換成 "Seatbelt"。)

sudo -s
mkdir /backup/Sandbox
cd /System/Library
cp -R Extensions/Sandbox.kext /backup/Sandbox/Sandbox.kext
cp -R ~/Desktop/Sandbox.kext Extensions/Sandbox.kext
chmod -R 755 Extensions/
chown -R root:wheel Extensions/
touch Extensions/
rm -Rf Extensions.mkext
diskutil repairpermissions /

使用開機參數 -v -f 重新開機

步驟詳解:

1. 取得 root 最高管理員權限,以便修改系統檔案。

sudo -s

2. 備份你現有嘅 Kext。首先我哋喺根目錄建立一個叫 "backup" 嘅資料夾,再喺入面建立一個叫 "sandbox" 嘅子資料夾用嚟放備份。打開終端機輸入:

mkdir /backup/sandbox

3. 切換工作目錄到 /System/Library,咁樣可以縮短之後要輸入嘅指令長度。

cd /System/Library

4. 將現有嘅 Sandbox.kext 複製去新建立嘅 "backup" 備份資料夾。

cp -R Extensions/Sandbox.kext /backup/Sandbox/Sandbox.kext

5. 將桌面嘅 kext 複製去系統嘅 Extensions 核心延伸模組資料夾入面。

cp -R ~/Desktop/seatbelt.kext Extensions/seatbelt.kext

6. 為 Extensions 資料夾設定正確嘅檔案擁有者。

chown -R root:wheel Extensions

7. 為 Extensions 資料夾設定正確嘅讀寫權限。

chmod -R 755 Extensions

8. 用 touch 指令更新 Extensions 資料夾嘅時間戳記。

touch Extensions/

9. 刪除核心延伸模組快取(Cache),強制 OSX 重新建立包含新 kext 嘅快取檔。

rm -Rf Extensions.mkext

10. 修復磁碟權限。

diskutil repairpermissions /

11. 用開機參數 -v -f 重新開機
-v 囉唆模式(Verbose Mode)會喺開機過程中顯示詳細嘅載入資訊。
-f 強制 OSX 直接從 Extensions 資料夾載入所有核心延伸模組,而唔讀取快取檔。雖然我哋頭先已經刪咗快取檔,但加埋呢個參數會更穩陣。

其實仲有更簡短嘅做法,不過以上完整步驟可以涵蓋晒所有細節,特別適合安裝 kext 時成日撞板嘅朋友,亦順便解決埋其他同權限有關嘅疑難雜症。

第三方安裝工具
以下提供幾個第三方 Kext 安裝工具嘅連結,使用風險自負:
KextHelper mac update.com/app/mac/26865/kext-helper
KextWizard http://www.insanelymac.com/forum/topic/253395-kext-wiza… ↗
KextBeast http://tonymacx86.blogspot.com/2010/08/kextbeast-simple… ↗
Kext Drop cin dori.se

請唔好為咗問呢篇文嘅問題而 PM(私訊)我。有問題請直接喺呢個 Post 回覆,我會盡快解答。我個 PM 收件匣成日爆滿,搞到我用唔到私訊原本應有嘅功能…

社群實測與技術補充筆記

自 20 則原始討論回帖中萃取 15 則高價值技術回應

技術筆記 #1 @eMatoS 2009-01-22

呢篇教學真係太有必要啦。好似好多人根本唔識點樣用論壇嘅搜尋功能咁。

多謝 leanceomni 師兄。

技術筆記 #2 @nfoav8or 2009-01-22

呢篇應該擺埋去其他 [How-To] 教學指南專區度。呢層就交畀你決定啦(反正你都係版主 :))。

我都好認同... 寫得非常清晰詳盡。

作者修訂 #1 @lanceomni 2009-01-22 ↳ Re: @nfoav8or

我或者會將呢篇文搬去嗰邊。我同時喺呢度同 InsanelyMac 都發咗帖,因為至少喺嗰邊,幾乎日日都有人為呢個問題開十幾個 Post。

[編輯] 我想將佢留喺呢個版塊顯眼嘅位置,事關你都知啦,好多人一遇到問題就淨係識盲衝,而且好似有「搜尋功能恐懼症」咁,你明我講緊咩啦。

作者修訂 #2 @lanceomni 2009-01-23

InsanelyMac 嗰邊已經將我篇文置頂咗。如果我再喺嗰邊見到多一個問 DMG 掛載死機嘅 Post,我真係會去跳崖。

技術筆記 #3 @oneshot 2009-03-27

咁我係咪應該先換咗個核心,然後再裝 seatbelt.kext?

我行緊 10.5.5,但裝咗 voodoo 9.6.0 核心

(我正正就係遇到掛載 DMG 死機嘅問題)

咁我應該改裝 voodoo 9.5.0 核心,然後再裝返 10.5.5 嘅 seatbelt.kext 嗎?

技術筆記 #4 @eMatoS 2009-03-27

如果 10.5.6 嘅核心喺你部機行得順暢無問題,咁你直接更新對應嘅 kext 核心延伸模組就得。

作者修訂 #3 @lanceomni 2009-03-27 ↳ Re: @eMatoS

@oneshot

你嘅意思係你用緊 Voodoo 9.5.0,定係基於 Voodoo 專案修改出嚟嘅 9.6.0 衍生版核心?我知市面上有幾款基於 Voodoo 改出嚟嘅核心。

基本上,如果你滿意目前系統嘅穩定度,唯一問題只係掛載唔到 DMG,咁你只需要確保各個組件嘅版本夾得埋就得。除咗 system.kext 同 seatbelt.kext 之外,我都唔肯定用一個比系統版本更新嘅核心仲會撞到咩問題,因為我自己只試過喺新系統行舊版核心。

總之只要確保如果你行緊 9.6.0 核心,系統入面亦同時配搭緊 9.6.0 嘅 system.kext 同埋提取自 10.5.6 嘅 Seatbelt.kext 就可以。

技術筆記 #5 @oneshot 2009-03-28

@lanceomini

我個 OSX 系統版本係 10.5.5

而我裝咗基於 voodoo 嘅 9.6.0 版本核心

我上網搵過 voodoo 9.5.0,但搵到嘅安裝包本身就係一個 .DMG 檔,所以我根本掛載唔到去安裝…

技術筆記 #6 @eMatoS 2009-03-28

實裝到嘅,一係喺第二部開到 DMG 嘅機掛載咗佢就會見到入面裝住檔案嘅資料夾;如果你手頭上有 Windows 系統,亦可以試下用 UltraISO 打開個 dmg 提取入面嘅檔案。

作者修訂 #4 @lanceomni 2009-03-28 ↳ Re: @eMatoS

呢度係 10.5.6 Seatbelt.kext 嘅下載連結,請跟足一樓頂樓講嘅步驟,先備份好你原有嘅檔案,然後再安裝呢個 kext。

rapid share.com/files/214657998/seatbelt_1056.zip.html
MD5: 9E0F7C03B9586AAD8B6A3162D71B8786

技術筆記 #7 @Sokairyk 2009-04-26

我試住跟住做,但當我輸入 ''mkdir /backup/Seatbelt'' 嗰陣,終端機彈咗呢句出嚟:

mkdir: /backup: No such file or directory

請問我做錯咗邊一步?

唔好意思,我英文唔係幾好

技術筆記 #8 @Taisto 2009-04-26

因為你試緊喺一個仲未存在嘅 "Backup" 資料夾入面建立 "Seatbelt" 子資料夾。你可以改為輸入:

mkdir backup && mkdir backup/seatbelt

咁樣就搞掂㗎啦

作者修訂 #5 @lanceomni 2011-06-23 ↳ Re: @Taisto

Rapidshare 條連結仲有效可以用。

Thomasasz,

[編輯]已移除私人連結[編輯]

作者修訂 #6 @lanceomni 2012-11-26

我唔知仲有無人遇到核心/Sandbox 導致 DMG 掛載五國死機嘅問題,不過我留意到之前擺落去嘅下載連結死晒,需要更新一下。

歡迎大家畀意見。最新連結請睇本帖一樓。

參與實測與協作驗證成員: @pαuℓzurrr. @CamEdwardo @ptesone @Thomasasz
文獻來源與貢獻者溯源名錄(共 11 位具名成員 · 原始討論串 #1992)
成員用戶名本卷貢獻角色發帖數活躍時間窗
@lanceomni主筆作者72009-01-22 → 2012-11-26
@eMatoS核心貢獻者32009-01-22 → 2009-03-28
@oneshot協作成員22009-03-27 → 2009-03-28
@pαuℓzurrr.協作成員12009-01-22
@nfoav8or協作成員12009-01-22
@CamEdwardo協作成員12009-04-03
@Sokairyk協作成員12009-04-26
@Taisto協作成員12009-04-26
@ptesone協作成員12009-09-19
@Thomasasz協作成員12009-11-10
@gils協作成員12012-11-26

選擇語言 · Choose your language