Mac OS X на оборудовании x86 Технический архив 2008–2024
InfiniteMac OSx86 › Leopard 10.5 › [Обновлено 11/2012] Решение проблемы паники ядра…
334,965 reads · 2009-01-22 – 2012-11-26
Досье Leopard 10.5

[Обновлено 11/2012] Решение проблемы паники ядра при монтировании образов .DMG (подбор версий Sandbox.kext и Seatbelt.kext)

Исчерпывающий справочник по устранению паники ядра (Kernel Panic) при открытии дисковых образов .DMG на системах с модифицированными ядрами в Mac OS X 10.5 Leopard, 10.6 Snow Leopard, 10.7 Lion и 10.8 Mountain Lion путём точного подбора версий расширений Seatbelt.kext и Sandbox.kext под версию ядра Darwin.

Основной автор
@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) ↗
Полный технический перевод на русский язык · Все команды терминала, имена кекстов, узлы ACPI и флаги загрузчика сохранены в оригиналеОткрыть оригинал на английском (Original English) →

Ошибки монтирования образов DMG и кексты Sandbox.kext / Seatbelt.kext

* ПОСЛЕДНЕЕ ОБНОВЛЕНИЕ: 25 ноября 2012 г.

Суть проблемы
Паники ядра (Kernel Panic), возникающие в момент монтирования дисковых образов (.DMG), чаще всего вызваны несовпадением версий системного расширения Sandbox.kext (или Seatbelt.kext) и установленного в системе ядра (mach_kernel). Эта проблема регулярно встречается на системах с неванильными (модифицированными) ядрами после установки системных обновлений Apple, когда кекст обновляется, а ядро остаётся прежней версии. Чтобы полностью устранить сбои при монтировании DMG, достаточно установить сборку Sandbox.kext / Seatbelt.kext, строго соответствующую версии вашего ядра Darwin.

За что отвечают Sandbox.kext и Seatbelt.kext?
Оба этих расширения реализуют механизм системной изоляции («песочницы»), подробно описанный здесь: http://en.wikipedia.org/wiki/Sandbox_(computer_security ↗). Изначально в Mac OS X 10.5 Leopard этот механизм носил внутреннее кодовое имя Apple Seatbelt, а начиная с Mac OS X 10.6 Snow Leopard и во всех последующих версиях ОС был переименован в Sandbox.

Ядро 12.2.0 требует Sandbox.kext от 10.8.0 (drop box.com/s/xp8p79m4rwe4vod/Sandbox.kext1080.zip)
Version N/A Build N/A Source N/A
SHA1=96ab102d51740e26d6fb278765387954b2ff2fa5

Ядро 12.1.0 требует Sandbox.kext от 10.8.0 (drop box.com/s/xp8p79m4rwe4vod/Sandbox.kext1080.zip)
Version N/A Build N/A Source N/A
SHA1=96ab102d51740e26d6fb278765387954b2ff2fa5

Ядро 12.0.0 требует Sandbox.kext от 10.8.0 (drop box.com/s/xp8p79m4rwe4vod/Sandbox.kext1080.zip)
Version N/A Build N/A Source N/A
SHA1=96ab102d51740e26d6fb278765387954b2ff2fa5

Ядро 11.4.2 требует Sandbox.kext от 10.7.5 (drop box.com/s/a87rle8xf2uitvu/Sandbox.kext1075.zip)
Version 177.8 Build 3 Source 177008000000000
SHA1=67097f28b296f3cf6f452dd2de4f86f0353411cf

Ядро 11.4.0 требует Sandbox.kext от 10.7.4 (drop box.com/s/9jcfrljqexzm96y/Sandbox.kext1074.zip)
Version 177.5 Build 11 Source 177005000000000
SHA1=639c01e5dbf243225612412b97af91d14dd085ed)

Ядро 11.3.0 требует Sandbox.kext от 10.7.3 (drop box.com/s/rrusjrh9dtfut4k/Sandbox.kext1073.zip)
Version 177.3 Build 6 Source 177003000000000
SHA1=1cdb7b14492a7448f7e7dfe117bf86661a072196

