man mksquashfs (Administration système) - Crée ou modifie un système de fichiers compressé Squash

NAME

mksquashfs - Crée ou modifie un système de fichiers compressé Squash

SYNOPSIS

mksquashfs [-version] mksquashfs source... dest [options] [-e list of exclude dirs/files] [-ef exclude_file]

DESCRIPTION

Squashfs est un système de fichiers compressé, accessible en lecture seulement. Utilisez la commande mksquashfs pour créer un nouveau système de fichiers de ce type ou pour ajouter des données à un système existant.

Si on ne donne qu'un seul répertoire source (i.e. mksquashfs source sf_résultant), on obtiendra un système de fichiers constitué du contenu de ce répertoire source.

Si on fournit plusieurs fichier(s) ou répertoire(s) sources, mksquashfs créera un seul système de fichiers qui contiendra tous les répertoires et fichiers source. Le nom de chaque répertoire obtenu sera le nom sans chemin d'accès de chaque répertoire source~; En cas de noms identiques, les doublons seront renommés en xxx_1, xxx_2, etc.

L'argument dest peut être soit un fichier classique, soit un périphérique de type bloc (comme un disque ou une partition). Si le fichier n'existe pas, il sera créé~; s'il existe déjà et contient un système de fichiers Squashfs, mksquashfs rajoutera les sources données à son contenu actuel, sauf si l'option -noappend est précisée.

Il existe un grand nombre d'options qui permettent de contrôler la compression de mksquashfs. Les valeurs par défaut sont de loin les optimales et ne devraient être modifiées qu'exceptionnellement~!

Les options -noI, -noD et -noF (équivalentes à -noInodeCompression, -noDataCompression et -noFragmentCompression) peuvent être utilisées pour obliger mksquashfs à ne pas comprimer respectivement les i-noeuds et répertoires, les blocs de données et les blocs de données fragmentés. Si l'on utilise ces trois options, on obtient un système de fichiers non comprimé.

Par défaut, les fichiers contenus dans le système de fichiers résultat ont le même propriétaire et groupe que les fichiers sources. Toutefois, mksquashfs propose certaines options pour modifier ce comportement~:

•
Les options -all-root et -root-owned (synonymes) forcent tous les fichiers du système de fichiers Squashfs généré à appartenir à root (utilisateur et groupe). Elle permet de construire un système de fichiers appartenant à root sans avoir un accès à ce compte sur la machine où on le construit.
•
L'option -force-uid uid force tous les fichiers du système de fichiers Squashfs généré à appartenir à l'utilisateur d'identifiant uid donné. Cet identifiant peut être soit un nom (par exemple root), soit un nombre.
•
L'option -force-gid gid force tous les fichiers du système de fichiers Squashfs généré à appartenir au groupe d'identifiant gid donné. Cet identifiant peut être soit un nom (par exemple root), soit un nombre.

