una imágen ISO, es una copia exacta de un sistema de archivos (que es lo que determina la estructura de un dispositivo de almacenamiento, como un disco duro, un CD, un DVD o un Mentat), que es muy usado en la Internet para evitar pérdida de información o una modificación (intencionada o no). Las distribuciones de GNU/Linux y BSD se distribuyen así (entre otras cosas).
Esto se rige por el standard de la Organización Internacional para la Estandarización (ISO) ISO9660. Esto es importante para después.
Lo normal es que uno haga una imagen de su CD o DVD y lo grabe en un CD o DVD virgen, pero hay veces que sería “un encordio” hacerlo, porque no hay plata para pagarlos, o porque nos bajamos una imágen de un sistema operativo y antes de dignarnos a inmortalizarlo en un dispositivo de almacenamiento portátil, queremos ver su contenido. Para esto existen las unidades virtuales, que nos ahorran de tener una unidad lectora de DVD o CD, y podemos ver el contenido de una imágen ISO sin mucho despelote
En el sistema operativo que usaba (la libertad se siente bien), Windows XP, habia que tener un programa de terceros (como les digo), para montar las imágenes en unidades virtuales. De estos hay varios, hay de los que tenés que pagar (como Alcohol 120% o Daemon Tools) o tenés alternativas gratuitas (pero no libres) como Virtual Clone Drive. Este último es el que usaba, aunque por ahí leí sobre una herramienta no soportada por, pero si hecha por Microsoft, “Virtual CD-ROM Control Panel for Windows XP“. No tengo ni idea de como usarlo, pero no tiene soporte porque ni siquiera tiene instalador (solo instrucciónes de como hacerlo andar sin romper nada). De hecho: este programa ni siquiera se puede buscar en el Centro de Descargas de Microsoft, pero es vagamente mencionado en el FAQ de Suscriptores a la MSDN. Pero bueno, espero que hayas elegido la libertad, y estes usando cosas tan lindas como cualquier distro de GNU/Linux.
Ahora, ¿Cómo montar imágenes ISO en GNU/Linux?: Bueno, tenemos muuuchas formas de hacerlo.
La clásica (y al final de todo, la mejor, principalmente porque te “obliga” a usar la consola, un lugar que, a pesar de que te asuste, tendrías que emepzar a usar), es usar el comando “mount“. El comando mount se usa para montar sistemas de archivos, como FAT, NTFS o una imágen ISO. Lo que tenemos que hacer es especificarle al comando que tipo de filesystem (así voy a llamar de ahora en más a sistema de archivos) vamos a usar. Además, tenemos que especificar -adónde- queremos que se monte la imágen ISO.
Procedemos a hacer lo siguiente:
sudo mount -t iso9660 -o loop archivo.iso /directorio/de/montaje
Explicamos paso a paso:
“sudo” es un comando que te permite ejecutar comandos como si fueras otro Usuario. Recordemos que generalmente el usuario que tenemos no es el usuario administrador (root). Pero si hicimos una instalación en casa, podemos “hacernos pasar” por root. sudo nos deja eso. de hecho, si quisieramos ejecutar un comando cualquiera como el usuario “pato”, también lo podríamos hacer, con sudo -u pato. Si no especificamos nada, el comando toma como parámetro por defecto que queremos hacernos pasar por root. Sin esta parte, no nos dejaría montar nada (ya que generalmente, solo el administrador de sistema puede montar unidades virtuales)
“mount” ya lo explicamos, es un comando que nos deja montar sistema de arhivos. Lo que viene a continuación son parámetros del comando, con sus respectivos valores. Los parámetros (que hay muchos más!) que vamos a utilizar son “-o” y “-t”
-o : es la abreviación de “option” o “opción”. Este parámetro nos permite meterle opciones al sistema de archivos (si queremos leer y escribir o si solamente, etc). Una de estas opciones (que es un tanto más compleja) es “El dispositivo loop” que, si no sabemos que significa esto, vamos a salvarnos de marearnos más y vamos a poner simplemente “-o loop” y dejar que linux haga la magia.
-t : el tipo de sistema de archivos. Acá es donde especificamos que tipo de filesystem tenemos. En este caso, como es una imágen iso, el filesyste es iso9660
A continuación de ambos parámetros, va el nombre del archivo (archivo.iso, en este caso), que, me pareció interesante aclararlo, está sin ninguna “ruta” porque en la consola estamos “parados” en el mismo directorio que el archivo, si no estuvieramos en el mismo lugar, hay que poner /la/ruta/al/archivo.iso. Luego de esto, está el /directorio/de/montaje (que era adonde queríamos que estén “visibles” y/o modificables los datos de la imágen.
Algo también interesante para mencionar es que no importa el orden como aparezcan los parámetros. A + B = B + A. Léase:
sudo mount -o loop -t iso9660 archivo.iso /directorio/de/montaje ES IGUAL QUE
sudo mount -t iso9660 -o loop archivo.iso /directorio/de/montaje ES IGUAL QUE
sudo mount archivo.iso /directorio/de/montaje -t iso9660 -o loop
¿Soy confuso explicando? man mount. Ahora bien, si aún no tenés ganas de usar la consola y queres montar esta imágen ISO que tenés de tu CD favorito, primero: no vas a poder escaparle a la consola. Abrazala desde temprano porque sino el barco se te va…. o no.
Sinó, hey, esto es SOFTWARE LIBRE!, tiene que haber como un millon de tipos que hicieron algún script para montar imágenes ISO, desmontar imágenes ISO desde GNOME, “front-ends” de mount, entre otras cosas. en mí caso, USO Y RECOMIENDO “Gmount-iso“, lo adquirí desde apt-get y anda como patada, o anda bien (si es que andar como patáda no es sinónimo de andar bien).
Ahora, puede pasarte que alguien te haya pasado una imágen no-iso de un CD/DVD, y en ese caso, que hacemos?
Primero, pensemos por que existen distintos tipos de “extensiones” (como CUE, CIF, etc.).
advertencia, si no sos geek, o no tenés ganas de ver números, ignorá el texto de abajo que está en modo quote.
En si, una imágen ISO es creada copiando un disco entero, desde el sector 0 hasta el final, y comprimiendo todo en un solo archivo. Como los sectores de 2048 bits de los CD/DVD están apretaditos, es imposible tener la información en distintos sectores, y se pone todo en un solo “track”. Esto “imposibilita” tener múltiples tracks en una imágen, por lo tanto, luego de que empezaron a surgir más aplicaciones para crear / montar virtualmente imágenes ISO, empezaron a surgir “extensiones nuevas”. Tenemos la .DAT por ejemplo, que generalmente aparece cuando “rippeamos” un VideoCD/DVD, el .ISO (la que se usa generalmente), .BIN, .IMG, .CIF, .FCD, .NRG, .GCD, .CUE, etc.
Hay MUCHAS. Pero todas, en definitiva, son lo mismo. Para hacer lo que hicimos anteriormente (montar), vamos a tener que fijarnos como “transformar” un archivo, por ejemplo, “pato.bin” a “pato.iso”. En este caso en particular (que es con el único que me tope), podemos hacer lo siguiente:
Antes de seguir, la extensión “.BIN”, va en conjunto con la extensión “.CUE”, BIN tiene los datos, CUE tiene la hubicación de cada uno de los datos.
Existe una aplicación llamada “bchunk“, abreviación de BIN CHUNKER. Que nombre más genial. Si queremos aprender de el de una mejor forma, siempre está el man bchunk, o bchunk -h.
Pero para pasar de bin/cue a ISO, solo tenemos que hacer lo siguiente
bchunk arhivo.bin archivo.cue arhivo
Otra vez, si no estamos parados en el mismo lugar que archivo.bin, o bien nos movemos a él, o ponemos el “path” completo.
Interesante, no?