Trim Support für SSDs unter Mac OS aktivieren

Solid State Drives (SSDs) werden immer häufiger als zusätzliches Laufwerk oder als kompletter Festplattenersatz in modernen Rechnern oder Notebooks verbaut, steigern sie doch auf Grund der viel besseren Schreibe- und Lesezugriffe die Performance eines Systems enorn und ermöglichen ein viel flüssigeres und angenehmeres Arbeiten. Egal welches modernes Betriebssystem verwendet wird, SSDs werden in der Regel von Haus aus erkannt und unterstützt.

Auch wenn die kleinen Wunderspeicher immer besser und zuverlässiger werden, so hängt ihre Zuverlässigkeit und Lebensdauer stark von der Anzahl der Schreibzugriffe auf den Datenträger ab. Je weniger Schreibzugriffe durch das System ausgeführt werden bzw. je besser diese Zugriffe vom System verwaltet werden, desto länger kann eine SSD ohne Gefahr für die darauf gespeicherten Daten verwendet werden. Neben der eigentlichen Firmware einer SSD, steuert der Trim-Befehl des eingesetzten Betriebssystems maßgeblich die Schreibzugriffe auf den Datenträger. Bei Wikipedia findet sich folgende Beschreibung zum Trim-Befehl:

„TRIM ist ein Befehl zur Markierung ungenutzter oder ungültiger Datenblöcke auf Speichermedien zum Zweck der späteren Wiederbeschreibung. Der TRIM-Befehl ermöglicht es einem Betriebssystem, dem Speichermedium Solid-State-Drive (SSD) mitzuteilen, dass gelöschte oder anderweitig freigewordene Blöcke nicht mehr benutzt werden. Im Normalfall vermerkt das Betriebssystem nur in den Verwaltungsstrukturen des Dateisystems, dass die entsprechenden Bereiche wieder für neue Daten zur Verfügung stehen; der Controller des Solid-State-Laufwerks erhält diese Informationen in der Regel jedoch nicht. Durch den ATA-Befehl TRIM wird dem Laufwerk beim Löschen von Dateien mitgeteilt, dass es die davon betroffenen Blöcke als ungültig markieren kann, anstelle deren Daten weiter vorzuhalten. Die Inhalte werden nicht mehr weiter mitgeschrieben, wodurch die Schreibzugriffe auf das Laufwerk beschleunigt und zudem die Abnutzungseffekte verringert werden. Die ungültig markierten Blöcke werden dann beim nächsten Löschen ihres Erasable Blocks frei.“ (Quelle: de.wikipedia.org/wiki/TRIM

Linux unterstützt den Trim-Befehl seit Kernel 2.6.33, für Windows existiert die Unterstützung ab Windows7. Auch für Mac OS X steht seit Version 10.6.8 eine Implementierung dieses Speichermanagements zur Verfügung, allerdings werden nur die von Apple vertriebenen SSDs unterstützt, ohne entsprechende Änderungen am Betriebssystem vorzunehmen. Leider sind die von Apple erhältlichen SSDs sehr teuer, der Einbau bzw. die Nachrüstung einer alternativen SSD, was z.B. bei einigen Modellen der Mac Book Reihe problemlos möglich ist, ist aus finanzieller Sicht also schon zu bedenken und sollte auf Grund der enormen Performancesteigerung auf jeden Fall in Erwägung gezogen werden.

Hat man sich für eine alternative SSD entschieden und diese in die Hardware von Apple eingebaut (Anleitungen hierzu gibt es im Netz viele), kann der Trim-Support problemlos durch folgendde Schritte aktiviert werden (das Vorgehen bezieht sich auf Mac OS X 10.8.3 bzw. 10.8.4). Folgende Befehle sind im Terminal von Mac OS X auszuführen:

  • 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}\x54)|$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 reboot

Es gibt auch diverse Tools mit denen der Trim-Support ebenfalls aktiviert werden und mit denen man sich den komplizierteren Umweg über das Terminal sparen könnte, doch leider sind diese Tools, von denen wahrscheinlich der Trim Enabler das bekannteste ist, nicht mit VoiceOver nutzbar.