Ядро 11.2.0 требует Sandbox.kext от 10.7.2 (drop box.com/s/2ao8g03gf2haxdv/Sandbox.kext1072.zip)
Version 165.3 Build 2 Source 165003000000000
SHA1=2892f56c6f0e963bbdb9dd05a840e02cedb3e5e1

Ядро 11.1.0 требует Sandbox.kext от 10.7.0 (drop box.com/s/pnmfbrcoyfwe4mo/Sandbox.kext1070.zip)
Version N/A Build N/A Source N/A
SHA1=67097f28b296f3cf6f452dd2de4f86f0353411cf

Ядро 10.8.0 требует Sandbox.kext от 10.6.8 (drop box.com/s/rw1s1zco5aqmm0l/Sandbox.kext1068.zip)
Version 1 Build 86 Source 340100
SHA1=a4f5c98d747777781b92d12c517cdf18bc8b0692

Ядро 10.7.0 требует Sandbox.kext от 10.6.7 (drop box.com/s/ebaa3scr9ay5ir5/Sandbox.kext1067.zip)
Version 1 Build 54 Source 340100
SHA1=f406659a15d084749b9d9274466a096bc9cf4b89

Ядро 10.6.0 требует Sandbox.kext от 10.6.6 (drop box.com/s/lwbw3vbl32ei7jc/Sandbox.kext1066.zip)
Version 1 Build 13 Source 340100
SHA1=83e7e2f0882c0b0126ba8ddce8630b0a4375565f

Ядро 10.5.0 требует Sandbox.kext от 10.6.5 (drop box.com/s/bd9e91x9923hdxf/Sandbox.kext1065.zip)
Version 1 Build 9 Source 340100
SHA1=ea657bd1b40d16e14d43aa11979b6efa5d3df0dc

Ядро 10.4.0 требует Sandbox.kext от 10.6.4 (drop box.com/s/j5f4bbc0is95ktj/Sandbox.kext1064.zip)
Version 0 Build 300 Source 340000
SHA1=8ab3f051cf49387010e273f3b1eccd6f00935f8e

Ядро 10.3.0 требует Sandbox.kext от 10.6.0
Version INSERT Build INSERT Source INSERT
SHA1=INSERT

Ядро 10.2.0 требует Sandbox.kext от 10.6.0
Version INSERT Build INSERT Source INSERT
SHA1=INSERT

Ядро 10.1.0? требует Sandbox.kext от 10.6.0
Version INSERT Build INSERT Source INSERT
SHA1=INSERT

Ядро 9.8.0 требует Seatbelt.kext от 10.5.8 (drop box.com/s/5ee21mbhdws4wsf/seatbelt.kext1058.zip)
Version 107.12 Build 78 Source 1071200
SHA1=02283813a609583a6de7c7895fce22a59a09a789

Ядро 9.7.0 требует Seatbelt.kext от 10.5.7 (drop box.com/s/qf3w9v9xbbn4asr/Seatbelt.kext1057.zip)
Version 107.12 Build 63 Source 1071200
SHA1=fa50ed67f12d72c24ee28f61f1b971b0d13a407b

Ядро 9.6.0 требует Seatbelt.kext от 10.5.6 (drop box.com/s/7s9xucltiu2e3hx/seatbelt.kext1056.zip)
Version 107.10 Build 45 Source 1071100
SHA1=2e9774fd74575f438a7d18b8805fff37a189ebaa

Ядро 9.5.0 требует Seatbelt.kext от 10.5.5 (drop box.com/s/toezdlvdb78t2uf/seatbelt.kext1055.zip)
Version 107.10 Build 14 Source 1071100
SHA1=0e07c564d78b78327ee3f4c99fb96147986a04c8

Как определить, какие версии установлены у вас сейчас
Проверьте текущую версию ядра Darwin, открыв «Терминал» и введя команду:

uname -a

OS X 10.8 Mountain Lion
Для Mountain Lion существует только одна версия Sandbox.kext.

