Manpages

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

By default files in the generated filesystem inherit the UID and GID ownership of the original file. However, mksquashfs provides a number of options which can be used to override the ownership:

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

do not use fragments: tells mksquashfs to not generate fragment blocks, and rather generate a filesystem similar to a Squashfs 1.x filesystem. It will of course still be a Squashfs 2.0 filesystem but without fragments, and so it won’t be mountable on a Squashfs 1.x system.

−always−use−fragments

use fragment blocks for files larger than block size: tells mksquashfs to always generate fragments for files irrespective of the file length. By default only small files less than the block size are packed into fragment blocks. The ends of files which do not fit fully into a block, are NOT by default packed into fragments. To illustrate this, a 100K file has an initial 64K block and a 36K remainder. This 36K remainder is not packed into a fragment by default. This is because to do so leads to a 10 − 20% drop in sequential I/O performance, as a disk head seek is needed to seek to the initial file data and another disk seek is need to seek to the fragment block. Specify this option if you want file remainders to be packed into fragment blocks. Doing so may increase the compression obtained BUT at the expense of I/O speed.

−no−duplicates

do not perform duplicate checking: tells mksquashfs to not check the files being added to the filesystem for duplicates. This can result in quicker filesystem generation and appending although obviously compression will suffer badly if there is a lot of duplicate files.

−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

do not pad filesystem to a multiple of 4Ko. This is performed by default to enable the output filesystem file to be mounted by loopback, which requires files to be a 4K multiple. If the filesystem is being written to a block device, or is to be stored in a bootimage, the extra pad bytes are not needed.

−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

For following examples, take two example directories:

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 [AT] users.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 [AT] 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 [AT] calistel.com>.

COPYRIGHT

Copyright © 2005 Frédéric Boiteux