Активация TRIM для Mac OS Lion [SSD only]

в 14:56, , рубрики: Enabler, mac os x, MacOS, terminal, trim, TRIM Enabler, включение, высокая производительность, Железо, макось

Здравствуйте, уважаемые читатели.

Этот перевод предназначен в первую очередь для тех, кто уже использует SSD диск и MacOS Lion. Лично я год с хвостиком радуюсь производительности SSD Intel X-25M и отсутствию карусельки смерти Активация TRIM для Mac OS Lion [SSD only] чего и вам от души желаю.

До сегодняшнего дня я был уверен, что мой SSD работает на 100% своих возможностей. Но не тут-то было! Если вы купили свой яблочный компьютер без SSD, то есть из магазина он выехал с обычным HDD, то обещанный во Льве TRIM у вас будет не активен, как оказалось только изначально укомплектованные SSD накопителем компьютеры имеют эту функцию по умолчанию. Проблема, как вы понимаете, в вызывающем вопросы маркетинге компании имеет софтверные корни, а не железные. И на эту подлянку от Apple мистер Грант Пеннэл предлагает свой болт с резьбой.

Прежде чем перейти непосредственно к переводу, предлагаю вам проверить, работает у вас TRIM или нет:
Активация TRIM для Mac OS Lion [SSD only]

Если Да — извиняюсь, что побеспокоил… если Нет, эта статья для вас:

Ни в коем случае не используйте программу TRIM ENABLER (1.1 или 1.2) для активации TRIM во Льве.

После небольшой проверки этого приложения я обнаружил, что вместо обычного патча она заменяет важнейший системный файл на уровне ядра системы. Это значит, что если вы использовали TRIM Enabler, то он заменил файл с массой тянущихся из него ниточек по всей MacOS (особенно актуально для тех кто переехал на Льва из MacOS Snow Leopard 10.6.8). А это плохо. Очень плохо. На ряду с тем, что TRIM действительно включается, появляется реальная опасность столкнуться с вагоном проблем, начиная от kernel panic и заканчивая проблемами ввода/вывода (I/O), и вот тогда-то вас точно настигнет вращающийся и пугающий пляжный мяч. Активация TRIM для Mac OS Lion [SSD only]

В процессе дискуссии с разработчиком этого приложения (Oskar Groth) я услышал лишь обвинения через комментарии к его блогу, что мол занимаюсь троллингом и нагоняю страху (хотя на самом деле и в большей мере я пытался предложить альтернативный вариант, который представлен ниже). Вероятно — в следующей версии TRIM Enabler — файл будет корректно патчится, вместо его прямой замены, тем не менее этого апдейта до сих пор не произошло.

Итак, вот правильный способ по включению поддержки TRIM. Для этого следует выполнить следующие команды в терминале:

1. Для начала делаем резервное копирование файла, который будем патчить:

sudo cp /System/Library/Extensions/IOAHCIFamily.kext/Contents/PlugIns/IOAHCIBlockStorage.kext/Contents/MacOS/IOAHCIBlockStorage /System/Library/Extensions/IOAHCIFamily.kext/Contents/PlugIns/IOAHCIBlockStorage.kext/Contents/MacOS/IOAHCIBlockStorage.original

2. Пропатчиваем файл, тем самым активируем поддержку TRIM:

sudo perl -pi -e 's|(x52x6Fx74x61x74x69x6Fx6Ex61x6Cx00{1,20})[^x00]{9}(x00{1,20}x51)|$1x00x00x00x00x00x00x00x00x00$2|sg' /System/Library/Extensions/IOAHCIFamily.kext/Contents/PlugIns/IOAHCIBlockStorage.kext/Contents/MacOS/IOAHCIBlockStorage

3. Чистим кэш:

sudo kextcache -system-prelinked-kernel
sudo kextcache -system-caches

Теперь перезагружаемся!

Если вдруг понадобится отключить поддержку TRIM:

1. Отключение:

sudo perl -pi -e 's|(x52x6Fx74x61x74x69x6Fx6Ex61x6Cx00).{9}(x00x51)|$1x41x50x50x4Cx45x20x53x53x44$2|sg' /System/Library/Extensions/IOAHCIFamily.kext/Contents/PlugIns/IOAHCIBlockStorage.kext/Contents/MacOS/IOAHCIBlockStorage

sudo kextcache -system-prelinked-kernel

sudo kextcache -system-caches

2. Восстановление файла из бэкапа:

sudo cp /System/Library/Extensions/IOAHCIFamily.kext/Contents/PlugIns/IOAHCIBlockStorage.kext/Contents/MacOS/IOAHCIBlockStorage.original /System/Library/Extensions/IOAHCIFamily.kext/Contents/PlugIns/IOAHCIBlockStorage.kext/Contents/MacOS/IOAHCIBlockStorage

Всё что делает этот патч, это замена фразы “APPLE SSD” на нули в файле IOAHCIBlockStorage. Это необходимо для того, что бы обойти ограничение самой Apple на использование только брендовых SSD дисков. Бэкап файла сохраняется в той же директории где лежит оригинальный файл.

Для проверки, активизировался ли TRIM, зайдите сюда: Об этом Mac > Отчёт о системе >
Активация TRIM для Mac OS Lion [SSD only]

Помните, если у вас бородатое поколение SSD и оборудование само по себе не поддерживает TRIM… этот патч не поможет. Патч всего-лишь обходит ограничение, созданное самой Apple, что бы ограничить TRIM поддержку для любых SSD, которые не под яблочным брендом.

Важно:
К сожалению придётся каждый раз проводить эту операцию после крупного обновления OS X 10.7.1 > 10.7.2 > 10.7.3 > и так далее..., ибо ключевой файл обновляется почти каждый раз при обновлении ОС (если оно не дежурное).

Разобравшись с TRIM Enabler и невзлюбив его метод я начал искать вменяемое решение… нашёл его тут.

Записи контрольных сумм MD5 для оригинала и пропатченного файл в 10.7.0 следующие:
Оригинал: 155b426c856c854e54936339fbc88d72
Изменённый: 945944136009c9228fffb513ab5bf734

Если вы уже использовали TRIM Enabler, вы можете сделать следующее:

  • Попытаться скопировать и заменить ключевой файл с другого Mac под управлением той же версии.
  • Попытаться скопировать и заменить ключевой файл из Раздела для восстановления (Откройте Дисковую утилиту > Mount Recovery HD)
  • Переустановить Льва
  • Ждать следующего апдейта OS до 10.7.* и надеяться, что ключевой файл будет заменён при обновлении (что, кстати, де-факто), и уже после этого применять нормальный патч.

— конец перевода —

Дальше в статье идут разжёвывания Википедии, что TRIM не работает на стандартных HDD, что компьютер не дурак и может отличить HDD от SSD, что SSD не может греться больше при активации TRIM, что патч никак не может повлиять на работу системы, так как не вносит никаких изменений в работу самого ядра, что если включить TRIM, а у вас HDD, то ничего не произойдёт и все команды будут просто игнорироваться… ну и так далее. В общем: так как автор назвался грибом, пришлось залезать в короб по самую шляпку и отвечать всем. При наличии подобных вопросов в местных комментариях — буду переводить его послесловия с префиксом «Update», порционно.

Результативных вам усTRIMлений. Спасибо за внимание.

Автор: SeiFeR

* - обязательные к заполнению поля


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js