OS X 10.6 Snow Leopard — 10.7 Lion
Проверьте контрольную сумму установленного у вас Sandbox.kext:

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

OS X 10.5 Leopard
Проверьте контрольную сумму установленного у вас Seatbelt.kext:

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

Сравните полученную хеш-сумму SHA1 со списком выше.

Контрольная сумма SHA1 — это уникальный криптографический отпечаток файла. Если бинарный файл отличается хотя бы на один байт, его хеш будет совершенно другим. Поскольку сам пакет .kext представляет собой папку, для расчёта хеша мы указываем путь непосредственно к исполняемому бинарному файлу внутри него.

Откуда взяты эти файлы?
Все выложенные выше кексты были извлечены из официальных пакетов обновлений с сайта поддержки Apple с помощью утилиты Pacifist (charles soft.com/).

Ручная установка через Терминал
Я предпочитаю устанавливать системные расширения вручную через «Терминал»: это помогает чётко понимать, какие файлы и куда копируются и какие права доступа и владельца им необходимо назначать. (Да, некоторые из приведённых ниже команд дублируют друг друга для надёжности — так у пользователей возникает меньше вопросов).

Краткая последовательность команд:
Перетащите скачанный кекст на Рабочий стол (при работе в Leopard замените в командах "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. Создаём каталог /backup/sandbox в корне диска для хранения резервной копии текущего кекста:

mkdir /backup/sandbox

3. Переходим в каталог /System/Library, чтобы сократить длину следующих команд:

cd /System/Library

4. Копируем текущий Sandbox.kext в папку резервной копии:

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

5. Копируем нужную версию кекста с Рабочего стола в системную папку расширений:

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

6. Назначаем правильного владельца и группу (root:wheel) для папки расширений:

chown -R root:wheel Extensions

7. Выставляем правильные права доступа (755) для папки расширений:

chmod -R 755 Extensions

8. Обновляем временную метку каталога расширений:

touch Extensions/

9. Удаляем старый кэш расширений, чтобы при следующей загрузке OS X пересобрала его с нашим новым кекстом:

rm -Rf Extensions.mkext

10. Запускаем проверку и восстановление прав доступа на системном томе:

diskutil repairpermissions /

11. Перезагружаемся с флагами загрузки -v -f:
-v (Verbose Mode) — выводит на экран подробный текстовый лог загрузки.
-f — принудительно заставляет OS X загружать все кексты напрямую из папки Extensions, игнорируя кэш.

Существуют и более короткие способы установки, но эта последовательность гарантированно решает любые проблемы с правами доступа и кэшем.

Сторонние утилиты для установки кекстов
Если вы предпочитаете графические утилиты, можете воспользоваться одним из следующих инсталляторов (на свой страх и риск):
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) вопросы по этой теме! Оставляйте свои вопросы прямо здесь в ветке, и я постараюсь ответить как можно скорее. Мой ящик личных сообщений постоянно переполняется.

Полевые заметки и отчёты сообщества

Отобрано 15 технических ответов из 20 исходных сообщений темы

Заметка #1 @eMatoS 2009-01-22

Давно пора было создать такую сводную тему! Похоже, люди совсем разучились пользоваться поиском по форуму.

Спасибо, lanceomni!

Заметка #2 @nfoav8or 2009-01-22

Отличный материал, его определённо стоит закрепить в разделе руководств [How-To]. Оставляю это на твоё усмотрение (тем более что ты сам модератор :)).

Написано очень толково и обстоятельно.

Дополнение автора #1 @lanceomni 2009-01-22 ↳ Re: @nfoav8or

Пожалуй, перенесу тему в раздел руководств. Я опубликовал этот справочник здесь и на InsanelyMac, потому что там темы с паникой ядра при монтировании DMG создают буквально по двенадцать раз на дню.

[UPD] Решил оставить её на видном месте в этом разделе, поскольку у многих пользователей наблюдается туннельное зрение и паническая боязнь кнопки «Поиск», если вы понимаете, о чём я.

