Anterior Siguiente Indice

6. Respuestas a las Preguntas de Uso más Frecuente (PUFs)

6.1 ¿Cómo hacer que cualquier usuario (no root) pueda montar y desmontar los CDs?

Prácticamente todos los comandos mount soportan la opción user. Introduciendo una línea como la que sigue en el fichero /etc/fstab:

/dev/sbpcd  /mnt/cdrom   iso9660     user,noauto,ro

...cualquier usuario podrá montar y desmontar la unidad, de la siguiente manera:

mount /mnt/cdrom
umount /mnt/cdrom

El disco, por razones de seguridad, será montado con algunas limitaciones (p.e. los programas no podrán ser ejecutados, los archivos de dispositivo se ignorarán...); esto puede resultar demasiado restrictivo en algunos casos.

Otra opción es conseguir el paquete usermount, que habilita para los usuarios normales el montado y desmontado de dispositivos extraíbles, tales como discos y CDROM, pero que restringe el acceso a otros (como las particiones del disco duro). Se puede encontrar en casi todos los bancos de archivos.

En ftp://ftp.cdrom.com se halla el código fuente mount.c, que permite el montado y desmontado de CD-ROM (únicamente) por usuarios normales.

6.2 ¿Por qué obtengo "device is busy (dispositivo ocupado)" a la horade desmontar el CD-ROM?

Un disco no puede ser desmontado mientras haya algún proceso accediendo a la unidad, lo que incluye el hecho de que nos encontremos en alguno de los directorios asignados a la misma. Si no puede identificar el proceso que la esta usando, puede emplear el comando fuser, tal y como se muestra a continuación:

umount /cdrom
umount: /dev/hdd: device is busy
fuser -v /cdrom
                     USER       PID ACCESS COMMAND
/mnt/cdrom           tranter    133 ..c..  bash

6.3 ¿Cómo puedo exportar un CD-ROM a otra máquina vía NFS?

Para ello es preciso añadir una línea al archivo /etc/exports. Para más detalles, consulte la página man exports(5).

6.4 ¿Es posible arrancar Linux desde un CD-ROM?

Para instalar Linux, el método más común es utilizar un disco de arranque. Algunas distribuciones vienen preparadas para arrancar el núcleo de Linux utilizando un CDROM directamente desde el DOS.

Michael Fulbright ( msf@redhat.com) explica cómo, con un CDROM, la ROM-BIOS y una unidad ATAPI es posible arrancar directamente desde el CD. La última version de mkisofs también soporta la creación de dichos CDRoms. Para ello, se ha tenido que añadir una serie parches para soportar el estándar de discos de arranque El Torito.

6.5 ¿Cómo puedo leer la información digital de un CD-Audio?

Heiko Eissfeldt ( heiko@colossus..escape.de) y Olaf Kindel han escrito una utilidad que lee y graba los datos de audio archivos de formato .wav. El paquete se llama cdda2wav.tar.gz y se encuentra en sunsite.unc.edu.

A consecuencia del rápido desarrollo que están experimentando las unidades de CD-ROM, es casi imposible hacer una lista completa de los modelos que soportan la extracción digital de audio. Lo mejor será que consiga la última versión de paquete cdda2wav y lea la documentación.

Para más información al respecto, visite la página web http://www.tardis.ed.ac.uk/~psyche/cdda/ y las FAQ de alt.cdrom (sección de Referencias).

6.6 ¿Por que el comando find no funciona correctamente?

Al utilizar discos formateados con el sistema ISO-9660, pero que carecen de las Extensiones Rock Ridge, hay que añadir la opción -noleaf al comando find. Consulte la página del manual find(1) para más detalles.

(Hoy en día todos los CDs de Linux emplean las Extensiones Rock Ridge, por lo que este problema se planteará raras veces.)

6.7 ¿Soporta Linux alguna unidad grabadora de CD-ROM?

El paquete X-CD-Roast es una aplicación gráfica diseñada para la utilización de grabadoras de CD-ROM bajo Linux. Se puede encontrar en ftp://sunsite.unc.edu/pub/Linux/utils/disk-management/xcdroast-0.95.tar.gz

