Fallocate: Unterschied zwischen den Versionen
Zeile 11: | Zeile 11: | ||
== Aufruf == | == Aufruf == | ||
<syntaxhighlight lang="bash" highlight="1-3" line copy> | <syntaxhighlight lang="bash" highlight="1-3" line copy> | ||
fallocate [-c|-p|-z] [-o | fallocate [-c|-p|-z] [-o Versatz] -l Länge [-n] Dateiname | ||
fallocate -d [-o | fallocate -d [-o Versatz] [-l Länge] Dateiname | ||
fallocate -x [-o | fallocate -x [-o Versatz] -l Länge Dateiname | ||
</syntaxhighlight> | </syntaxhighlight> | ||
=== Optionen === | === Optionen === | ||
Nachfolgend kann den Argumenten | Nachfolgend kann den Argumenten Länge und Versatz 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 | ||
The options --collapse-range, --dig-holes, --punch-hole, --zero-range and --posix are mutually exclusive | The options --collapse-range, --dig-holes, --punch-hole, --zero-range and --posix are mutually exclusive | ||
Zeile 26: | Zeile 26: | ||
|- | |- | ||
| -c || --collapse-range || || entfernt einen Bereich aus einer Datei, ohne ein »Loch« zu hinterlassen | | -c || --collapse-range || || entfernt einen Bereich aus einer Datei, ohne ein »Loch« zu hinterlassen | ||
* Der »zusammenzuklappende« Dateibereich beginnt bei | * Der »zusammenzuklappende« Dateibereich beginnt bei Versatz und erstreckt sich über die angegebene Länge in Byte | ||
* Nach Abschluss des Vorgangs ist der Inhalt der Datei, der ursprünglich an der Stelle | * Nach Abschluss des Vorgangs ist der Inhalt der Datei, der ursprünglich an der Stelle Versatz+Länge stand, nun an der Stelle Versatz und die Datei ist Länge Byte kleiner | ||
* Die Option --keep-size kann für die Anwendung von »collapse-range« nicht angegeben werden | * Die Option --keep-size kann für die Anwendung von »collapse-range« nicht angegeben werden | ||
Zeile 33: | Zeile 33: | ||
Ein Dateisystem kann Einschränkungen bezüglich der Granularität der Aktion setzen, um eine effiziente Implementierung sicherzustellen | Ein Dateisystem kann Einschränkungen bezüglich der Granularität der Aktion setzen, um eine effiziente Implementierung sicherzustellen | ||
* Typischerweise müssen der | * Typischerweise müssen der Versatz und die Länge Vielfache der logischen Blockgröße des Dateisystems, die vom Dateisystemtyp und der Konfiguration abhängt, sein | ||
* Falls ein Dateisystem so eine Anforderung hat, wird die Aktion mit dem Fehler EINVAL fehlschlagen, falls diese Anforderung verletzt ist | * Falls ein Dateisystem so eine Anforderung hat, wird die Aktion mit dem Fehler EINVAL fehlschlagen, falls diese Anforderung verletzt ist | ||
|- | |- | ||
Zeile 46: | Zeile 46: | ||
Mit der Option --punch-hole erhalten Sie eine Liste der unterstützten Dateisysteme | Mit der Option --punch-hole erhalten Sie eine Liste der unterstützten Dateisysteme | ||
|- | |- | ||
| -i || --insert-range || || fügt ein Loch der Länge | | -i || --insert-range || || fügt ein Loch der Länge Länge Bytes bei Versatz ein und verschiebt bestehende Daten | ||
|- | |- | ||
| -l || --length || Länge || gibt die Länge des Zuweisungsbereiches in Byte an | | -l || --length || Länge || gibt die Länge des Zuweisungsbereiches in Byte an | ||
Zeile 55: | Zeile 55: | ||
| -o || --offset || Versatz || gibt den Anfang des Zuweisungsbereiches in Byte an | | -o || --offset || Versatz || gibt den Anfang des Zuweisungsbereiches in Byte an | ||
|- | |- | ||
| -p || --punch-hole || || löscht eine Zuweisung (d. h. erzeugt ein »Loch«) im Bereich, der bei | | -p || --punch-hole || || löscht eine Zuweisung (d. h. erzeugt ein »Loch«) im Bereich, der bei Versatz beginnt und sich über die angegebene Länge in Bytes erstreckt | ||
* Innerhalb des angegebenen Bereiches werden Dateisystemblöcke partiell auf Null gesetzt und ganze Dateisystemblöcke aus der Datei entfernt | * Innerhalb des angegebenen Bereiches werden Dateisystemblöcke partiell auf Null gesetzt und ganze Dateisystemblöcke aus der Datei entfernt | ||
* Nach erfolgreichem Aufruf geben nachfolgende Aufrufe Nullen aus diesem Bereich zurück | * Nach erfolgreichem Aufruf geben nachfolgende Aufrufe Nullen aus diesem Bereich zurück | ||
Zeile 68: | Zeile 68: | ||
* In diesem Modus wird die Zuweisung immer abgeschlossen, aber es kann länger dauern, wenn schnelle Zuweisung nicht vom darunterliegenden Dateisystem unterstützt wird | * In diesem Modus wird die Zuweisung immer abgeschlossen, aber es kann länger dauern, wenn schnelle Zuweisung nicht vom darunterliegenden Dateisystem unterstützt wird | ||
|- | |- | ||
| -z || --zero-range || || Belegt den Raum in dem bei | | -z || --zero-range || || Belegt den Raum in dem bei Versatz beginnenden Byte-Bereich für Länge Bytes mit Nullen | ||
* Innerhalb des angegebenen Bereichs werden Blöcke für die Regionen, die die Löcher in der Datei überbrücken, vorbelegt | * Innerhalb des angegebenen Bereichs werden Blöcke für die Regionen, die die Löcher in der Datei überbrücken, vorbelegt | ||
* Nach einem erfolgreichen Aufruf liefern nachfolgende Leseanforderungen aus diesem Bereich Nullen zurück | * Nach einem erfolgreichen Aufruf liefern nachfolgende Leseanforderungen aus diesem Bereich Nullen zurück |
Version vom 4. September 2025, 13:56 Uhr
fallocate - einer Datei Platz im Dateisystem zuweisen oder enziehen
Beschreibung
fallocate wird verwendet, um Blöcke für eine Datei vorzureservieren oder die Reservierung aufzuheben
- Wenn das Dateisystem den fallocate(2)-Systemaufruf unterstützt, geschieht dies schnell durch Zuweisung von Blöcken und Markierung dieser Blöcke als nicht initialisiert
- Dadurch ist direkter E/A-Zugriff auf die Datenblöcke unnötig
- Diese Vorgehensweise ist bedeutend schneller als die Erzeugung der Datei durch Füllen mit Nulle
Installation
Aufruf
fallocate [-c|-p|-z] [-o Versatz] -l Länge [-n] Dateiname
fallocate -d [-o Versatz] [-l Länge] Dateiname
fallocate -x [-o Versatz] -l Länge Dateiname
Optionen
Nachfolgend kann den Argumenten Länge und Versatz 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
The options --collapse-range, --dig-holes, --punch-hole, --zero-range and --posix are mutually exclusive
Unix | GNU | Parameter | Beschreibung |
---|---|---|---|
-c | --collapse-range | entfernt einen Bereich aus einer Datei, ohne ein »Loch« zu hinterlassen
Dies ist seit Linux 3.15 für ext4 (nur für Extent-basierte Dateien) und XFS verfügbar Ein Dateisystem kann Einschränkungen bezüglich der Granularität der Aktion setzen, um eine effiziente Implementierung sicherzustellen
| |
-d | --dig-holes | Erkennen und Erstellen von »Löchern«
Sie können sich diese Option wie das Ergebnis des Befehls »cp --sparse« vorstellen, wobei die Zieldatei den Namen der Ursprungsdatei erhält und kein zusätzlicher Speicherplatz erforderlich ist Mit der Option --punch-hole erhalten Sie eine Liste der unterstützten Dateisysteme | |
-i | --insert-range | fügt ein Loch der Länge Länge Bytes bei Versatz ein und verschiebt bestehende Daten | |
-l | --length | Länge | gibt die Länge des Zuweisungsbereiches in Byte an |
-n | --keep-size | verhindert die Änderung der eigentlichen Länge der Datei
| |
-o | --offset | Versatz | gibt den Anfang des Zuweisungsbereiches in Byte an |
-p | --punch-hole | löscht eine Zuweisung (d. h. erzeugt ein »Loch«) im Bereich, der bei Versatz beginnt und sich über die angegebene Länge in Bytes erstreckt
Dies wird für XFS (seit Linux 2.6.38), ext4 (seit Linux 3.0), Btrfs (seit Linux 3.7), tmpfs (seit Linux 3.5) und gfs2 (seit Linux 4.16) unterstützt | |
-v | --verbose | aktiviert den ausführlichen Modus | |
-x | --posix | aktiviert den POSIX-Betriebsmodus
| |
-z | --zero-range | Belegt den Raum in dem bei Versatz beginnenden Byte-Bereich für Länge Bytes mit Nullen
Das Nullen erfolgt innerhalb des Dateisystems, vorzugsweise durch Umwandlung des Bereichs in ungeschriebene Extents
Die Option --keep-size kann angegeben werden, um Änderungen der Länge der Datei zu verhindern Dies ist seit Linux 3.14 für ext4 (nur für Extent-basierte Dateien) und XFS verfügbar | |
-h | --help | zeigt einen Hilfetext an und beendet das Programm | |
-V | --version | Display version and exit |
Parameter
Umgebungsvariablen
Exit-Status
Wert | Beschreibung |
---|---|
0 | Erfolg |
>0 | Fehler |
Anwendung
Problembehebung
Konfiguration
Dateien
Datei | Beschreibung |
---|---|
Anhang
Siehe auch
Dokumentation
- Man-Page
Links
Projekt
Weblinks