SSD Trim Support unter Mac OSX Lion aktivieren

Ich konnte bisher nicht viel mit dem “Trim” Befehl für SSDs anfangen – bis ich den Grund für diesen Befehl nun selbst erfahren durfte. Nachdem sich meine SSD langsam aber sicher gefüllt hat, wurden kurzerhand die iPhoto und iTunes Librarys auf eine externe USB Festplatte verlagert. Dumm nur: ich hatte danach genauso viel freien Speicher wie vorher. Und dass, obwohl ich an die 10.000 Bilder entfernt hatte.

Das Problem an SSDs ist nämlich: löscht man eine Datei, dann wird, wie bei normalen magnetischen Festplatten auch, nur die Referenz auf diese Datei gelöscht. Die Nullen und Einsen, aus denen die Datei mal bestanden hat, bleiben erstmal auf der Platte liegen. Erst wenn dieser frei gewordene Platz für andere Dateien benötigt wird, so wird er mit den neuen Daten überschrieben. Funktioniert dies bei magnetischen Speichern problemlos, ist es bei Flash Speicher nicht ganz so leicht. Hier muss nämlich der zu schreibende Datenbereich wirklich gelöscht werden.

Normalerweise sollte dies der Controller der Festplatte übernehmen – z.B. in Zeiten geringer Belastung, also wenn die Festplatte gerade nichts anderes zu tun hat. In meinem Fall hat er es offensichtlich nicht getan. Und dafür gibt es nun den sogn. Trim Befehl, den das Betriebssystem an die Platte schicken kann und somit veranlasst, dass frei gewordener Speicher auch gelöscht wird.

Gütigerweise hat Apple den Support dafür auch unter OSX Lion eingebaut – aber nur für die original von Apple verbauten SSDs. Selbst eingebaute SSDs kommen nicht in den Genuss. Da mein Gerät von Gravis zusammengestellt wurde, ist offensichtlich keine original Hardware verwendet worden. Was nicht schlimm ist, aber eben die von mir beobachtete fehlerhafte Speicherplatzanzeige brachte.

Glücklicherweise kann man dieses Verhalten ändern – indem man Trim für ALLE SSDs freischaltet. Und das geht so:

Bevor ihr loslegt: ich übernehme keinerlei Haftung oder Verantwortung, falls ihr eure Hardware oder euer System beschädigt. Alle Aktionen werden auf eigene Gefahr durchgeführt. Sicherheitshalber sollte man vorher nochmal Timemachine laufen lassen, um ein valides Backup vom kompletten System zu haben!

  • Terminal öffnen
  • Backup des zuständigen Treibers erstellen:
  • 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

  • Treiber patchen:
  • sudo perl -pi -e 's|(\x52\x6F\x74\x61\x74\x69\x6F\x6E\x61\x6C\x00{1,20})[^\x00]{9}(\x00{1,20}\x51)|$1\x00\x00\x00\x00\x00\x00\x00\x00\x00$2|sg' /System/Library/Extensions/IOAHCIFamily.kext/Contents/PlugIns/IOAHCIBlockStorage.kext/Contents/MacOS/IOAHCIBlockStorage

  • Caches löschen:
  • sudo kextcache -system-prelinked-kernel
    sudo kextcache -system-caches

  • Reboot!

Überprüfung: links oben auf den Apfel -> über diesen Mac -> weitere Informationen -> Systembericht -> Serial-ATA anklicken.
Unter “Trim Unterstützung” sollte nun “Ja” stehen.

Will man den Patch wieder rückgängig machen:

  • Patch rückgängig machen:
  • sudo perl -pi -e 's|(\x52\x6F\x74\x61\x74\x69\x6F\x6E\x61\x6C\x00).{9}(\x00\x51)|$1\x41\x50\x50\x4C\x45\x20\x53\x53\x44$2|sg' /System/Library/Extensions/IOAHCIFamily.kext/Contents/PlugIns/IOAHCIBlockStorage.kext/Contents/MacOS/IOAHCIBlockStorage

  • Caches löschen:
  • sudo kextcache -system-prelinked-kernel
    sudo kextcache -system-caches

  • Reboot!

und sollten alle Stricke reißen, dann kann man immer noch das zuvor erstellte Backup wieder einspielen:

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
reboot

via digitaldj.net

Published by

bytelude

Softwareentwickler, Technik Fanatiker, Apple Fan, Kinoliebhaber, Prokrastinations-Spezialist

