TRIM AutoEnabler. Автоматическая активация TRIM для SSD накопителей сторонних производителей.

Создавая набор NTFS Tools мой мозг самопроизвольно накопил приличный опыт, который не даёт мне теперь спокойно спать. В голову то и лезут всё новые и новые идеи автоматизации тех или иных не очень приятных, иногда даже “рутинных”, задач при помощи bash или shell скриптов. Одной из таких задач, как по мне, является активация TRIM для сторонних SSD накопителей. Не буду повторяться и снова рассказывать что такое TRIM и для чего он нужен, лучше сразу приступлю к повествованию о моей новой поделке 😉

И так, что же такое TRIM AutoEnabler и чем он отличается от других решений, например от того же TRIM Enabler? – Не хочется себе льстить, но как по мне, TRIM AutoEnabler выглядит более выгодно по сравнению с утилитой TRIM Enabler 🙂 В чём заключается выгода:

  • TRIM AutoEnabler состоит всего из 2-х компонентов – это исполняемый bash-скрипт, в котором, собственно, и заложена вся логика работы патчера, и автоматически запускающийся сервис представляющий из себя сконфигурированный .plist в LaunchDaemons указывающий сервису launchd как и что нужно запускать при старте системы. Итого: 2 файла общим “весом” около 20 КБ.
  • TRIM AutoEnabler не нужно постоянно обновлять, так как логика его работы позволяет патчить системное расширение ядра IOAHCIBlockStorage от любой версии Mac OS X, начиная с версии 10.6.6 и выше (поддержка TRIM появилась в сборке 10.6.6). Так будет до тех пор, пока в Apple кардинально не изменят принцип проверки валидных SSD накопителей. Но я на всякий случай искусственно ограничил работу до версии OS X 10.9.
  • TRIM AutoEnabler не нужно запускать после каждого обновления ОС – при загрузке системы запускается модуль trim_autoenabler, быстренько проверяет пропатчен ли IOAHCIBlockStorage – если пропатчен, то всё ОК; если не пропатчен – делает бекап оригинала, патчит и перезагружает систему (не стоит бояться двойной перезагрузки после обновления ОС). Таким образом будет трудно забыть о необходимости патчинга системы для активации TRIM (как это может произойти с использованием других утилит).
  • TRIM AutoEnabler в принципе ни как не может повредить систему и никак не модифицирует системные файлы (кроме IOAHCIBlockStorage).

Из минусов:

  • Нет встроенной утилиты проверки S.M.A.R.T., которая есть в TRIM Enabler (TRIM AutoEnabler вообще не имеет интервейса – это сервис).
  • Нет оповещения о перезагрузке и нет выбора: перезагрузиться сейчас или позже (перезагрузка происходит автоматом).

С сегодняшнего для версия TRIM AutoEnabler под версией 1.0 доступна для загрузки. Это не Beta, а готовая к употреблению продукция 😉 Как всегда утилита абсолютно бесплатна. Кстати, чтоб удалить утилиту подчистую (может кто захочет) нужно через Терминал выполнить последовательно следующие команды: Получаем привилегии администратора:

sudo -s

Удаляем автозапуск:

rm /System/Library/LaunchDaemons/com.macdaily.trimautoenabler.plist

Удаляем патчер:

rm /sbin/trim_autoenabler

Переходим в папку с бекапом:

cd /System/Library/Extensions/IOAHCIFamily.kext/\
Contents/PlugIns/IOAHCIBlockStorage.kext/Contents/MacOS/

Смотрим какое имя у бекапа:

ls

Смотрим и запоминает имя IOAHCIBlockStorage_ВЕРСИЯОС_СБОРКА. Восстанавливаем оригинальный файл IOAHCIBlockStorage из резервной копии:

mv IOAHCIBlockStorage_ВЕРСИЯ_СБОРКА IOAHCIBlockStorage

Чистим кеш:

kextcache -system-prelinked-kernel; kextcache -system-caches

Перезагружаемся. В следующей версии добавлю функцию автоматического удаления. Ах да, вирусов и вредоносных кодов в пакете нет, но, на всякий случай я снимаю с себя ответственность из-за каких либо потерь 😉 Тестируем, отписываемся (может у кого-что не работает) – я оттестировал на OS X Lion (10.7) и OS X Mountain Lion (10.8).

 

