domingo, 11 de julio de 2010

montar unidad virtual en Linux

Hoy tuve el siguiente problema. Tenía un iso de un DVD que creé a las apuradas con Brasero porque el dueño no me lo podía dejar por más tiempo. Luego, cuando tuviera tiempo, ganas y un DVD vacío, pensaba quemarlo. Pero necesité un archivo de ese DVD y todavía no lo había quemado. Así que lo fui a montar desde la terminal como lo hago siempre, método que aprendí en los foros de Ubuntu, pero esta vez falló dando el siguiente mensaje de error:

mount: wrong fs type, bad option, bad superblock on /dev/loop0,
missing codepage or other error
In some cases useful info is found in syslog - try
dmesg | tail or so

Perdí bastante tiempo buscando a qué se debía. Siempre terminaba en los foros de Ubuntu o de alguna otra distro. Luego lo dejé un rato. Cuando volví se me da por buscar en google los términos imagen iso. El primer enlace que aparece es wikipedia. Leyendo el artículo de wikipedia, en cierto lugar se menciona el sistema de archivos udf, el cual es compatible con iso9660. Entonces se me ocurre la idea, ya que el iso fue creado de un DVD, por qué no intentarlo. Así que uso el comando de siempre desde la terminal pero con una pequeña modificación:

sudo mount -t udf -o loop imagen.iso /media/imageniso

Y, por supuesto, resultó. Lo cual no es sorpresa. Tengamos en cuenta el mensaje de error que nos tiraba antes: "wrong fs type". Al leerlo lo lógico es pensar que le estamos errando al especificar el sistema de archivos. ¿Pero qué otro sistema de archivos conocemos para CD y DVD además de ISO9660? Nosotros tal vez ninguno, pero la Wikipedia seguro puede ayudarnos.

Bueno, ya que me tomé el tiempo de escribir esta entrada pondré cómo montar archivos iso como unidades virtuales en Ubuntu. Siempre existe la posibilidad de que alguien termine por aquí después de haber realizado una búsqueda en internet. Después de montar un iso lo podremos explorar con Nautilus, o incluso reproducirlo con VLC si se trata de una película.

Montar archivos iso

Primero necesitamos crear un directorio. Y lo más ordenado a mi entender es hacerlo en el directorio /media donde están los puntos de montaje para los CD-ROM y DVD-ROM reales. Así que escribimos:

sudo mkdir /media/viso

Eso es para crear un directorio llamado viso dentro de media. Como ya queda creado no necesitamos volver a crearlo si queremos montar un iso algún otro día. Ahora vamos a montar el iso, asumiendo, para el ejemplo, que el archivo se llama imagen.iso:

sudo mount -t iso9660 -o loop imagen.iso /media/viso

Si falla y da un mensaje de error diciendo que el sistema de archivos es incorrecto:

mount: wrong fs type, bad option, bad superblock on /dev/loop0,
missing codepage or other error
In some cases useful info is found in syslog - try
dmesg | tail or so

Entonces intentamos con udf que es el otro sistema de archivos en que podría estar la imagen. En este caso reemplazamos iso9660 por udf, así:

sudo mount -t udf -o loop imagen.iso /media/viso

Cuando queremos desmontarlo hacemos:

sudo umount /media/viso

Si tenemos un archivo de imagen que no está en iso, primero hay que convertirlo a iso. Para esto vamos a necesitar instalar algunos programas.

Para el caso en que el archivo de imagen esté en formato bin y cue usamos bchunk.

Para instalarlo:

sudo apt-get install bchunk

Para convertir a iso:

bchunk archivo.bin archivo.cue resultado.iso

Después montamos resultado.iso (o como le hayamos puesto) de la manera que ya se dijo.

Para el caso en que el archivo de imagen sea nrg usamos nrg2iso.

Para instalarlo:

sudo apt-get install nrg2iso

Para convertir a iso:

nrg2iso archivo.nrg resultado.iso

Para el caso en que el archivo de imagen sea MDF y MDS usamos mdf2iso.

Para instalarlo:

sudo apt-get install mdf2iso

Para convertir a iso:

mdf2iso archivo.mdf resultado.iso

Para el caso en que el archivo de imagen sea img usamos ccd2iso.

Para instalarlo:

sudo apt-get install ccd2iso

Para convertir a iso:

ccd2iso imagen.img resultado.iso

Nota: en la guía Ubuntu en español se dice que antes de usar el comando mount para montar un iso debemos hacer: sudo modprobe loop pero esto no es necesario en todas las versiones de Ubuntu. Ya que en algunas, ejemplo 9.10, loop no viene como un módulo, ni existe paquete que lo contenga en los repositorios. Por lo tanto, hacer un modprobe no es necesario en Ubuntu 9.10.

Referencias:

1 comentarios:

Anónimo dijo...

Eres un maldito genio... gracias!

Publicar un comentario