70 thoughts on “SSD Trim Support unter Mac OSX Lion aktivieren”

  1. Auch ein Danke von mir für den Beitrag, läuft soweit ich sehe. Irgendwie ist das aber auch unbefriedigend, Apple nimmt sich schon arg zurück sobald man einmal nicht das Spielchen “Original-von-Apple-abgesegnete-Hardware-ich zahle-das-dreifache-und nehme-das-was-Apple-für-richtig-hält” mitspielt.
    Gravis hätte das übrigens in meinen Augen umgehend korrigieren müssen, es ist jetzt aber nicht aus dem Beitrag ersichtlich ob dort nachgefragt wurde.

    1. Nein, gravis wurde nicht angesprochen. Das Teil ist mein Arbeitsgerät, daher konnte ich nicht warten und musste das Problem selbst lösen…
      Als Privatkunde hätte ich es zurück gebracht und Ersatz gefordert…

  2. Wow, nach langer Suche ein wirklich guter Tip,- Trim ist aktiviert. (Habe allerdings kein Backup des zuständigen Treibers gemacht, kann das mal Probleme geben??)
    Also: Danke!

  3. Bei mir ist TRIM ebenfalls deaktiviert.
    Ich habe nun ein paar Dateien gelöscht und den Papierkorb geleert. Dabei wurde mein Festplattenspeicher wieder freigesetzt. Ist das “normal” bei deaktiviertem TRIM oder sind hier wirklich nur “Auslagerungsdateien” gemeint die den Speicher nicht freigeben.

    Ich werde nicht so recht schlau aus der TRIM Geschichte 🙁

    vielen Dank für eure Kommentare.

    1. Ehrlich gesagt: keine Ahnung 😉
      Wenn es bei dir auch ohne funktioniert, dann ist doch alles bestens…

  4. Ich habe nach der TRIM Aktivierung nun das Phänomen, dass mein Speicherplatz nach dem Löschen von Dateien nicht frei wird.

    Wenn ich mir die Informationen über Finder –> Festplatte aufrufe, sehe ich als Verfügbaren Speicher 48GB.
    Gehe ich aber über iStat Pro oder das Festplatten-Dienstprogram auf die Informationen, sehe ich als freien Speicher lediglich 26GB. Hat das was mit der TRIM Aktivierung zu tun?

    Ich bin am überlegen ob ich eine Time Machine Systemwiederherstellung machen sollte.

    Danke für eure Hilfe.

    1. Mh, bei mir war es genau umgekehrt. Es dauert manchmal etwas, ehe der Speicher frei wird. Hast du mal erneut neu gestartet? Ich würde mich eigentlich immer auf den Finder verlassen, der liefert die richtigen Werte. Um ganz sicher zu gehen, geh auf die Console und gib da “df -h” ein – dann siehst, wie viel Speicher frei bzw. belegt ist.
      Alternativ kannst ja einfach den Patch rückgängig machen, dann brauchst keine komplette Wiederherstellung…

  5. ich hatte den pactch rückgängig gemacht und das Backup eingespielt und habe festgestellt, dass sich nichts geändert hat.
    anschließend hab ich über time machine das system wiederhergestellt und festgestellt, dass es dort genau so ist 🙂

    nun habe ich TRIM wieder an und konnte noch den folgenden Link finden:
    http://support.apple.com/kb/HT4878?viewlocale=de_DE

    es ist also normal.

    PS: mittlerweile passen die Werte wieder überein. Das system war lediglich für ein paar stunden aus. scheint geholfen zu haben.

    VG

  6. Man patched ja den Treiber, oftmals werden mit einem OS Update neue Versionen der Treiberdateien eingespielt und somit die alte (gepatchte) Datei überschrieben.
    Das macht dann natürlich ein Neu-Patchen nötig.

    Am besten nach jedem Systemupdate prüfen ob die Funktion noch aktiv ist.

    Wer sich das Gepatche im Terminal sparen will, kann das Ganze auch einfach mit dem kleinen Tool “Trim Enabler” erledigen, so Klicki-Bunti-Mac-like 😉

    1. zumindest zu dem Zeitpunkt, als ich diesen Patch durchgeführt hatte, war das Tool mit Lion noch nicht kompatibel. Sofern es das nun ist, sollte man natürlich lieber die fancy-Lösung nehmen 😉

  7. Vielen Dank!!! hat ganz einfach hingehauen! 🙂 ich war mir nur nicht immer sofort sicher ob er die befehle angenommen hat. aber es hat funktioniert! 🙂

  8. erst mal Danke, ich bin sehr überrascht über diesen Beitrag: einfach, übersichtlich, klar. Schön, dass es im Internet doch noch brauchbare Ressourcen gibt, Kompliment.
    Hat super funktioniert.

  9. Danke!!!!!
    habe heute diese Anleitung befolgt.
    06.05.2012
    TRIMMUNTERSTÜTZUNG = JA

  10. Hi.

    Habe gerade die Anleitung unter 10.7.4 angewendet.
    Alles prima.
    Hat geklappt.
    Danke

  11. Danke für den tollen Tipp. Ich habe nun TRIM enabled. Vorher habe ich aber schon größere Datenmengen gelöscht, werden diese nun automatisch gelöscht?

    Gruß Thorsten

    1. Ja, das sollte nach einer Weile von selbst aufgeräumt werden. Ein Neustart des Systems hilft aber auch immer wieder 😉

  12. Habe einen iMac 20 aus 2008 und mir eine Samsung mit 256GB bestellt werde das mal testen und berichten

  13. Ich habe hier eine SSD-Platte extern per Firewire800 an mein MBP angeschlossen. Leider funktioniert dieser Trick damit offensichtlich nicht. Hat jemand eine Idee, wie ich den TRIM-Support für den Firewire-Anschluss aktivieren kann?

  14. SSD ist eingebaut , auch ohne Probleme und Schäden, der alte iMac rennt wie verrückt, klar die CPU ist nicht schneller geworden, aber das Ergebnis ist mehr als nur besser. trim Befehl
    Eingestellt und läuft ich kann es nur jedem Empfelen

  15. Wie ist das denn bei externen SSDs?
    Muss man das da auch machen bzw. wie stelle ich fest, ob der TRIM-Befehl da aktiviert ist oder nicht? (Ich benutze solche eine Platte als Speichermedium für TimeMachine.)

    1. Normalerweise wie bei internen Platten, also über die Systeminformationen. Ob es wirklich notwendig ist kann ich dir nicht mit Sicherheit sagen.

  16. Habe das heute nach dem Upgrade auf Mountain-Lion ausgeführt und es schein zu funktionieren.
    Zumindest steht es im Systembericht wieder “TRIM-Unterstützung: Ja”

    MacBookPro8,2 mit OCZ-Vertex3 240GB

  17. Hier wird öfter darauf Bezug genommen, TRIM-Unterstützung verändere etwas am “Verfügbaren Speicher” des Mediums. Unter “verfügbarer Seicher” wird erwartungsgemäß das angezeigt, was aus Dateisystem-Sicht frei ist. Daran erkennt man aber nicht, in wieweit der Festplattencontroller über die freien Stellen auch informiert ist.

    Dateisystem (HFS) –> weiß immer, wo und wie viel frei ist
    Plattencontroller (SSD) –> weiß nur dann, wo und wie viel frei ist, wenn der Speicher noch nie belegt wurde, oder wenn das Dateisystem (HFS) ihn über eine freigewordene Stelle informiert (via TRIM-Befehl)

    Deshalb will ich sagen: An- und Abschalten von TRIM hat keine Auswirkung auf den vom Dateisystem gemeldeten “Verfügbaren Speicher”. Der hängt davon ab, wie viel da so an Müll rumhänge (Papierkorb, Schrottlight usw.) Mit diesem Wert kann man TRIM nicht überprüfen oder bewerten.

    Das geht nur mit dem Controller-Wert. Wenn hier einer ein Tool hat, mit dem man den Controller auslesen kann, dann her damit. Das ist sicher Controller-spezifisch.

      1. Vielen Dank für Deinen tollen Patch und Deine ausführliche Beschreibung.

        Deine Aussage “schau Dir den Wikipedia-Artikel an” interpretiere ich als “Du erzählst Müll, informiere Dich erstmal” 🙂

        Meth bspw. schreibt, er hätte das Phänomen, dass seit Aktivierung von TRIM sein “Verfügbarer Speicher” nicht mehr größer werden würde, wenn er Daten löscht. Du weist ihn in Deiner Antwort nicht darauf hin, dass dies mit TRIM nichts zu tun haben kann. Deshalb habe ich das getan. 🙂

        1. Sorry, meine Antwort sollte nicht pampig rüber kommen!

          Deine Erläuterung ist natürlich korrekt, allerdings hilft TRIM, zumindest bei mir, bei dem Effekt, dass ich Daten komplett von der Platte, also inkl. Papierkorb lösche, ich aber trotzdem dadurch nicht mehr freien Speicher bekomme. Ich bin technisch in dem Thema nicht ganz drin, ging aber bisher davon aus, das TRIM relativ wichtig ist, wenn man eine SSD sinnvoll betreiben will.

          Wenn der Controller dem System meldet, dass nicht mehr Speicher frei ist, dann wird sich dieses doch sicher nicht alleine auf die Angaben in seinen Dateitabellen verlassen, oder?

  18. Hallo, seit dem heutigen (26.8.12) Update von Mountain Lion ist die Trim-Unterstützung auf dem MacBook bei mir nicht mehr zu aktivieren, falls jemand eine Idee hat, vielen Dank!

  19. @Hok Ist mir gerade auch bei meinem MBP Late 2007 aufgefallen und ich bekomme Trim auch nicht wieder aktiviert. 🙁

  20. …danke, habe Trim jetzt ebenfalls mit TrimEnabler 2.2 aktiviert, soweit alles gut! 🙂

  21. Mit dem alten System 10.7.3 hat es auf Anhieb gefunzt mit dem Update auf 10.7.5 nicht mehr. Habe TrimEnabler 2.2 installiert und es ging ohne Probleme. Danke für die Tips

    1. Ich möchte hiermit nochmal auf den verlinkten Artikel von BEN hinweisen:

      “bedenkenswert: http://hardwrk.com/blog/trim-and-mac-os-x/

      Ich nutze kein TRIM. Ich habe auch keine Probleme mit nicht freigegeben Speicherplatz oder irgendwelche Geschwindigkeitseinbußen.

      Ich lass das Ding einfach so laufen!

      “THE BOTTOM LINE
      All our recommended SSDs have a highly developed firmware with solidly functional garbage collection. This is enough to keep the SSD running fast and with high performance for a long time and makes the TRIM command almost unnecessary.

      Since the SSD is the main hard drive of your work horse, we recommend spending a few euros more to buy a high-quality SSD rather than buying a cheap one, that may reveal its weaknesses during time. With those you won’t need TRIM at all on OS X.”

  22. Ab Mountain lion 1.8.1 und der aktuellsten 1.7.er Version sind das die richtigen Befehle:

    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

    sudo perl -pi -e ‘s|(\x52\x6F\x74\x61\x74\x69\x6F\x6E\x61\x6C\x00{1,20})[^\x00]{9}(\x00{1,20}\x4D)|$1\x00\x00\x00\x00\x00\x00\x00\x00\x00$2|sg’ /System/Library/Extensions/IOAHCIFamily.kext/Contents/PlugIns/IOAHCIBlockStorage.kext/Contents/MacOS/IOAHCIBlockStorage

    sudo touch /System/Library/Extensions/

    sudo kextcache -system-prelinked-kernel

    sudo kextcache -system-caches

    Funktioniert bei mir bestens unter 10.8.2 mit einer Corsair Force GT 480.

    LG, Eugen

  23. @ eugen.

    mope, funzt nicht.

    nach der zweiten code-zeile im terminal erscheint folgende Fehlermeldung:

    -bash: syntax error near unexpected token `[^\x00]{9}’

    habe die OCZ-AGILITY3 und ml ist auf dem neusten stand.

    hat noch jemand nen tip?

    thx

    1. ich weiß zwar nicht wie Du es hinbekommen hast, aber meine google-Recherche hat ergeben, dass das Terminal die abgerundeten Anführungsstriche nicht mag (vor “s” und nach “sg”). Einfach “‘” jeweils durch den normalen, nicht kaligraphierten “‘” ersetzen.

      1. …natürlich hat das layout dieser Seite die Sonderzeichen auch in meinem Beitrag wieder angepasst…also, es muss ein Standard-Anführunsstrich dorthin (den man hier nicht abbilden kann).

  24. Die Zeilenschaltungen im 2. Kommando müssen weg, das ist nur eine einzige Kommandozeile.

    Dann sollte es klappen 😉 .

    LG Eugen

  25. nach dem letzten update “Software-Update für MacBook Air und Pro” funktioniert es leider nicht mehr.

  26. könnt Ihr den Befehl bitte mal korrigiert hierher kopieren. mir sagt Zeilenschaltung nichts …thx

    1. Ich habe den selben fheler wie forley könnt ihr noch mal bitte den code auflisten

      1. Kenntjemand die Befehle für Snowleopard (10.6.8), ich habe mein alter Macbook mit einer ssd aufgemotzt…
        Danke
        Luke

  27. …habe bisher mitgelesen.
    Gibt es eine TRIM enable Befehls-Struktur für 10.6.8 ?
    Könnte jemand von den Wissenden und bytelude-Anhängern so nett sein und den letzten Stand hier noch mal auflisten?
    Mit großem DANK, Jo

  28. Vielleicht ist es empfehlenswert, eine SSD zu nehmen, die ohne den Trim-enabler funktioniert.
    Ich habe das gelesen,z.B. von den SSDs OWC Mercury oder auch Angelbird.
    Die Dinger sind zwar teurer ,kommen aber anscheinend ohne Zusatzprogrämmchen aus.
    Für die Samsung pro gilt das leider wohl nicht oder für die 480er von crucial, die ansonsten für mich in der Wahl steht…

  29. Vielen Dank Hardy for response!

    Habe mir EVO 840 besorgt, TRIM mittels dem ENabler aktiviert und arbeitet bisher ohne Murren. Natürlich lässt sich nicht trivial vergleichen mit oder ohne -Unterschiede zu beschreiben aber negative Erlebnisse lassen sich noch keine ableiten. Deiner Aussage nach, “vertragen” Samsung die TRIM -Funktion unter MAC schon !?
    Ist diese selbst enabled TRIM Funktion identisch mit der im Mac aktivierten bei SSD Auslieferung seitens Apple??? Danke mit besten Gruß, Jo
    PS: OSX 10.6.8

  30. Ich habe mir von einer apple-autorisierten Werkstatt einen “Fusiondrive” in meinen 2011er iMac installieren lassen. ( Samsung MZ-7TE250BW Serie 840 EVO Basic + Seagate Barracuda ST3000DM001 HD 3TB)Der Mitarbeiter hat das ohne den offiziellen Segen Apples gemacht.Garantie von Apple ist also kaum. Trim Support hat das Fusion-Laufwerk nicht. Ob das aber nötig ist, weiss ich nicht. Der Installateur meinte, es wäre nicht notwendig. Alles läuft recht flott.
    Samsung schrieb mir, sie hätten keine Erfahrung, ob mit meinem System TRIM Auswirkungen hätte…etwas fade Antwort für einen solchen Hersteller.

  31. …vielen Dank für Deine interessanten Ausführungen.
    “Alles läuft recht flott” : Diese Meinung wird verständlicherweise von allen neuen SSD Umbauern im Anfangsstadium vertreten. Bin der generell der Meinung dass für Windows hier die plausibleren Tools herstellerseitig angeboten werden und der MAC User vertrauen muss eine dauerhaft vergleichbaren Performance erworben zu haben 😉
    Wie gesagt, ist eben schwierig herauszufinden unter welcher Situation und nach welcher Betriebszeit TRIM seine Berechtigung beim Mac hat. Den praktischen Vergleich welcher SSD TRIM gut tut lässt sich wohl nur auf 2 identischen Mac’s mit gleicher Software bei ähnlicher Nutzung plus geeigneter Prüfroutine feststellen. Zumindest für denjenigen der dafür Zeit hat. Dass sich die Hersteller um eine vernünftige Antwort drücken kann nur 2 Gründe haben: Entweder Mangel an Testerfahrung(Windows-Markt eben grösser) oder uns Mac’s absichtlich im Ungewissen lassend in der Hoffnung dass der Beta-Verbraucher bald möglichst unter ev. Garantieverlust eine neue SSD erwirbt. Wobei ich eher für die erstere Vermutung plädiere. Sorry, dass ich keine brauchbaren prakt. Details liefern konnte….

  32. Ich habe den “TRIM enabler” gekauft und hoffe, damit auf der sichereren Seite zu sein.

    Die Systeminformation zeigt:

    BSD-Name: disk0
    Medienart: Solid State
    TRIM-Unterstützung: Ja
    Name des Schachts: SSD
    Partitionstabellentyp: GPT (GUID-Partitionstabelle)
    S.M.A.R.T.-Status: Überprüft

    Das nächste OS update mache ich erst, wenn der TRIM Support dazu aktualisiert ist.

  33. Merci for comment.
    Leite ab dass Du nicht mehr, so wie ich, OSX 10.6.8 verwendest 😉
    Lese des öfteren dass die neue EVO nicht sehr langlebig sein soll 🙁

    Mal schauen…

Leave a Reply

Your email address will not be published. Required fields are marked *