Скачать TRIM AutoEnabler

Share this article
0
Share
Prev Post

Файловые системы Mac OS X. FAT12, FAT16 и FAT32.

Next Post

Дисковая утилита в OS X Mountain Lion научилась "не ронять" таблицу разделов.

Comments 112
  1. Спасибо,Вам, за статью и утилиту, готовлюсь к SSD.

    В связи с этим вопрос, на Маке обновление прошивки SSD каким образом проходит?

    P.S. как Вам новые Samsung SSD 840 Series ?

    1. Пожалуйста 😉 И можно на “ты”. На Mac обновление прошивки SSD проходит “тёмно” так как не все производители SSD’шек выпускают утилиты обновления прошивки именно под Mac. Но, на сколько я знаю, практически все производители выпускают утилиты обновления прошивки в виде загрузочных образов для CD/DVD/FLASH, так что проблемы с обновлением, в принципе, быть не должно. Главное – это “прямые” руки, трезвая голова и бекап 😉 SSD Samsung 840 серии это вообще жирный жир, 830 серия “перчила” своей производительностью, про 840 я вообще молчу. По мне – это самый лучший SSD (на сегодня), вторым в списке у меня Samsung 830 серии.

      1. Это отлично,спасибо тебе за инфу!

        Продолжай радовать обзорами и утилитами.

  2. Вот здОрово! Tnx for AutoEnabler. А то постоянно забывал проверять его после Upgrade.
    Первым из 2-х минусов вашей программы отмечено: “Нет оповещения о перезагрузке и нет выбора: перезагрузиться сейчас или позже (перезагрузка происходит автоматом)”.
    Мне показалось, что я такое предупреждение получил, и только потом нажал “Перегрузить “.

    А вот Удаление через Terminal не устраивает. Конечно, буду ждать его следующую версию.
    Успехов вам во всем!
    С уважением,

  3. Поставил программу на OS X 10.8.2, SSD Samsung 830 256 гб.
    Полет в штатном режиме, TRIM активировался – после очередного обновления ОС отпишу комментарии.

  4. а я вот обновился на 10.8.3 и поддержка trim осталась, кстати на 10.8.2 запустил его вашей утилитой TRIM AutoEnabler. Это так должно быть? просто думал что при каждом обновлении активировать нужно будет каждый раз

    1. Я ещё не проверил обновляется ли кекст IOAHCIBlockStorage.kext, но вообще: «TRIM AutoEnabler не нужно запускать после каждого обновления ОС — при загрузке системы запускается модуль trim_autoenabler, быстренько проверяет пропатчен ли IOAHCIBlockStorage — если пропатчен, то всё ОК; если не пропатчен — делает бекап оригинала, патчит и перезагружает систему…». Поэтому TRIM AutoEnabler и называется «автоэнейблером» 😉

  5. кстати система перезагрузилась два раза, я сначала не понял почему, теперь понятно))

  6. это конечно хорошо но как я понимаю это утилита на макбук. Я себе планировал апгрейд и переход на SSD но не знаю сможет ли эта утилита работать на хакинтоше?Было бы интересно узнать есть ли такой опыт у кого нибудь из пользователей

    1. Работает и на хакинтошах, проверялось. Только активация TRIM иногда плохо сказывается на SSD накопителях с контроллером SandForce 2.

      1. Саша благодарю за подсказку.Придется покопаться в железе но думаю смогу с этим разобраться

  7. Автору большое спасибо!
    Я только не понял куда денег слать, нужен донейт!

  8. Огромное спасибо автору, удалось, наконец, вновь активизировать Trim для M4-CT128M4SSD2 на 10.8.5. С терминальными командами ничего не получалось, хорошо, что ничего не порушил.

  9. Mavericks вышел! Ждем обновления утилиты, ибо не работает, уперевшись в ограничение версии 10.9…

    1. Да, это заведомо было сделано т.к. неизвестно, какой «сюрприз» мог бы приготовить релиз. Сегодня я уже протестировал новую версию патчера, так что к вечеру (надеюсь), опубликую новый пакет.

  10. Нид хелп! Положил Мэйверикс на макбуке при помощи трим энейблера 3.1.2… Хотя на макмини все прекрасно работает. Теперь на макбуке умею ошибку Still waiting for root device. Скопировал через терминал немодифицированные IOACHIFamily и IOATAFamily.kext на прошку с макмини, очистил кеш, а грузиться прошка все равно не желает. Посоветуй, плиз, где копать… Спс!

    1. Решил проблему сам. Вытащил оригинальные kext из инсталлятора, положил в Extensions, очистил кэш, восстановил права и только после этого все ожило.
      Вывод – поспешишь – людей насмешишь. Жду с нетерпением обновления утилиты.
      ПС: странно только, что на минике все ОК…

  11. У меня прилетел сегодня MacBook Pro 13″ не ретина, SSD Samsung 840Pro 256Gb – все отлично работает)

  12. Здравствуйте!
    У меня при запуске инсталлера пишет: “Installation cannot proceed, as not all requirements were met.” Одна кнопочка “Закрыть”. Как посмотреть, какие требования не разрешены?
    Спасибо

    1. Хм… Проверю – отпишусь. Возможно это я протупил, указав максимальную поддерживаемую версию 10.9.0.

  13. Здравствуйте! подскажите как скоро выйдет обновление для версии 10.9.1? и ещё, вы не в курсе случаем ssd plextor m5s 128gb поддерживает trim?

  14. Mavericks 10.9.1, Mac mini Late 2013, SSD Samsung EVO 840. При установке получаю “Installation cannot proceed, as not all requirements were met.”

  15. Mavericks 10.9.2 (13C64); MacBook Pro 13-inch, Mid 2012; Samsung SSD 840 PRO 128GB — все отлично работает, спасибо.

  16. Mavericks 10.9.3 (13D65) MacBook Pro 1286 SSD CRUCIAL M500 CT240M500SSD1, 240Гб – отвалился TRIM после обновления. Переустановка не помогла.

  17. Добрый день. На некоторых форумах пишут, что на Maverick 10.9.3 не работает. Если можно поправьте пожалуйста .

    1. Приветствую! Работает, но кеш нужно по-прежнему чистить ручками и перезагружаться. Поправлю.

  18. Странно я же вчера вводил тут сообщение?? Исчезло мое сообщение:( Слетел TRIM при update Maverick 10.9.3! Просьба сделать если возможно чтобы заработал TRIM на Maverick 10.9.3 Пожалуйста сделайте может чтобы не слетало после каждой версии. Кстати на других сайтах я видел сообщения что слетел TRIM у других пользователей при обновлении на 10.9.3

    1. Нужно всего-навсего ручками почистить кеши (команду где-то вверху постил) и перезагрузиться. Пока нет времени запилить обновление, простите.

  19. Вот и вышла 10.10, в ней программа соответственно не работает. Похоже Apple что-то поменяли и скрипты приводят к незагружаемости системы – приходится возвращать всё обратно. Не пробовали ли вы еще эту ос?

    1. С серединки на половинку пробовал. Скрипт работает, но отныне OS X проверяет целостность цифровой подписи кекстов при их загрузке. Патченный кекст = повреждение цифровой подписи = kernel_panic. Пока можно всё завести ручками:
      1) Отключаем проверку цифровой подписи (игнорим её):

      sudo nvram boot-args="kext-dev-mode=1"
      

      2) Ручками патчим кекст:

      perl -pi -e 's|\x41\x50\x50\x4C\x45\x20\x53\x53\x44\x20\x54\x53|\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00|g' "${KEXT_DIR}/IOAHCIBlockStorage";
      perl -pi -e 's|\x41\x50\x50\x4C\x45\x20\x53\x53\x44|\x00\x00\x00\x00\x00\x00\x00\x00\x00|g' "${KEXT_DIR}/IOAHCIBlockStorage"
      

      3) Чистим кеш:

      sudo kextcache -m /System/Library/Caches/com.apple.kext.caches/Startup/Extensions.mkext /System/Library/Extensions
      

      4) Перезагружаемся:

      reboot
      
  20. Добрый день. Спасибо за ответ. Новый вопрос: будет ли утилита работать на OS X Yosemite?

    1. Будет работать, но чуть позже. Там немного изменился принцип: теперь OS X Yosemite проверяет целостность цифровой подписи у расширений. Если кекст (расширение) патченное, то система нифига не загрузится (паника ядра будет скорее всего). Посему после патчинга кекста нужно ещё отключить проверку цифровой подписи.

  21. 10.9.4 – поставил обновление, ну и как следствие – “Поддержка TRIM – Нет”. – что я делаю не так?

    1. Ну и собственно кэш чистил, как написано ниже, программу переустанавливал..
      sudo kextcache -m /System/Library/Caches/com.apple.kext.caches/Startup/Extensions.mkext /System/Library/Extensions
      Все равно не включается.

        1. Спасибо, жду. Пока живем без TRIM. Не понятно, кстати, для OWC Aura SSD надо ли использовать Trim, деталей не нашел.

          1. Получил кстати ответ от производителя SSD – We do not recommend enabling TRIM with our SSDs. They have built in processes that can help to maintain them over time. TRIM can interfere with those processes and potentially cause issues with the drive.

            Для справки – OWC Aura SSD

    1. Всё работает, но нужно кэш чистить:
      1)

      sudo -s
      

      Вводим админский пароль.
      2)

      touch /System/Library/Extensions; kextcache -system-prelinked-kernel; kextcache -system-caches
      

      Перезагружаемся.

      З.Ы.: Всё никак руки не доходят переписать скрипт, чтобы это всё на автомате делалось.

        1. Кеш нужно руками почистить и перезагрузиться. Недоделка с моей стороны, и времени подчинить пока нет 🙁

  22. Спасибо за утилиту, но очень желанна поддержка 10.9.4. На автомате клацнул апдейт, и трим рухнул

      1. А будет ли поддержка 10.10?
        И еще вопрос: у меня стояла программа на 10.9.5, сегодня обновился на 10.10, собственно программа не накосят сама ничего (вроде читал что там автопатчинг и всё такое)?

  23. Нашел опечатку в скрипте “TRIM AutoEnabler/trimautoenabler.pkg/Payload”

    ...
    if [ "$SYSVER" = "10.8" ] || [ "$SYSVER" = "10.9" ]; then
    ...
    perl -pi -e 's|\x41\x50\x50\x4C\x45\x20\x53\x53\x44\x20\x54\x53|\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00|g' "${KEXT_DIR}/IOAHCIBlockStorage
    

    – нехватает двойной закрывающей кавычки

    + Хорошо бы вызывать /usr/bin/grep вместо grep. У меня например есть /usr/local/bin/grep, подменяющий grep на ggrep (gnu реализация – та что в linux используется), а он работает по-другому. В результате проверка на наличие строки из скрипта не срабатывает.

    Хорошо бы исходники на github или bitbucket чтобы пакет вручную не раскурочивать, заодно и изменения будут видны.

    За скрипт/сервис спасибо, полезный.

  24. Стоял TRIM enabler. установил yosemite и не прочитал про совместимость(( включил трим пока все работало и перезагрузился(( система не загружается( переустановка с флешки поверх не помогает( возможно как то через терминал вернуть старый файл или что то аналогичное??

  25. на 10.10 что то все грустно с тримом. Эпл ввели защиту от модификации кекстов…. Есть шанс повторить утилиту?

  26. Увы, на 10.10 не работает.
    Пробовал ручками по примеру выше.

    Когда будет релиз утилиты под 10.10?
    Спасибо!

  27. Замечательная утилита. Пользоваться на Maverics, Спасибо! Есть ли новости о поддержке 10.10?

  28. Вопрос – работает ли режим TRIM по умолчанию на родном ssd диске, который сразу в маке шел? Или же активация TRIM нужна только когда меняешь ssd диск на какой-то другой, который эппл не поддерживает???

    1. На оригинальный SSD TRIM работает «из коробки». Так точно, «активация TRIM нужна только когда меняешь ssd диск на какой-то другой, который эппл не поддерживает».

  29. Подскажите каким образом можно модифицировать файл установщика для возможности установки на Yosemite 10.10.2? Там у Вас явно установлено ограничение версии.

  30. Подскажите что и как (чем) поменять в файле установщика что бы была возможность поставить на Yosemite 10.10.2? Вылетает ошибка что установщик не удовлетворяет всем требованиям (я думаю что Вами ограничена максимально возможная версия).

    1. Не рекомендую (пока что) ставить этот пакет на OS X 10.10. Там поменялся способ патчинга (правильнее сказать не сам способ, а метод подписывания kext’ов), поэтому бездумное выполнение скрипта может «положить» ОС. До новой ОС пока не добрался. В процессе.

  31. Обновил аймак на 10.10.2 и трим накрылся… Слезная просьба – делать что?)

  32. В ручную к сожалению не получается пишет что не видит дериктории. Версия 10.10.2

  33. Trim Enabler был установлен после установки Yosemite 10.10.2 и работал как-то сам, все время был активен. Сейчас после любой перезагрузки аймака он выключен, при включении – переводе в положение ON – выдается сообщение Please reboot for changes to take effect. Посл перезагрузки он снова OFF.
    Что делать, непонятно, может быть, вы подcкажете?

    В системе вот такое вот написано, про поддержку ТРИМ ни слова
    Macintosh SSD:

    Available: 160,23 GB (160 227 340 288 bytes)
    Capacity: 239,2 GB (239 197 650 944 bytes)
    Mount Point: /
    File System: Journaled HFS+
    Writable: Yes
    Ignore Ownership: No
    BSD Name: disk0s2
    Volume UUID: A969C3AE-A08A-3928-B444-DE519A74BA87
    Physical Drive:
    Media Name: Corsair Force GT Media
    Medium Type: SSD
    Protocol: SATA
    Internal: Yes
    Partition Map Type: GPT (GUID Partition Table)
    S.M.A.R.T. Status: Verified

    1. Дополнение: комп купила у предыдущего хозяина, разбираюсь плохо, все ПО было установлено предыдущим хозяином.

      1. В OS X 10.10 поменялся немного принцип патчинга расширений ядра, теперь для активации TRIM нужно делать немного больше манипуляций. Но, к сожалению, я не разбирался в принципе работы нового Trim Enabler, так что ничего подсказать не могу. Попробуйте написать разработчикам этой утилиты.

  34. Добрый вечер не могу создать “Fusion Drive” на OC Yosemite 10.10.3 система не дает.В дисковой утилите отказывается форматировать SSD Samsung840evo. Создавать в Maverick,а потом обновлять? Как быть с TRIM? Спасибо

  35. Спасибо за программу! Очень понравилась ее работа! Все просто и в стиле Apple!:-)

  36. здравствуйте! есть вопрос! установил ссд самсунг и использовал Вашу утилиту! трим заработал. после обновления безопасности поддержка трима пропала.
    я заново запустил Вашу утилиту, перезагрузил компьютер, но поддержка трима так и не появилась.
    Вспомнил, что где-то слышал, что если почистить КЭШ может появиться поддержка трима.
    Вошел в ТЕРМИНАЛ и написал:
    sudo -s
    ввел пароль администратора и далее
    kextcache -system-prelinked-kernel; kextcache -system-caches
    после этого действия просто закрыл окно терминала.
    Перезагрузил.
    ТРИМ появился!!!

    Вопрос! Я все правильно сделал? ничего ненужного не удалил своими действиями и что делать после очередного обновления?
    Нужно заново устанавливать программу или просто почистить КЭШ?

  37. Спасибо поставил на Maverick 10.9.5! Всё ок пока! SSD OCZ-VEKTOR 150 ставил на Macbook pro 13года в 14 году. Консерватор ))) не люблю менять оси, тем более , что в новых ни иконки мультяшные не нравятся, ни цвет шрифтов-всё блёклое какое-то не яблочное (я на Маке еще с Powerbook4 последние на IBM проце кстати жив и здравствует )))) ). Обновлялся и опять вернулся на 10.9. Пробовал руками , но чёта не так шло с паролем. Так что ещё раз спасибо!!!

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Read next

«Баги» в iOS 7 beta 1.

Привет всем! 10 июня на WWDC 2013 была представлена бета-версия мобильной операционной системы iOS 7. Сразу же…