fstrim wird in eingehängten Dateisystemen verwendet,
um in diesem Dateisystem nicht genutzte Blöcke zu verwerfen (zu
»trimmen«). Dies ist nützlich bei Solid State Drives
(SSDs) und Medien mit knappem Speicherplatz.
Per Vorgabe verwirft fstrim alle ungenutzten Blöcke
im Dateisystem. Zum Anpassen des Verhaltens sind Optionen verfügbar,
die auf Bereichen oder Größenangaben basieren, wie nachfolgend
erläutert.
Das Argument Einhängepunkt bezeichnet den Pfadnamen
des Verzeichnisses, in dem das Dateisystem eingehängt ist und wird
benötigt, wenn -A,
-a, --fstab oder
--all nicht angegeben ist.
Die häufige Ausführung von fstrim oder auch
mount -o discard kann die Lebensdauer qualitativ minderwertiger
SSD-Geräte negativ beeinflussen. Eine für die meisten
Arbeitsplatzrechner und Server sinnvolle Zeitspanne ist einmal pro Woche.
Beachten Sie, dass nicht alle Geräte eine Verwerfungs-Warteschlange
unterstützen, daher verursacht jeder Verwerfungsbefehl
Leistungseinbußen bei allem, was zu dieser Zeit auf die Platte
zugreift.
Nachfolgend kann den Argumenten Versatz,
Länge und minimale-Größe eines der
multiplikativen Suffixe KiB (=1024), MiB (=1024*1024) und so weiter
für GiB, TiB, PiB, EiB, ZiB und YiB folgen (das »iB«
ist optional, zum Beispiel ist »K« gleichbedeutend mit
»KiB«) oder die Suffixe KB (=1000), MB (=1000*1000) und so
weiter für GB, TB, PB, EB, ZB und YB folgen.
-A, --fstab
»trimmt« alle in /etc/fstab
erwähnten eingehängten Dateisysteme auf Geräten, die den
Verwerfungsvorgang unterstützen. Das Wurzeldateisystem wird aus der
Kernel-Befehlszeile ermittelt, falls diese Information in der Datei fehlt.
Weitere übergebene Optionen, wie --offset, --length und
--minimum, werden auf alle diese Geräte angewendet.
Fehlermeldungen von Dateisystemen, die den Verwerfungsvorgang nicht
unterstützen, von schreibgeschützten Geräten, autofs und
schreibgeschützten Dateisystemen werden stillschweigend ignoriert.
Dateisysteme mit der Einhängeoption »X-fstrim.notrim«
werden übersprungen.
-a, --all
»trimmt« alle eingehängten
Dateisysteme auf Geräten, die den Verwerfungsvorgang
unterstützen. Weitere übergebene Optionen, wie --offset,
--length und --minimum, werden auf alle diese Geräte
angewendet. Fehlermeldungen von Dateisystemen, die den Verwerfungsvorgang
nicht unterstützen sowie schreibgeschützte Geräte und
Dateisysteme werden stillschweigend ignoriert.
-n, --dry-run
Diese Option macht alles außer dem eigentlichen
Aufruf des FITRIM-Ioctl.
-o, --offset Versatz
gibt den Byte-Versatz im Dateisystem an, an dem nach zu
verwerfenden freien Blöcken gesucht werden soll. Vorgabewert ist 0,
beginnend am Anfang des Dateisystems.
-l, --length Länge
gibt die Anzahl der Bytes nach der Startposition
für die Suche nach zu verwerfenden freien Blöcken an. Falls der
angegebene Wert hinter dem Ende des Dateisystems liegt, stoppt fstrim
an den Dateisystemgrenzen. Der Vorgabewert nimmt das Ende des Dateisystems
an.
-I, --listed-in Liste
gibt eine durch Doppelpunkte getrennte Liste im
Fstab-Format oder im Mountinfo-Format des Kernels an. Alle fehlenden oder
leeren Dateien werden stillschweigend ignoriert. Die Erweiterung der
Liste endet mit dem Erscheinen der ersten nicht-leeren Datei. Zum
Beispiel:
--listed-in /etc/fstab:/proc/self/mountinfo.
Dateisysteme mit der Einhängeoption
»X-fstrim.notrim« in der fstab werden
übersprungen.
-m, --minimum minimale-Größe
gibt den minimalen freien zu verwerfenden Bereich in
Bytes an. Dieser Wert wird intern auf ein Vielfaches der
Blockgröße des Dateisystems gerundet. Kleinere freie Bereiche
werden ignoriert und fstrim wird das Minimum anpassen, falls es kleiner
als das Minimum des Gerätes ist und dies (fstrim_range.minlen) zur
Anwendungsebene zurückmelden. Durch Erhöhen dieses Wertes wird
die fstrim-Operation auf Dateisystemen mit stark fragmentierten freien
Bereichen schneller vonstatten gehen, andererseits werden nicht alle
Blöcke verworfen. Der Vorgabewert ist 0, wodurch alle freien
Blöcke verworfen werden.
-t, --types Liste
Specifies allowed or forbidden filesystem types when used
with --all or --fstab. The list is a comma-separated list
of the filesystem names. The list follows how mount -t evaluates
type patterns. Only specified filesystem types are allowed. All specified
types are forbidden if the list is prefixed by "no" or each
filesystem prefixed by "no" is forbidden. If the option is not used,
then all filesystems (except "autofs") are allowed.
-v, --verbose
gibt ausführliche Meldungen aus. Falls angegeben,
gibt
fstrim die Anzahl der Bytes aus, die vom Dateisystem als
potenzielle Blöcke zum Verwerfen gemeldet werden. Diese Anzahl ist die
maximal zu verwerfende Menge aus der Sicht des Speichergerätes, da
FITRIM ioctl wiederholt aufgerufen wird und dadurch die gleichen zu
verwerfenden Sektoren mehrfach ausgegeben werden.
fstrim meldet jedes Mal die gleichen potenziell zu
verwerfenden Bytes, aber es werden nur Sektoren des Speichergerätes
tatsächlich verworfen, die zwischenzeitlich beschrieben worden sind.
Weiterhin behält sich die Block-Ebene des Kernels vor, die zu
verwerfenden Bereiche anzupassen, damit sie in die Stripe-Geometrie des
Raids passen und nicht-trimmfähigen Geräten in einer
LVM-Umgebung gerecht zu werden. Diese Beschränkungen werden in
fstrim_range.len (der Option --length) nicht reflektiert.
--quiet-unsupported
unterdrückt Fehlermeldungen, falls der
Trimm-Vorgang (Ioctl) nicht unterstützt wird. Diese Option ist
für die Verwendung in systemd-Dienstedateien oder
cron(8)-Skripten gedacht, um dort Warnungen zu unterdrücken, die
auf bekannten Problemen beruhen, wie beispielsweise die Meldung Bad file
descriptor des NFS-Treibers, wenn ein Gerät schreibgeschützt
eingehängt ist, oder die fehlende Dateisystemunterstützung beim
FITRIM-Ioctl-Aufruf. Diese Option leert auch den Exit-Status, wenn in
der fstrim-Befehslzeile ein nicht unterstütztes Dateisystem
angegeben wird.
-h, --help
zeigt einen Hilfetext an und beendet das Programm.
-V, --version
zeigt Versionsinformationen an und beendet das
Programm.