Mapa oficial de carreteras 2010

Me gusta usar mi sentido de la orientación. Creo que es bueno y que mientras no se trate de emergencias también divertido, al menos mientras siga manteniendo el lema «yo nunca me pierdo, sólo doy rodeos para conocer el sitio». La familia está siempre dispuesta a echarse unas risas en cualquiera de nuestros viajes de interior.

Mi mapa de carreteras preferido es el que edita el ministerio del ramo, el de fomento, y como suelo tener versiones bastante actualizadas le conozco lo suficiente como para serme de mucha utilidad … exceptuando el CD con el programa para Windows que incluye, y que nunca he empleado para nada porque no tengo ese entorno en máquina alguna e intentar que funcione con wine no creo que compense.

Quitando el hecho de que me fastidia pagar por información por la que ya he pagado al menos dos veces, una con mis impuestos y otra en la tienda en la que compré el mapa, he resuelto hacer una copia de seguridad del CD y aquí es donde han empezado las sorpresas. No es un CD al uso, es un CD de contenido múltiple que me empieza a dar más de un problema al intentar copiarlo.

Al principio he pensado que estaría mal el soporte ya que

k3b

no me pone nunca pegas en este sentido. Si no consigue grabarlo es que hay un problema físico con los medios -visible con

dmesg

– y claramente reconocible. Ha sido tras el segundo disco cuando he prestado más atención y me he dado cuenta de que el programa grabador indicaba más de una pista en el CD, ¿ más de una ? ¿ Para qué ? ¿ Y cuáles son ?

Recurro a

disktype

y me encuentro esto:

victor@cimitarra:~$ disktype /dev/cdrom3
--- /dev/cdrom3
Block device, size 699.7 MiB (733657088 bytes)
CD-ROM, 2 tracks, CDDB disk ID 1812A802
Track 1: Data track, 699.0 MiB (732991488 bytes)
ISO9660 file system
Volume name "MASTER_2010"
Data size 676.5 MiB (709332992 bytes, 346354 blocks of 2 KiB)
Joliet extension, volume name "Master_2010"
Track 2: Data track, 650 KiB
ISO9660 file system
Volume name "MASTER_2010"
Data size 677.1 MiB (709947392 bytes, 346654 blocks of 2 KiB)
Joliet extension, volume name "MASTER_2010"
victor@cimitarra:~$

Y observo pasmado lo que creo que es algún tipo de protección contra copia ó una traba similar. Veo dos pistas de datos con dos tamaños físicos diferentes y que sumadas dan el total esperable en el CD, sí, pero dentro de cada pista existe un volumen de datos y mientras que el primero corresponde (aproximadamente) con el tamaño de la pista contenedora, el segundo indica un tamaño muy superior a la que puede contener la pista en sí.

Además podemos observar que el nombre del volumen difiere y que el no válido está en mayúsculas; se me ocurre que podría emplearse como bandera en algún programa especializado.

Probamos a montarlo con el módulo

cdfs

y vemos que aparecen dos imágenes ISO del mismo tamaño:

# mount -o ro -t cdfs /dev/cdrom3 /mnt
# cd /mnt
# ls -ltra
total 4
-r--r--r--  1 root root 732991488 nov 12  0039 sessions_1-1.iso
-r--r--r--  1 root root 733657088 nov 12  0039 sessions_1-2.iso
drwxr-xr-x 22 root root      4096 dic 24 12:06 ..
dr-xr-xr-x  1 root root         0 mar 24 18:03 .
#

Montar la primera ISO es posible y nos da acceso al programa sin problemas (por cierto que incluye algunos PDF con lo que parece información interesante sobre varios lugares de España). Intentar lo mismo con la segunda cuelga el proceso de montaje (no así el resto del sistema naturalmente).

Y como tengo acceso directo a la imagen buena el problema parece resuelto: me basta con usar

k3b

(ó el programa de grabación que me plazca) y quemar directamente esa ISO en un CD. Es fácil de resolver, aunque hay que emplear la consola y es seguro que tendré que ir alguna vez a casa de uno de mis usuarios por algo como ésto.

Más información sobre montajes

Esto es lo que aparece registrado cuando monto el CD original:

[ 9726.296466] ISO 9660 Extensions: Microsoft Joliet Level 1
[ 9726.312577] ISOFS: changing to secondary root

y esto lo que aparece tras un intento fallido de hacer lo mismo con la copia.

[ 9799.711309] ISO 9660 Extensions: Microsoft Joliet Level 1
[ 9799.715395] ISOFS: Interleaved files not (yet) supported.
[ 9799.715399] ISOFS: File unit size != 0 for ISO file (22907328).
[ 9799.715404] ISOFS: changing to secondary root
[ 9799.744991] ISOFS: Interleaved files not (yet) supported.
[ 9799.744998] isofs_fill_super: root inode is not a directory. Corrupted media?

Y más sobre cdfs

Vuelco la información directamente del módulo

cdfs

a través de su entrada en el sistema de archivos

/proc

y veo que:

cimitarra:~# cat /proc/cdfs
[cdfs   2.6.23]
CD (discid=0012A400) contains 2 tracks:
Track  1: data track (sessions_1-1.iso), [0-346354/357905], length=699 MB
type: 1 info: CD001 version: 1
date: 12/11/2009 time: 10:07:23
system:
volume: MASTER_2010
publisher:
preparer:
application:
length: 676 MB / 699 MB / 676 MB / 699 MB
Track  2: data track (sessions_1-2.iso), [357906-704560/358230], length=0 MB
type: 1 info: CD001 version: 1
date: 12/11/2009 time: 10:28:06
system:
volume: MASTER_2010
publisher:
preparer:
application:
length: 677 MB / 0 MB / 1376 MB / 699 MB

la información bajo el campo

length

es muy rara para la segunda pista.

Como no he encontrado más información por el momento me he conformado con echarle un vistazo al código fuente del módulo [1] y he visto que las cantidades mostradas corresponden a varios campos de una estructura llamada

track_info

y a algún cálculo que otro:

  1. seq_printf(
  2. file_p,
  3. "\tlength: %d MB / %d MB / %d MB / %d MB\n",
  4. (track_p->iso_size - track_p->start_lba * CD_FRAMESIZE) / 1024 / 1024,
  5. track_p->track_size / 1024 / 1024,
  6. track_p->iso_size / 1024 / 1024,
  7. track_p->size / 1024 / 1024
  8. );

Notes

[1] Tengo que ver de dónde se obtiene esa información por cada pista