Les options -e et -ef permettent de déclarer des fichiers ou répertoires à exclure du système de fichiers résultat. L'option -e lit les fichiers/répertoires à exclure sur la ligne de commande, tandis que~l'option -ef les trouve dans le fichier d'exclusions spécifié contenant un fichier ou répertoire par ligne. Si le chemin d'un fichier ou répertoire à exclure est absolu (c'est-à-dire débutant par /, ../ ou ./), il est considéré indépendamment des sources~; en revanche, s'il est relatif, il s'appliquera pour chaque répertoire source~; par exemple, mksquashfs /tmp/source1 source2 sf_résultant -e ex1 /tmp/source1/ex2 out/ex3 exclura les fichiers /tmp/source1/ex2, /tmp/source1/ex1, source2/ex1, /tmp/source1/out/ex3 et source2/out/ex3.

Ces options -e et -ef sont pratiques pour, par exemple, archiver un système de fichier complet en évitant le répertoire /proc et le système de fichiers résultat~: mksquashfs / /tmp/root.sqsh -e proc /tmp/root.sqsh

On peut utiliser plusieurs fois l'option -ef dans une même commande, et on peut également l'utiliser en même temps que l'option -e.

L'option -info affiche les fichiers et répertoires ajoutés au système de fichiers, avec leur taille originelle et éventuellement le mot DUPLICATE si un fichier avec un contenu identique y est déjà présent.

Les options -le et -be peuvent servir à forcer mksquashfs à générer un système de fichiers little endian ou big endian. Par défaut, mksquashfs génère un système de fichiers avec le boutisme de la machine hôte. Le pilote Squashfs permettant, par souci de portabilité, de monter les deux types de systèmes de fichiers (c'est-à-dire qu'il peut monter un système big endian sur une machine little endian), ces options peuvent servir à améliorer l'efficacité d'un système de fichiers généré pour une architecture différente.

OPTIONS

-version
affiche la version, la licence et un message de copyright.
-info
affiche les fichiers ajoutés au système de fichiers.
-b taille_bloc
fixe la taille des blocs de données~; elle peut être de 4096, 8192, 16384, 32768 ou 65536 octets. Par défaut, elle vaut 65536 octets.
-2.0
crée un système de fichiers version~2.0.
-noI ou -noInodeCompression
ne comprime pas la table des i-noeuds.
-noD ou -noDataCompression
ne comprime pas les blocs de données.
-noF ou -noFragmentCompression
ne comprime pas les blocs fragmentés.
-no-fragments
n'utilise pas de blocs fragmentés~: indique à mksquashfs de ne pas créer de blocs fragmentés, mais plutôt un système de fichiers du même genre que ceux des versions 1.x de Squashfs. Ce sera quand même un système de fichiers Squashfs~2.0 (mais sans fragments), donc il ne pourra être monté par un système Squashfs en version~1.x.
-always-use-fragments
utilise des blocs fragmentés pour les fichiers plus gros que la taille d'un bloc~: indique à mksquashfs d'utiliser des blocs fragmentés quelle que soit la longueur des fichiers. Par défaut, seuls les petits fichiers (dont la taille est inférieure à celle d'un bloc) sont assemblés dans des blocs fragmentés. La fin des fichiers qui remplisse plus d'un bloc ne sont pas, par défaut, assemblés dans des fragments. Par exemple, un fichier de 100~ko est découpé en un bloc de 64~ko et un reste de 36~ko, qui par défaut n'est pas placé dans un bloc fragmenté. Ce choix est fait pour éviter une perte de performance de 10 à 20% en accès séquentiel à ce genre de fichiers, car il faudrait sinon déplacer la tête de lecture d'un disque pour accéder au(x) bloc(s) entier(s) et un autre pour le fragment (qui ne sera sans doute pas consécutif). Utilisez cette option pour forcer ces fins de fichiers à être rassemblées dans les blocs fragmentés~; cela améliore le taux de compression obtenu mais au dépens de la vitesse d'accès.
-no-duplicates
ne vérifie pas s'il y a des doublons~: indique à mksquashfs de ne pas vérifier dans les fichiers ajoutés s'il y en a avec des contenus identiques. Ceci permet une génération/modification du système de fichiers résultant plus rapide, mais bien sûr le taux de compression sera nettement moins bon s'il y a beaucoup de fichiers aux contenus identiques.
-noappend
ne pas ajouter en fin d'un système de fichiers existant.
-keep-as-directory
si un répertoire source est donné, crée un système de fichiers contenant ce répertoire plutôt que simplement son contenu.
-root-becomes nom
lorsqu'on ajoute des fichiers ou répertoires à un système existant, le contenu de l'ancien système sera placé dans un répertoire de nom donné, plutôt que de mélanger les anciens fichiers et les nouveaux.
-all-root ou -root-owned
tous les fichiers ajoutés au système appartiendront à root.
-force-uid uid
tous les fichiers ajoutés au système appartiendront à l'utilisateur d'identifiant uid (un nom ou un nombre).
-force-gid gid
tous les fichiers ajoutés au système appartiendront au groupe d'identifiant gid (un nom ou un nombre).
-le
crée un système de fichiers au format petit boutiens (little endian en anglais).
-be
crée un système de fichiers au format gros boutiens (big endian en anglais).
-nopad
Ne pas arrondir le système de fichiers au multiple de 4~ko [supérieur]~: cet arrondi, effectué par défaut, permet au système de fichiers d'être monté par l'interface loopback qui ne fonctionne qu'avec des fichiers multiples de 4~ko. Si le système de fichiers est destiné à être écrit sur un périphérique de type bloc (un disque ou une partition par exemple) ou être placé dans une image de démarrage, cet arrondi est inutile.
-check_data
positionne un drapeau dans le système de fichiers créé pour plus de vérifications de ce système lorsqu'il est monté.
-sort ordre
trie les fichiers suivant les priorités décrites dans le fichier ordre, qui doit contenir un nom de fichier ou répertoire par ligne avec sa priorité associée (nombre entre -32768 et 32767, 0 par défaut).
-e liste des répertoires/fichiers exclus
liste (en ligne) des fichiers et répertoires à exclure.
-ef fichier_exclus
le fichier fichier_exclus contient la liste des fichiers ou répertoires à exclure, un par ligne.

EXEMPLES

Pour les exemples suivants, on utilise deux répertoires~:

•
le répertoire source /home/phillip/test contient fichier1, fichier2 et rep1.
•
le répertoire source outils contient outils1, outils2 et outils3.

Exemple 1. 

mksquashfs /home/phillip/test sf_resultat

va créer un système de fichiers Squashfs contenant dans sa racine les items fichier1, fichier2 et rep1.

Exemple 2. 

mksquashfs /home/phillip/test outils sf_resultat

va créer un système de fichiers Squashfs contenant dans sa racine les répertoires test et outils, correspondant aux répertoires source /home/phillip/test et outils.

Exemple 3. 

mksquashfs /home/phillip/test outils test sf_resultat

commande identique à l'exemple précédent, sauf qu'un troisième répertoire source test a été donné, d'où un conflit avec le premier répertoire~test. Ce troisième répertoire sera donc renommé test_1.

Donner plusieurs répertoires source permet de générer des systèmes de fichiers sans préalablement copier tous les fichiers nécessaires dans un répertoire commun, ce qui simplifie le processus.

Exemple 4. 

mksquashfs /home/phillip/test sf_resultat -keep-as-directory

commande identique au premier exemple, sauf que l'option -keep-as-directory va donner un système de fichiers dont la racine contiendra un répertoire test, au lieu de n'avoir que son contenu fichier1, fichier2 et rep1.

AUTEURS

Squashfs a été écrit par Phillip Lougher <plougher@users.sourceforge.net>, à Chepstow, Pays de Galles, Royaume-Uni. Si vous appréciez ce programme ou rencontrez des problèmes en l'utilisant, contactez-le, il est intéressé par des retours d'expérience.

Cette page de manuel a été écrit par Frédéric Boiteux <fboiteux@calistel.com> pour le système Debian (mais peut être utilisé par d'autres) à partir du document SquashFS HOWTO de Artemiy I. Pavlov et du fichier README des sources de SquashFS. Il est permis de copier, distribuer et/ou modifier ce document en vertu de la licence GPL version 2 ou postérieure, telle que publiée par la Free Software Foundation.

Sur les systèmes Debian, le texte complet de la licence GNU GPL (Licence Public Générale GNU) se trouve dans le fichier /usr/share/common-licenses/GPL.

Traduction française~: Frédéric Boiteux <fboiteux@calistel.com>.