fallocate(1) Réserver ou rendre de l'espace pour un fichier

SYNOPSIS

fallocate [-c] [-n] [-p] [-z] [-o position] -l taille fichier

fallocate -d [-o position] [-l taille] fichier

DESCRIPTION

fallocate sert à manipuler l’espace disque alloué à un fichier, soit pour le réserver, soit pour le rendre. Pour les systèmes de fichiers qui permettent l'appel système fallocate(2), la réservation est réalisée rapidement en allouant des blocs et en les marquant comme non initialisés, sans nécessiter d'échange (entrée ou sortie) avec les blocs de données. C'est bien plus rapide que de créer un fichier en le remplissant de zéros.

Le code de retour renvoyé par fallocate est 0 en cas de réussite et 1 en cas d'échec.

OPTIONS

Les arguments taille et position peuvent être suivis des suffixes multiplicatifs KiB=1024, MiB=1024*1024, etc., pour GiB, TiB, PiB, EiB, ZiB et YiB (la partie « iB » est facultative, par exemple « K » est identique à « KiB ») ou des suffixes KB=1000, MB=1000*1000, etc., pour GB, TB, PB, EB, ZB et YB.

Les options --collapse-range, --dig-holes, --punch-hole et --zero-range s'excluent mutuellement.

-c, --collapse-range
Supprimer un intervalle d’octets d’un fichier, sans laisser de trou. L’intervalle d’octets à supprimer commence à position et continue pendant taille octets. À la fin de l’opération, le contenu du fichier commençant à position+taille sera ajouté à la position et le fichier sera taille plus petit. L’option --keep-size ne peut pas être utilisée pour une opération de suppression d’intervalle.

Disponible depuis Linux 3.15 pour ext4 (seulement pour les fichiers avec extension de domaine ou « extent ») et XFS.

-d, --dig-holes
Détecter et creuser des trous. Cela rassemble les fichiers creux, sans utiliser d’espace disque supplémentaire. La taille minimale du trou dépend de la taille de bloc d’entrée et sortie du système de fichiers (4096 octets en général). De plus, en utilisant cette option, --keep-size est implicite. Si aucun intervalle n’est indiqué par --offset et --length, le fichier entier est analysé pour les trous.

Cette option peut être vue comme faire un « cp --sparse » puis renommer le fichier de destination comme le fichier original, sans avoir besoin d’espace disque supplémentaire.

Consultez --punch-hole pour une liste des systèmes de fichiers pris en charge.

-l, --length taille
Indiquer la taille de l’intervalle, en octet.
-n, --keep-size
Ne pas modifier la taille apparente du fichier. Des blocs pourraient être alloués après la fin du fichier, ils peuvent être enlevés avec truncate.
-o, --offset position
Indiquer la position de début de l’intervalle, en octet.
-p, --punch-hole
Désallouer l'espace (c'est-à-dire créer un trou) dans l'intervalle d'octets commençant à position et continuant pendant taille octets. Dans l'espace indiqué, les blocs partiels de systèmes de fichiers sont mis à zéro et les blocs complets de systèmes de fichiers sont retirés du fichier. Après un appel réussi, les lectures suivantes dans cet intervalle renverront des zéros. Cette option peut ne pas être indiquée en même temps que l’option --zero-range. De plus, lors de l’utilisation de cette option, --keep-size est implicite.

Pris en charge pour XFS (depuis Linux 2.6.38), ext4 (depuis Linux 3.0), Btrfs (depuis Linux 3.7) et tmpfs (depuis Linux 3.5).

-v, --verbose
Activer le mode verbeux.
-z, --zero-range
Initialiser l'intervalle d'octets commençant à position et continuant pendant taille octets. Dans l'espace indiqué, les blocs sont préalloués pour les zones qui couvrent les trous du fichier. Après un appel réussi, les lectures suivantes dans cet intervalle renverront des zéros.

L’initialisation est réalisée dans le système de fichiers de préférence en convertissant l’intervalle en « extents » non écrits. Cette approche signifie que l’intervalle indiqué ne sera pas physiquement initialisé sur le périphérique (à part les blocs partiels aux extrémités de l’intervalle) et qu’une entrée ou sortie n’est (sinon) nécessaire que pour mettre à jour les métadonnées.

L’option --keep-size peut être indiquée pour empêcher la modification de taille du fichier.

Disponible depuis Linux 3.14 pour ext4 (seulement pour les fichiers avec extension de domaine ou « extent ») et XFS.

-V, --version
Afficher les informations sur la version et quitter.
-h, --help
Afficher un texte d'aide puis quitter.

AUTEURS

Eric Sandeen
Karel Zak

DISPONIBILITÉ

La commande fallocate fait partie du paquet util-linux, elle est disponible sur l’archive du noyau Linux