Consulte también el CD-Writing HOWTO, que está disponible en ftp://sunsite.unc.edu/pub/Linux/docs/HOWTO/CD-Writing.html ó http://sunsite.unc.edu/LDP/HOWTO/CD-Writing.html.

6.8 ¿Por qué obtengo "mount: Read-only file system (sistema deficheros de solo-lectura)" al montar un CD-ROM?

El CD-ROM es un medio de almacenamiento de sólo-lectura. Con alguno de los núcleos más antiguos se podía montar CDROM para lectura/escritura; los intentos de escribir datos en el CDROM eran ignorados. Esto ha sido corregido a partir del núcleo 1.1.33, con el que los CDROM han de montarse como de sólo-lectura (con la opción -r del comando mount).

6.9 ¿Por qué se abre la bandeja de la unidad cuando apago el sistema?

A partir de la versión 1.1.38 del núcleo, el controlador sbpcd realiza automáticamente la extracción del CD al ser desmontado. Al apagar el sistema, se desmonta el CD, lo que provoca su extracción. Esta característica resulta de utilidad a la hora de cambiar los CDs. Si la bandeja está abierta, cuando monte un CD se cerrará automáticamente.

He comprobado que esto ocasiona algunos problemas al utilizar algunos programas (p.ej. el cdplay y el workbone). A partir del núcleo 1.1.60 es posible controlar dicha característica por medio de software. Un programa de ejemplo viene incluído con el archivo de documentación del sbpcd (o también puede usar el programa ftp://sunsite.unc.edu/pub/Linux/utils/disk-management/eject-1.4.tar.gz.

6.10 Tengo un CD "quiquilloso" que no consigo montar

Ese disco ``quisquilloso'' seguramente sea un disco XA (como todos los PhotoCD y los ``one-offs'' generados con unidades CD-R). La mayor parte de los controladores del núcleo no soportan discos XA, pero seguramente podrá encontrar algún parche para añadir dicho soporte en alguno de los múltiples bancos de archivos. El sbpcd sí que soporta discos XA. Si utiliza dicho controlador, podrá comprobar si el disco es efectivamente XA, de la siguiente manera: Edite el fichero sbpcd y active la visualización de la "Tabla de Contenidos" (Table of Contents) (TOC). Compile, instale y arranque de nuevo el núcleo. Ahora, cada vez que monte un disco, podrá leer la información de la Tabla de Contenidos (bien en la pantalla o en un fichero log). Si el primer valor que aparece en la primera linea es un "20", quiere decir que se trata de un disco XA. Dicho valor sera "00" cuando monte discos normales. Si en la Tabla de Contenidos hay varias pistas, significa también que se trata de un disco XA.

(gracias a Eberhard Moenkeberg por esta información)

Otras posibilidades que pueden imposibilitar la lectura de CDs:

  1. El disco no utiliza el sistema de ficheros ISO-9660 (p.e. algunos utilizan SunOS o HFS)
  2. Se trata de un CD-Audio
  3. El CD esta dañado o es defectuoso
  4. Lo ha insertado del revés :-)

6.11 ¿Funcionan bajo Linux las unidades de CD-ROM multi-disco?

Hay much*s usuarios satisfech*s del funcionamiento de las intercambiadoras de CD-ROM multi-disco SCSI. Es probable que deba activar la opción "Probe all LUNs on each SCSI device" durante la configuración del núcleo. Al menos un usuario ha tenido que incrementar el valor SCSI timeout en el controlador del núcleo. Las intercambiadoras Nakamichi MBR-7 de 7 discos y la Pioneer de 12 discos funcionan correctamente. También están soportadas las intercambiadoras multi-disco EIDE/ATAPI. El soporte implementado para algunas unidades (utilizando la función CDROM_SELECT_DISC ioctl) con el núcleo 2.0 resulta un tanto rudimentario. En el archivo de documentación del controlador del núcleo IDE-CD viene incluído el código fuente de un programa para seleccionar el plato, o también puede utilizar una versión reciente del programa eject, descrito anteriormente.

6.12 Obtengo "/cdrom: Permission denied"

Algunos CDs poseen archivos que se encuentran en directorios cuyo permiso de lectura está restringido al modo root. Algo así ocurría con la edición de InfoMagic de Marzo de 1995.

