Qu'est-ce qu'un système de fichiers en boucle?
Gnu / Linux (et la grande majorité des systèmes unix) dispose d'un mécanisme qui permet de monter un fichier (préalablement formaté) comme s'il s'agissait d'un disque dur, généralement sans table de partition. Ce diagramme merdique (réalisé par moi) explique comment ce mécanisme fonctionne.
Utilisations des fichiers de boucle
1- Fichiers Mount.iso
Les fichiers .iso, le standard par excellence sur les CD et DVD, n'est rien d'autre qu'un fichier en boucle dont le système de fichiers peut être ISO 9960 (plus courant sur les CD) ou UDF (le plus courant sur les DVD). Pour le monter, nous utiliserons la commande mount.
mkdir iso # crée le répertoire chmod -R 666 iso # accorde à tous les utilisateurs l'autorisation de lecture mount image.iso iso / # monte l'image iso (nécessite root)
La limitation que vous avez est que, pour des raisons évidentes, les deux systèmes de fichiers sont en lecture seule.
2- Squashfs en lecture seule
Supposons que nous ayons un dossier d'images et / ou de vidéos organisé en fonction de l'année de prise de vue. De toute évidence, il est peu probable que l'on souhaite modifier les données contenues dans les dossiers des années précédentes. C'est là que Squashfs entre en jeu. Squashfs est un système de fichiers compressé en lecture seule, donc une fois l'image créée, nous ne pourrons pas modifier les données à l'intérieur.
Ainsi, non seulement nous économiserons énormément d'espace, mais il y aura aussi le curieux effet que la lecture des fichiers sera plus rapide, en ayant à lire des fichiers plus petits, car de nos jours, décompresser un fichier est un effort minimum pour la plupart des processeurs.
En sortant des préambules, pour créer l'image squashfs il faut utiliser la commande mksquashfs, dont la syntaxe est simple:
mksquashfs directorio 1 [directorio 2 directorio 3...] imagen.sqsfs -comp [algoritmo de compresión] -b [tamaño del bloque ]
Et voici un exemple pratique:
mksquashfs fotos-2009 fotos-2010 fotos-2011 fotos-2012 fotos-2013 fotos_2009-2013.sqsfs -comp xz -bs 1M
Eh bien, l'algorithme choisi est xz puisque c'est celui qui taux de compression plus élevé offres (parmi celles disponibles), tandis que la taille de bloc choisie est le maximum. ce que permet de meilleurs résultats de compression (par défaut, ils sont de 64 Ko).
Maintenant, nous devrions pouvoir le monter avec un simple;
mount fotos_2009-2013.sqsfs fotos_2009-2013/
Après avoir vérifié que tout est correct, nous pouvons supprimer les fichiers originaux ou laisser le fichier en tant que sauvegarde.
Si nous voulons qu'il soit monté au démarrage du système d'exploitation, nous devons ajouter une ligne de ce style dans le fichier / etc / fstab:
/dir/loop.sqsh /dir/mountdir squashfs ro,defaults 0 0
Maintenant, que se passe-t-il lorsque nous voulons ajouter ou supprimer des fichiers, ou simplement extraire ces instantanés? Eh bien, nous avons la commande la commande unsquashfs.
unsquashfs [opciones] snapshot.sqfs [Directorios o archivos que extraer]
Par défaut, il utilisera "squashfs-root" comme répertoire d'extraction. peut être changé avec l'option -d
- CD en direct
- Systèmes embarqués
- Servidores
- En général, tout système en lecture seule
3- «Échange d'urgence»
Imaginez que pour une raison quelconque (hibernation, compilations massives ...) vous avez besoin d'un échange supplémentaire. C'est là que le fichier de boucle entre en jeu, la première étape est de créer un fichier vide d'une certaine taille, avec une certaine taille de bloc, nous le faisons avec la commande jj:
dd if=/dev/zero of=loop bs=1M count=512
Dans ce cas, le bloc est d'un Mio et la taille du fichier est de 512 Mo. Ca ne doit pas forcément être comme ca.
Nous créons et activons le swap avec cette commande
mkswap loop && swapon loop
Gardez à l'esprit que les performances d'un fichier en boucle sont toujours légèrement inférieures à celles d'un fichier physique réel.
4-Fais ce que tu veux
Ce ne sont là que quelques-uns des exemples les plus caractéristiques, n'hésitez pas à expérimenter avec des chroots, des systèmes de cryptage, des boucles imbriquées… Vos possibilités sont illimitées. Mais soyez prudent avec les commandes que vous exécutez, réfléchissez bien avant d'appuyer sur Entrée.
Liens d'intérêt
- Wikipédia Squashfs
- Homme mksquashfs
- Homme unsquashfs
- iso 9960 wikipédia
- Wikipédia UDF
- Wikipédia VFS
- Boucle wikipedia
Bon post che !! J'ai des sauvegardes gigantesques là-bas et je n'ai jamais pensé à les compresser. Je vais l'utiliser et en passant, je crypte mon externe pour le remplir, puis je me suis souvenu que j'allais le crypter 🙁
Intéressant d'essayer le truc squashfs
Bon tutoriel, j'avais lu comment créer des fichiers img avec dd et les monter, mais je ne connaissais pas l'utilisation de Squashfs et sa compression; Bien qu'il ne permette pas de modifier son contenu, son utilisation peut être utile dans des situations telles que celles que vous commentez. Merci pour le partage, salutations.
Très bon à savoir, merci pour le conseil.
Vous apprenez toujours quelque chose de nouveau. Excellent!
C'est drôle, je connaissais les squashfs et à quoi ils servent, mais je n'avais jamais pensé à compresser mes images. Merci pour le conseil.
Impressionnant, essayons-le pour voir ce qui se passe, très bon conseil
excellent tuto !!! =)… Très bon conseil !!!
Bonjour roader. Article très intéressant, merci pour le partage.
Dans Gentoo, vous devez activer le support SquashFS dans le noyau avant de le compiler, je vais le tester pour voir comment cela fonctionne. Je vous remercie.
testé sur Gentoo compilant le noyau pour cela et excellent.
Corrigez juste une petite faute de frappe, roader.
Dans l'exemple:
mksquashfs photos-2009 photos-2010 photos-2011 photos-2012 photos-2013 photos_2009-2013.sqsfs -comp xz -bs 1M
épargnez le s dans "-bs" (qui détermine la taille du bloc), cela devrait ressembler à ceci:
mksquashfs photos-2009 photos-2010 photos-2011 photos-2012 photos-2013 photos_2009-2013.sqsfs -comp xz -b 1M