¿Que es un sistema de archivos loop?
Gnu/Linux (y la gran mayoría de sistemas unix) dispone de un mecanismo que permite montar un fichero (previamente formateado) como si fuese un disco duro, normalmente sin tabla de particiones. Este cutre diagrama (hecho por mi) explica el funcionamiento de dicho mecanismo.

**No representa al completo el funcionamiento real.
Usos de los archivos loop
1- Montar archivos.iso
Los archivos.iso, el estándar por antonomasia en CDs y DVDs no es mas que un archivo loop cuyo sistema de archivos puede ser ISO 9960 (mas común en CDs) o UDF (mas común en DVDs). Para montarlo, haremos uso del comando mount.
mkdir iso #creamos el directorio
chmod -R 666 iso #concedemos a todos los usuarios permiso de lectura
mount imagen.iso iso/ # montamos la imagen iso (requiere root)
La limitación que tiene es que, por motivos obvios, ambos sistemas de archivos son de solo lectura.
2- Squashfs de solo lectura
Supongamos que tenemos una carpeta de imágenes y/o vídeos que esta organizada según el año en que se sacó. Obviamente, es bastante improbable que queramos modificar los datos contenidos en carpetas de años anteriores. Ahí es donde entra en juego Squashfs. Squashfs es un sistema de archivos comprimido de solo lectura, por lo que una vez hecha la imagen, no podremos modificar los datos dentro.
Así, no solo ahorraremos cantidades enormes de espacio, sino que también ocurrirá el curioso efecto de que la lectura de los archivos sera mas rápida, al tener que leer archivos mas pequeños, dado que hoy en día descomprimir un archivo es un esfuerzo mínimo para la mayoría de CPUs.
Dejando los preámbulos, para crear la imagen squashfs debemos usar el comando mksquashfs, cuya sintaxis es simple :
mksquashfs directorio 1 [directorio 2 directorio 3...] imagen.sqsfs -comp [algoritmo de compresión] -b [tamaño del bloque ]
Y aquí un ejemplo práctico :
mksquashfs fotos-2009 fotos-2010 fotos-2011 fotos-2012 fotos-2013 fotos_2009-2013.sqsfs -comp xz -bs 1M
Bien, el algoritmo elegido es xz dado que es el que mayor ratio de compresión ofrece (de los disponibles), mientras que el tamaño de bloque elegido es el máximo. lo que permite obtener mejores resultados de compresión (por defecto son 64KiB).
Ahora deberíamos poder montarlo con un simple ;
mount fotos_2009-2013.sqsfs fotos_2009-2013/
Tras comprobar que todo esta correcto podemos borrar los archivos originales o dejar el archivo como backup.
En caso de que queramos que se monte al arrancar el SO debemos añadir a la /etc/fstab una linea de este estilo :
/dir/loop.sqsh /dir/mountdir squashfs ro,defaults 0 0
Introducir datos incorrectos en el archivo /etc/fstab hará que el sistema deje de arrancar. Para asegurarnos de que todo funciona correctamente, podemos usar el comando mount -a
Ahora bien, ¿Que ocurre cuando queremos añadir o borrar archivos, o simplemente extraer estas snapshots? Pues que tenemos el comando el comando unsquashfs.
unsquashfs [opciones] snapshot.sqfs [Directorios o archivos que extraer]
Por defecto usara como directorio de extracción “squashfs-root”. se puede cambiar con la opción -d
Aparte de este ejemplo, squashfs también es utilizado en :
Imagina que por el motivo que sea (hibernación, compilaciones masivas… ) necesitas un extra de swap. Aquí es donde entra en juego el archivo loop, el primer paso consiste en hacer un archivo vacío de un tamaño determinado, con un tamaño de bloque determinado, esto lo hacemos con el comando dd :
dd if=/dev/zero of=loop bs=1M count=512
dd en las manos equivocadas es peor que un mono con una escopeta. Piensa antes de apretar enter
En este caso, el bloque es de un MiB y el tamaño del archivo son 512MiB. No tiene por que ser así.
Creamos y activamos la swap con este comando
mkswap loop && swapon loop
Ten en cuenta que el rendimiento de un archivo loop siempre es algo inferior al de uno físico real.
4-Haz lo que quieras
Estos solo son algunos de los ejemplos mas característicos, siéntete libre de experimentar con chroots, sistemas cifrados, sistemas loops anidados… Sus posibilidades son ilimitadas. Pero, cuidado con los comandos que ejecutas, piensa bien antes de presionar enter.
Links de interés
The post Tutorial: Sistemas de archivos Loop appeared first on Desde Linux.