El siguiente parche, cortesía de Christoph Lameter ( clameter@waterf.org) permite solventar el problema.

From: clameter@waterf.org (Christoph Lameter)
Newsgroups: comp.os.linux.setup
Subject: InfoMagic Developers Set: Fix for CD-ROM permissions
Date: 12 Apr 1995 20:32:03 -0700
Organization: The Water Fountain - Mining for streams of Living Water
NNTP-Posting-Host: waterf.org
X-Newsreader: TIN [version 1.2 PL2]

En la edición de InfoMagic Developers CD-ROM Set de Marzo de 1995 se plantean una serie de problemas con la información almacenada en directorios cuyos permisos quedan restringidos al root.

  1. En el Disco1 los valores de propietario/grupo están fijados con los valores 5101/51 y tienen permiso de escritura (?)
  2. El Disco2 y 3 vienen con permisos rwx para root y ningún permiso para grupo/usuario. ¡Sólo como root es posible acceder a ellos! Yo mantengo una BBS y necesito tenerlos disponibles para otr*s.

Hay varias soluciones. El problema estriba en que, por lo común, estos arreglos cambian los permisos de todos los directorios del CD. El parche que viene a continuación sólo cambia los permisos para el directorio root del CD-ROM. Si quiere hacer correr partes de Linux directamente desde el CD-ROM, probablemente se vea en un aprieto tanto si todos los directorios pueden ser accedidos para lectura por todos los usuarios como si son propiedad del root.

Con este parche, los permisos del directorio root quedarán fijados como r-xr-xr-x, y los valores de propietario/grupo serán los indicados a través de las opciones uid y gid del comando mount.

Para aplicarlo:

 cd /usr/src/linux/fs/isofs
 patch < parche

...y recompile el núcleo (puede que tenga que aplicar el parche a mano, dependiendo de su versión del núcleo).

Este es el fichero parche:

--- inode.c.ORIG        Wed Apr 12 17:24:36 1995
+++ inode.c     Wed Apr 12 17:59:12 1995
@@ -552,7 +552,15 @@
    numeros de la estructura de inodos */
 
        if (!high_sierra)
-         parse_rock_ridge_inode(raw_inode, inode);
+       {  parse_rock_ridge_inode(raw_inode, inode);
+           /*comprobacion de los permisos de acceso de propietario CL al directorio root*/
+          if((inode->i_sb->u.isofs_sb.s_firstdatazone) == inode->i_ino)
+           { /*sustitucion de los permisos de propietario por los introducidos mediante el comando mount*/
+             inode->i_uid = inode->i_sb->u.isofs_sb.s_uid;
+             inode->i_gid = inode->i_sb->u.isofs_sb.s_gid;
+            inode->i_mode = S_IRUGO | S_IXUGO | S_IFDIR;
+           }
+        }
        
 #ifdef DEBUG
        printk("Inode: %x extent: %x\n",inode->i_ino, inode->u.isofs_i.i_first_extent);
@@ -805,4 +813,3 @@
 }
 
 #endif
-

Tenga en cuenta que este parche es algo antiguo y probablemente no podrá aplicarse tal cual a versiones más recientes del núcleo (a partir de la 2.0). Consulte también la sección referente a los ficheros ocultos.

6.13 ¿Cómo he de interpretar los mensajes de error del núcleo referentesal CD IDE?

¿Qué significa cuando obtengo un mensaje del controlado IDE de la manera hdxx: code: xx key: x asc: xx ascq: x?

Se trata de un mensaje de status/error de la unidad IDE. Por defecto el controlador IDECD envía a una salida las informaciones, en vez de gastar espacio del núcleo con mensajes de error. Esto puede cambiarse, para poder visualizar los mensajes de error directamente, editando el archivo /usr/src/linux/drivers/block/ide-cd.c, cambiando el valor de VERBOSE_IDE_CD_ERRORS a 1, y recompilando el núcleo.

6.14 ¿Cómo puedo comprobar la velocidad de mi CD-ROM?

He aquí un método. Estas instrucciones miden el tiempo que se tardan en leer 1500K desde el CD:

time -p dd if=/dev/cdrom of=/dev/null bs=1k count=1500
1500+0 records in
1500+0 records out
real 5.24
user 0.03
sys 5.07

