TRIM AutoEnabler

Создавая набор 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


Метки:
 
Понравилось? Поделись с друзьями!
  • Спасибо,Вам, за статью и утилиту, готовлюсь к SSD.

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

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

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

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

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

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

  • M4-CT064M4SSD на OS X 10.8.2
    Все включилось и работает! Thx!

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

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

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

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

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

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

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

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

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

  • а для mavericks не работает

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

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

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

  • Ну когда же релиз? :)))

  • Давно пора)

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

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

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

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

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

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

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

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

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

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

    • С серединки на половинку пробовал. Скрипт работает, но отныне 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
      

      Casing    Виталий

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

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

  • 10.9.4 — поставил обновление, ну и как следствие — «Поддержка TRIM — Нет». — что я делаю не так?

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

  • у кого нибудь заработал Трим на 10.9.4?

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

      sudo -s
      

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

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

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

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

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

  • Утилита совместима с public beta OS X 10.10?

  • Нашел опечатку в скрипте «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 чтобы пакет вручную не раскурочивать, заодно и изменения будут видны.

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

    • Огромное спасибо! Буду потихоньку возвращаться к блогу и навёрстывать упущенное.
      Casing    rekby

  • 10.9.5 — после чистки кеша полет отличный

  • Но все же нужно допилить эту проверку до автоматизма.

  • Здравствуйте, а будет ли поддержка 10.10

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

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

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

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

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

  • Как там с 10.10 ?

  • Не могу запустить утилиту на 10.10, не поддерживает данную версию?

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

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

  • не могу установить(
    пишут: Installation cannot proceed, as not all requirements were met.

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

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

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

  • Добрый вечер, когда будет программка для Yosemite 10.10.2, очень жду:(((

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

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

  • 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

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

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

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

  • Спасибо, отличная утилита!

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

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

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