Continúar leyendo...
Gnu/Linux (y la gran mayoría de sistemas unix) dispone de un mecanismo que permite montar un fichero (previamente formateado) como si fuese un disco duro, normalmente sin tabla de particiones. Este cutre diagrama (hecho por mi) explica el funcionamiento de dicho mecanismo.

**No representa al completo el funcionamiento real.
Usos de los archivos loop
1- Montar archivos.iso
Los archivos.iso, el estándar por antonomasia en CDs y DVDs no es mas que un archivo loop cuyo sistema de archivos puede ser ISO 9960 (mas común en CDs) o UDF (mas común en DVDs). Para montarlo, haremos uso del comando mount.
mkdir iso #creamos el directorio
chmod -R 666 iso #concedemos a todos los usuarios permiso de lectura
mount imagen.iso iso/ # montamos la imagen iso (requiere root)
La limitación que tiene es que, por motivos obvios, ambos sistemas de archivos son de solo lectura.
2- Squashfs de solo lectura
Supongamos que tenemos una carpeta de imágenes y/o vídeos que esta organizada según el año en que se sacó. Obviamente, es bastante improbable que queramos modificar los datos contenidos en carpetas de años anteriores. Ahí es donde entra en juego Squashfs. Squashfs es un sistema de archivos comprimido de solo lectura, por lo que una vez hecha la imagen, no podremos modificar los datos dentro.
Así, no solo ahorraremos cantidades enormes de espacio, sino que también ocurrirá el curioso efecto de que la lectura de los archivos sera mas rápida, al tener que leer archivos mas pequeños, dado que hoy en día descomprimir un archivo es un esfuerzo mínimo para la mayoría de CPUs.
Dejando los preámbulos, para crear la imagen squashfs debemos usar el comando mksquashfs, cuya sintaxis es simple :
mksquashfs directorio 1 [directorio 2 directorio 3...] imagen.sqsfs -comp [algoritmo de compresión] -b [tamaño del bloque ]
Y aquí un ejemplo práctico :
mksquashfs fotos-2009 fotos-2010 fotos-2011 fotos-2012 fotos-2013 fotos_2009-2013.sqsfs -comp xz -bs 1M
Bien, el algoritmo elegido es xz dado que es el que mayor ratio de compresión ofrece (de los disponibles), mientras que el tamaño de bloque elegido es el máximo. lo que permite obtener mejores resultados de compresión (por defecto son 64KiB).
Ahora deberíamos poder montarlo con un simple ;
mount fotos_2009-2013.sqsfs fotos_2009-2013/
Tras comprobar que todo esta correcto podemos borrar los archivos originales o dejar el archivo como backup.
En caso de que queramos que se monte al arrancar el SO debemos añadir a la /etc/fstab una linea de este estilo :
/dir/loop.sqsh /dir/mountdir squashfs ro,defaults 0 0
Introducir datos incorrectos en el archivo /etc/fstab hará que el sistema deje de arrancar. Para asegurarnos de que todo funciona correctamente, podemos usar el comando mount -a
Ahora bien, ¿Que ocurre cuando queremos añadir o borrar archivos, o simplemente extraer estas snapshots? Pues que tenemos el comando el comando unsquashfs.
unsquashfs [opciones] snapshot.sqfs [Directorios o archivos que extraer]
Por defecto usara como directorio de extracción “squashfs-root”. se puede cambiar con la opción -d
Aparte de este ejemplo, squashfs también es utilizado en :
- Livecds
- Sistemas embebidos
- Servidores
- En general, cualquier sistema de solo-lectura
Imagina que por el motivo que sea (hibernación, compilaciones masivas… ) necesitas un extra de swap. Aquí es donde entra en juego el archivo loop, el primer paso consiste en hacer un archivo vacío de un tamaño determinado, con un tamaño de bloque determinado, esto lo hacemos con el comando dd :
dd if=/dev/zero of=loop bs=1M count=512
dd en las manos equivocadas es peor que un mono con una escopeta. Piensa antes de apretar enter
En este caso, el bloque es de un MiB y el tamaño del archivo son 512MiB. No tiene por que ser así.
Creamos y activamos la swap con este comando
mkswap loop && swapon loop
Ten en cuenta que el rendimiento de un archivo loop siempre es algo inferior al de uno físico real.
4-Haz lo que quieras
Estos solo son algunos de los ejemplos mas característicos, siéntete libre de experimentar con chroots, sistemas cifrados, sistemas loops anidados… Sus posibilidades son ilimitadas. Pero, cuidado con los comandos que ejecutas, piensa bien antes de presionar enter.
Links de interés
- Squashfs wikipedia
- Man mksquashfs
- Man unsquashfs
- iso 9960 wikipedia
- UDF wikipedia
- VFS wikipedia
- Loop wikipedia
The post Tutorial: Sistemas de archivos Loop appeared first on Desde Linux.
Continúar leyendo...