Дополнение автора #2 @lanceomni 2009-01-23

На InsanelyMac мою тему наконец-то закрепили в шапке раздела (Sticky). Если я увижу там ещё хоть один новый топик с вопросом «почему падает система при открытии DMG» — честное слово, сброшусь со скалы!

Заметка #3 @oneshot 2009-03-27

Подскажите, мне нужно сначала поменять само ядро, а уже потом ставить Seatbelt.kext?

У меня установлена система 10.5.5, поверх которой я поставил ядро Voodoo 9.6.0

(и теперь при открытии любого DMG система падает в панику).

Мне лучше откатиться на ядро Voodoo 9.5.0 и поставить Seatbelt.kext от 10.5.5?

Заметка #4 @eMatoS 2009-03-27

Если само ядро 9.6.0 (от 10.5.6) работает на твоём железе отлично, проще просто обновить под него парные кексты.

Дополнение автора #3 @lanceomni 2009-03-27 ↳ Re: @eMatoS

@oneshot

Уточни: у тебя установлено официальное ядро Voodoo 9.5.0 или порт ядра 9.6.0, собранный на базе исходников Voodoo?

В целом, если сама система работает стабильно и единственная проблема заключается в панике при монтировании образов DMG, тебе нужно просто привести версии кекстов в соответствие с версией ядра. Помимо System.kext и Seatbelt.kext, трудно заранее сказать, какие ещё подводные камни могут вылезти, когда ядро новее самой базовой системы (мне чаще доводилось запускать более старое ядро на обновлённой системе, чем наоборот).

Главное — убедись, что при использовании ядра 9.6.0 у тебя установлены System.kext версии 9.6.0 и Seatbelt.kext от обновления 10.5.6.

Заметка #5 @oneshot 2009-03-28

@lanceomni

У меня система Mac OS X 10.5.5, а ядро стоит версии 9.6.0 на базе Voodoo.

Я нашёл в сети установочный образ ядра Voodoo 9.5.0, но он запакован в формат .DMG, поэтому я не могу его смонтировать и установить из-за этой самой ошибки...

Заметка #6 @eMatoS 2009-03-28

Если у тебя установлена вторая система Windows, ты легко можешь открыть образ .dmg и вытащить из него файлы с помощью программы UltraISO или TransMac.

Дополнение автора #4 @lanceomni 2009-03-28 ↳ Re: @eMatoS

Вот прямая ссылка на кекст Seatbelt.kext от версии 10.5.6 — при установке обязательно следуй инструкции из первого поста по созданию резервной копии и выставлению прав доступа:

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

Ты пытаешься создать подпапку Seatbelt внутри папки /backup, которой ещё не существует в корне диска. Введи команду с ключом -p или создай их по очереди:

mkdir /backup && mkdir /backup/Seatbelt

Тогда всё сработает.

Дополнение автора #5 @lanceomni 2011-06-23 ↳ Re: @Taisto

Ссылка на RapidShare по-прежнему жива и работает.

Thomasasz,

[UPD] удалена приватная ссылка [UPD]

Дополнение автора #6 @lanceomni 2012-11-26

Не знаю, сталкивается ли ещё кто-нибудь с проблемой несовпадения версий ядра и Sandbox.kext / Seatbelt.kext при монтировании DMG, но я заметил, что старые ссылки на файлообменники умерли, и полностью обновил первый пост темы (добавив также версии для 10.6, 10.7 и 10.8 на Dropbox).

Буду рад вашим отзывам! См. шапку темы.

Заметка #9 @gils 2012-11-26 ↳ Re: @lanceomni
@lanceomniНе знаю, сталкивается ли ещё кто-нибудь с проблемой несовпадения версий ядра и Sandbox.kext / Seatbelt.kext при монтировании DMG, но я заметил, что старые ссылки на файлообменники умерли, и полностью обновил первый пост темы...

Привет!

Проверил — все новые ссылки работают отлично!

http://www.insanelymac.com/forum/topic/148566-updated-1… ↗

Проверили и дополнили материал: @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