mksquashfs

Autres langues

Langue: fr

Autres versions - même langue

Version: december 20, 2004 (ubuntu - 07/07/09)

Section: 1 (Commandes utilisateur)

NOM

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.

L'option -no-exports permet d'éviter le partage du système de fichiers par NFS

L'option -no-progress n'affiche pas la barre de progression

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.

-recover nom

Permet au système de fichier original d'être restauré si Mksquashfs se termine de façon inattendu (par exemple alimentation défaillante) en utilisant le fichier de restauration nom. Les fichiers de restauration sont désormais créés lors de l'ajout à un système de fichier Squashfs existant.

-no-recovery

ne pas générer un fichier de restauration

-info

affiche les fichiers ajoutés au système de fichiers.

-nolzma

use ZLIB compression method instead of LZMA. The former is the default compression library of the squashfs official distribution, whereas the latter can compress much better.

-no-exports

permet d'éviter le partage du système de fichier par NFS

-no-progress

n'affiche pas la barre de progression

-no-sparse

ne pas détecter les fichiers vides

-b taille_bloc

fixe la taille des blocs de données à block_size. Par défaut, elle vaut 65536 octets.

-processors nombre

Utilise nombre processeurs. Utilise par défaut le nombre de processeurs disponibles

-read-queue taille

Initialise la file d'entrée à taille Mo. La valeur par défaut est 64Mo.

-write-queue taille

Initialise la file de sortie à taille Mo. La valeur par défaut est 512Mo.

-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.

-wildcards

Permet l'utilisation des caractères spéciaux de l'interpréteur de commande afin d'exclure des répertoires ou fichiers

-regex

Permet l'utilisation des expressions rationnelle POSIX pour l'exclusion de fichiers ou répertoires

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(TM) (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>.

Copyright © 2005 Frédéric Boiteux