El rango de transferencia a velocidad sencilla es de 150kb/segundo, osea, que tardará unos 10 segundos. A doble velocidad, tardará 5 segundos; a cuádruple, 2.5 segundos...etc

El valor más fiable es el de "real", que en nuestro ejemplo indica una unidad de doble velocidad. Vd puede incrementar la cantidad de datos transferidos para así obtener un valor más exacto (los datos no se almacenan). Lo mejor sería ejecutar varias veces el comando y, a continuación, hallar la media.

6.15 Mi CD-ROM dejó de funcionar después de completar la instalación deLinux

Lo más seguro es que el disco de arranque utilizado para instalar Linux haya reconocido su unidad de CD-ROM. Pero una vez terminado el proceso de instalación en el disco duro o en floppy y tras reinicializar el ordenador, el CD-ROM deja de ser reconocido.

Esto suele ser debido a que, con algunas distribuciones de Linux, el núcleo que se instala en el disco duro o floppy no es necesariamente el mismo del disco de arranque. Vd seleccionó un disco de arranque adecuado al hardware de su CD-ROM, mientras que el núcleo que acaba de instalar es un núcleo "genérico" sin soporte para CD-ROM. Puede comprobarlo siguiendo los pasos detallados en la sección Problemillas (p.e. empiece comprobando el archivo /proc/devices).

La solución pasa por recompilar el núcleo, asegurarse de incluir los controladores necesarios para su unidad y todo lo demás (p.e. controlador SCSI, sistema de ficheros ISO-9660). Consulte http://www.insflug.org/howtos/online/kernel/Kernel-Como.html.

Si ha pasado alguna opción desde la línea de comandos al disco de arranque (boot disk) (p.e. "hdc=cdrom"), deberá añadirla a su fichero de configuración de arranque (/etc/lilo.conf).

6.16 No puedo leer los ficheros ocultos

Algunos CDs tienen archivos que están determinados como ``ocultos''. Normalmente, no son visibles. Si monta el CD-ROM con la opción ``unhide'', deberían de hacerse accesibles (esto parece no estar documentado en lugar alguno).

6.17 ¿Dónde se encuentra la documentación de la API del CDROM?

Si pretende escribir su propia aplicación, p.e. un reproductor de CDs, necesitará entender la API (Interfase para la Programación de Aplicaciones) del Linux.

En un principio, los controladores de CD-ROM usaban sus propias funciones ioctl() para dar soporte a las características específicas de cada unidad.

Esto se describe en los archivos de cabecera, p.e. en /usr/include/linux/sbpcd.h. Puesto que muchos controladores estaban basados en otros controladores, las interfases, aunque no idénticas, sí tenían mucho que ver.

Recientemente ha surgido una iniciativa encabezada por David van Leeuwen ( david@tm.tno.nl) dirigida a la estandarización de la API de las unidades de CDROM. Se trata de asegurar el que todos los controladores presenten el mismo comportamiento. Esto se detalla en el archivo /usr/src/linux/Documentation/cdrom/cdrom-standard.tex. Muchos controladores del núcleo ya lo soportan. Se espera que para futuras versiones del núcleo (3.0?) todos los controladores de CDROM empleen la API estándar.

En mi libro, Linux Multimedia Guide (Guia Linux Multimedia), entro en detalle acerca de la programación de unidades de CDROM, especialmente de cara a las funciones de audio. Vea la sección Referencias.

6.18 ¿Por qué no leo los nombres de fichero largos de este CDROM de Windows?

Si tiene un CDROM con nombres de fichero largos bajo Windows, pero no bajo Linux, es que ha sido formateado empleando el sistema de ficheros Joliet, sistema propietario de Microsoft. Siga leyendo.

6.19 Es soportado el sistema de ficheros de Microsoft Joliet?

Microsoft ha creado una extensión del formato ISO-9660 llamada Joliet. A la hora de escribir este documento, el soporte para Joliet se encuentra bastante avanzado y los parches se pueden obtener en http://www-plateau.cs.berkeley.edu/people/chaffee/joliet.html o ftp://www-plateau.cs.berkeley.edu/pub/multimedia/linux/joliet/.


Anterior Siguiente Indice