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

Tags: , , , , ,

26 comments

  1. Danke für den Beitrag. Habe schon einiges über dieses – recht doofe – behaviour gelesen.

    Kann nun – hoffentlich guten Gewissens – meine neue SSD einsetzen :)

  2. 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.

    • 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…

  3. Hi!

    Super, funktioniert :) Was will man mehr?
    Danke.

  4. Super funktioniert auch bei mir. Danke

  5. 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!

  6. 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.

    • Ehrlich gesagt: keine Ahnung ;)
      Wenn es bei dir auch ohne funktioniert, dann ist doch alles bestens…

  7. ich habe es jetzt gemacht –> TRIM Unterstützung: JA

    VG

  8. 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.

    • 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…

  9. 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

  10. Danke für die How-To! Es hat *bislang* alles geklappt!

    Merci!

  11. nach dem Update auf 10.7.3 muss man den Patch nochmal durchführen.

  12. 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 ;-)

    • 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 ;)

  13. Super Anleitung! Habe gerade mein MacBook Pro wegen meiner neuen Samsung MZ-7PC128N/EU 128GB SSD gepatcht. Funktioniert tadellos, besten Dank!

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

  15. 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.

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

  17. Funktioniert der Patch mit 10.7.4 auch?

  18. bei mir leider nicht. Mit 10.7.3 hat es funktionier. Was kann ich machen?

  19. Hi.

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

Leave a comment