Què és un sistema d'arxius loop?
GNU / Linux (i la gran majoria de sistemes unix) disposa d'un mecanisme que permet muntar un fitxer (prèviament formatat) com si fos un disc dur, normalment sense taula de particions. Aquest cutre diagrama (fet per mi) explica el funcionament d'aquest mecanisme.
Usos dels arxius loop
1- Muntar archivos.iso
Els archivos.iso, l'estàndard per antonomàsia en CD i DVD no és més que un arxiu loop el sistema de fitxers pot ser ISO 9960 (Més comú en CDs) o UDF (Més comú en DVDs). Per muntar-lo, farem ús de la comanda mount.
mkdir iso #creamos directori chmod -R 666 iso #concedemos a tots els usuaris accés de lectura mount imagen.iso iso / # muntem la imatge iso (requereix root)
La limitació que té és que, per motius obvis, els dos sistemes d'arxius són de només lectura.
2- SquashFS de tan sols lectura
Suposem que tenim una carpeta d'imatges i / o vídeos que aquesta organitzada segons l'any en què es va treure. Òbviament, és força improbable que vulguem modificar les dades contingudes en carpetes d'anys anteriors. Aquí és on entra en joc SquashFS. Squashfs és un sistema d'arxius comprimit de només lectura, de manera que un cop feta la imatge, no podrem modificar les dades dins.
Així, no només estalviarem quantitats enormes d'espai, Sinó que també passarà el curiós efecte que la lectura dels arxius sera mes ràpida, A l'haver de llegir arxius més petits, ja que avui en dia descomprimir un arxiu és un esforç mínim per a la majoria de CPU.
Deixant els preàmbuls, per crear la imatge squashfs hem de fer servir la comanda mksquashfs, la sintaxi és simple:
mksquashfs directorio 1 [directorio 2 directorio 3...] imagen.sqsfs -comp [algoritmo de compresión] -b [tamaño del bloque ]
I aquí un exemple pràctic:
mksquashfs fotos-2009 fotos-2010 fotos-2011 fotos-2012 fotos-2013 fotos_2009-2013.sqsfs -comp xz -bs 1M
Bé, l'algoritme triat és xz atès que és el que major ràtio de compressió ofereix (dels disponibles), mentre que la mida de bloc escollit és el màxim. el que permet obtenir millors resultats de compressió (Per defecte són 64KiB).
Ara hauríem de poder muntar-lo amb un simple;
mount fotos_2009-2013.sqsfs fotos_2009-2013/
Després de comprovar que tot esta correcte podem esborrar els arxius originals o deixar l'arxiu com backup.
En el cas que vulguem que es munti a l'arrencar el SO hem d'afegir a la / etc / fstab una linea d'aquest estil:
/dir/loop.sqsh /dir/mountdir squashfs ro,defaults 0 0
Ara bé, ¿Que passa quan volem afegir o esborrar arxius, o simplement extreure aquestes snapshots? Doncs que tenim la comanda la comanda unsquashfs.
unsquashfs [opciones] snapshot.sqfs [Directorios o archivos que extraer]
Per defecte fes servir com a directori d'extracció «squashfs-root». es pot canviar amb l'opció -d
- LiveCDs
- sistemes encastats
- Servidors
- En general, qualsevol sistema de només lectura
3- «swap d'emergència»
Imagina que pel motiu que sigui (hibernació, compilacions massives ...) necessites un extra de swap. Aquí és on entra en joc l'arxiu loop, el primer pas consisteix a fer un arxiu buit d'una mida determinada, amb una mida de bloc determinat, això ho fem amb la comanda dd:
dd if=/dev/zero of=loop bs=1M count=512
En aquest cas, el bloc és d'un MiB i la mida de l'arxiu són 512MiB. No té per que ser així.
Creem i activem la swap amb aquesta comanda
mkswap loop && swapon loop
Tingues en compte que el rendiment d'un arxiu loop sempre és una mica inferior a el d'un físic real.
4-Fes el que vulguis
Aquests només són alguns dels exemples més característics, sentir-se lliure d'experimentar amb chroots, sistemes xifrats, sistemes loops imbricats ... Les seves possibilitats són il·limitades. Però, compte amb els comandaments que executes, pensa bé abans de pressionar enter.
Links d'interès
- squashfs wikipedia
- Man mksquashfs
- Man unsquashfs
- iso 9960 wikipedia
- UDF wikipedia
- VFS wikipedia
- Loop wikipedia
Bon post che !! Tinc uns backups gegants per ahi i mai es m'ocurrio comprimir-los. Vaig a fer servir això i de pas encriptar la meva extern que l'ompli i després vaig recordar que l'anava a xifrar 🙁
Interessant a provar el de squashfs
Bon tutorial, havia llegit com crear fitxers img amb dd i muntar-los, però desconeixia l'ús de SquashFS i la seva compressió; tot i que no permet modificar el seu contingut, el seu ús pot ser útil en situacions com les que comentes. Gràcies per compartir, salutacions.
Molt bo saber, gràcies per tl Tip.
Sempre s'aprèn alguna cosa nova. Excel·lent!
És curiós, coneixia squashfs i per al que serveix, però mai se m'havia ocorregut comprimir meus imatges. Gràcies pel tip.
Impressionant, a provar-ho a veure que onda.Muy bon tip
excel·lent Estatut !!! =) ... molt bon tip !!!
Hola roader. Molt interessant l'article, gràcies per compartir.
en Gentoo es necessita activar el suport per SquashFS en el nucli abans de compilar, ho provaré a veure que tal funciona. Gràcies.
provat en Gentoo compilant el nucli per a això i excel·lent.
Tan sols corregir una petita errada, roader.
En l'exemple:
mksquashfs fotos-2009 fotos-2010 fotos-2011 fotos-2012 fotos-2013 fotos_2009-2013.sqsfs -comp xz -bs 1 M
sobra la s de «-bs» (el que determina la mida de l'bloc), ha de quedar així:
mksquashfs fotos-2009 fotos-2010 fotos-2011 fotos-2012 fotos-2013 fotos_2009-2013.sqsfs -comp xz -b 1 M