MTOOLS(1)

NOMBRE
mtools - utilidades para acceder a discos DOS en UNIX

INTRODUCCIÓN
Mtools es una colección de herramientas de dominio público que permite a sistemas Unix manipular ficheros de MS-DOS: leer, escribir y mover ficheros en un sistema de ficheros MS-DOS (típicamente un disco flexible). Hasta donde es razonable, cada programa intenta emular la orden equivalente de MS-DOS. Sin embargo, las restricciones innecesarias y otras rarezas de DOS no se emulan. Por ejemplo, es posible mover subdirectorios de un subdirectorio a otro.

Mtools es suficiente para dar acceso a sistemas de ficheros MS-DOS. Por ejemplo, órdenes como mdir a: funcionan en el disquete a: sin ningún montaje preliminar ni otro procedimiento de inicio (suponiendo que el `/etc/mtools.conf' funciona en su máquina). Con MTOOLS, uno puede cambiar disquetes también sin tener que desmontar y montarlos.

DÓNDE OBTENER MTOOLS

MTOOLS puede encontrarse por lo menos en los sitios siguientes (y sus espejos):

ftp://prep.ai.mit.edu/pub/gnu/mtools-3.8.tar.gz
ftp://linux.wauug.org/pub/knaff/mtools/mtools-3.8.tar.gz
ftp://sunsite.unc.edu/pub/Linux/utils/disk-management/mtools-3.8.tar.gz

Antes de informar de un fallo, asegúrese de que no ha sido ya corregido en los parches Alfa que pueden encontrarse en:

http://www.poboxes.com/Alain.Knaff/mtools
ftp://linux.wauug.org/pub/knaff/mtools

Nota: Es altamente probable que la 1ª dirección de Internet haya dejado de existir tras Noviembre de 1997. La dirección wauug es permanente.

Estos parches se denominan mtools-version-ddmm.taz, donde version significa la versión base, dd es el día y mm es el mes. Debido a falta de espacio, yo usualmente sólo dejo el parche más reciente.

Hay una lista de correo de MTOOLS en mtools@linux.wauug.org. Por favor, envíe todos los informes de fallos a esta lista. Puede suscribirse mandando un mensaje con la sola frase `subscribe mtools@linux.wauug.org' en el cuerpo del mensaje a majordomo@linux.wauug.org. Los anuncios de nuevas versiones de mtools también se mandarán a la lista, además de a los grupos de noticias de anuncios sobre Linux. La lista de correo se archiva en http://linux.wauug.org/hypermail/mtools/latest .

CARACTERÍSTICAS COMUNES DE TODAS LAS ÓRDENES DE MTOOLS

  Opciones y nombres de ficheros
Los caminos de fichero en MS-DOS se componen de una letra de dispositivo seguida por dos puntos, un subdirectorio y un nombre de fichero. Sólo la última parte es obligatoria, las primeras son opcionales. Los nombres de fichero sin la letra de dispositivo, para MTOOLS se refieren a ficheros de Unix. Los nombres de directorio pueden emplear como separador '/' o '\'. El uso del separador '\' o comodines requiere que los nombres se entrecomillen para protegerlos del shell. Sin embargo, los comodines en nombres de fichero de Unix no deben encerrarse entre comillas porque queremos que el shell los expanda.

Las rutinas de "concordancia de patrones" de expresiones regulares siguen las reglas al estilo Unix. Por ejemplo, `*' concuerda con todos los ficheros de MS-DOS en lugar de `*.*'. Los bits de atributo de archivo, oculto, lectura exclusiva y sistema, no se tienen en cuenta durante la concordancia de patrones.

Todas las opciones emplean el signo - (menos) como su primer carácter, no / como en MS-DOS.

La mayoría de las órdenes de MTOOLS permiten como parámetros varios nombres de fichero, lo que no sigue los convenios de MS-DOS, pero es más amigable.

La mayoría de órdenes de MTOOLS permiten opciones que les instruyen sobre cómo manejar las coincidencias de nombres de ficheros. Vea la sección sobre coincidencias de nombres de ficheros para más detalles. Todas las órdenes aceptan la opción -V que muestra el número de versión, y la mayoría acepta la opción -v, que cambia al modo prolijo. En modo prolijo, estas órdenes muestran el nombre del fichero de MS-DOS sobre el que actúan, a menos que se diga otra cosa. Vea la sección Órdenes, para una descripción de las opciones específicas de cada orden.

  Letras de dispositivo

El significado de las letras de dispositivo depende de las arquitecturas objetivo, o destino. Sin embargo, en la mayoría de ellas, la unidad A es la primera unidad de disquete, la unidad B es la segunda unidad de disquete (si la hay), la unidad J es una unidad Jaz, si la hay, y la unidad Z es una unidad Zip (si la hay). En aquellos sistemas donde el nombre del dispositivo derive del ID. SCSI, se supone que la unidad Jaz está en el objetivo SCSI 4, y la Zip en el 5 (éstos son los valores predeterminados de fábrica). En Linux, ambas unidades se suponen en la segunda unidad del bus SCSI (/dev/sdb). Todo esto puede cambiarse mediante un fichero de configuración (vea la sección Configuración).

  Directorio de trabajo actual

La orden mcd (`mcd') se emplea para establecer el dispositivo y el directorio de trabajo actuales (relativos al sistema de ficheros MS-DOS), de otro modo se supone que el valor predeterminado es A:/. Sin embargo, al contrario de en MS-DOS, sólo hay un directorio de trabajo para todas las unidades, y no una por cada unidad.

  Nombres de fichero largos al estilo VFAT

Esta versión de MTOOLS admite nombres de ficheros largos al estilo de VFAT. Si un nombre de fichero Unix es demasiado largo como para caber en un nombre corto de DOS, se guarda como un nombre largo de VFAT, y se genera un nombre corto acompañante. Este nombre corto es lo que se ve cuando se examina el disco con una versión de DOS anterior a la 7.0 (esto es, anterior a Windows95). La tabla siguiente muestra algunos ejemplos de nombres cortos:

Nombre largo    nombre MS-DOS   Razón del cambio
------------    -------------   ----------------------
estoesuntest    ESTOES~1        nombre demasiado largo
alain.knaff     ALAIN~1.KNA     extensión muy larga
prn.txt         PRN~1.TXT       PRN es un dispositivo
.abc            ABC~1           no hay ningún nombre
frio+calor      FRIO_CA~1       carácter ilegal

Como se ve, las siguientes transformaciones ocurren al hacer derivar un nombre corto:

*   Los caracteres ilegales se reemplazan por subrayados. Los caracteres ilegales son ;+=[]',\"*\\<>/?:|.

*   Los puntos extra, que no pueden interpretarse como un separador de nombre principal y extensión, se quitan.

*   Se genera un número ~n.

*   El nombre se acorta de modo que quepa en la limitación 8+3.

El nombre de fichero inicial al estilo de Unix (corto o largo) se llama también el nombre primario, y el nombre corto derivado de él se llama también el nombre secundario.

Ejemplo:

 mcopy /etc/motd a:Nombremuylargo

Mtools crea una entrada VFAT para Nombremuylargo y usa NOMBREMU como un nombre corto. Nombremuylargo es el nombre primario, y NOMBREMU es el secundario.

 mcopy /etc/motd a:motd

Motd encaja en los límites de nombres de fichero DOS. Mtools no necesita hacer derivar otro nombre. Motd es el nombre primario, y no hay nombre secundario.

En resumen: el nombre primario es el nombre largo, si existe, o el nombre corto si no hay nombre largo.

Aunque VFAT es mucho más flexible que FAT, aún hay nombres que no son aceptables, incluso en VFAT. Aún quedan algunos caracteres ilegales (\"*\\<>/?:|), y los nombres de dispositivo todavía están reservados.

Nombre Unix     Nombre largo    Razón del cambio
-----------     ------------    -------------------------------
prn             prn-1           PRN es un nombre de dispositivo
ab:c            ab_c-1          carácter ilegal

Como puede ver, si un nombre largo es ilegal ocurren las siguientes transformaciones:

*   Los caracteres ilegales se reemplazan por subrayados,

*   Se genera un número -n.

  Coincidencias de nombres

Cuando se escribe un fichero en disco, su nombre largo (nombre primario) o corto puede colisionar con el de un fichero o directorio ya existente. Esto puede suceder para todas las órdenes que creen nuevas entradas de directorio, como mcopy, mmd, mren, mmove, mwrite y mread. Cuando ocurre una coincidencia de nombres, MTOOLS le pregunta qué debe hacer. Ofrece algunas elecciones:

overwrite
    Sobreescribe el fichero existente. No es posible sobreescribir un directorio con un fichero.

rename
    Renombra el fichero creado recientemente. MTOOLS pregunta el nuevo nombre de fichero.

autorename
    Renombra el fichero recién creado. MTOOLS escoge él mismo un nombre, sin preguntar.

skip
    Pasa este fichero de largo y se mueve al siguiente, si lo hay.

Para escoger una de estas acciones, teclee su primera letra cuando se le pregunte. Si emplea una letra minúscula, la acción sólo se aplica a este fichero solo; si usa una letra mayúscula, la acción se aplica a todos los ficheros, y no se le preguntará más.

También puede escoger las acciones (para todos los ficheros) en la línea de órdenes, cuando llame a MTOOLS:

-o  Sobreescribe los nombres primarios de forma predeterminada.

-O  Sobreescribe los nombres secundarios de forma predeterminada.

-r  Renombra los nombres primarios de forma predeterminada.

-R  Renombra los nombres secundarios de forma predeterminada.

-a  Auto-renombra los nombres primarios de forma predeterminada.

-A  Auto-renombra los nombres secundarios de forma predeterminada.

-s  Se salta los nombres primarios de forma predeterminada.

-S  Se salta los nombres secundarios de forma predeterminada.

-m  Pregunta al usuario qué hacer con los nombres primarios.

-M  Pregunta al usuario qué hacer con los nombres secundarios.

De forma predeterminada, se le pregunta al usuario en el caso de coincidencias en el nombre primario, y se auto-renombra el nombre secundario.

Si ocurre una coincidencia de nombre en un directorio Unix, MTOOLS sólo pregunta si sobreescribir el fichero o saltárselo.

  Sensibilidad a la caja tipográfica del sistema de ficheros VFAT

El sistema de ficheros VFAT es capaz de recordar la caja tipográfica (i.e., si las letras son minúsculas o mayúsculas) de los nombres de ficheros. Sin embargo, no se permite que los nombres de ficheros que se diferencian sólo en la caja tipográfica coexistan en el mismo directorio. Por ejemplo, si Ud. almacena un fichero llamado NombreFicheroLargo en un sistema de ficheros VFAT, mdir muestra este fichero como NombreFicheroLargo y no como Nombreficherolargo. Sin embargo, si Ud. luego intenta añadir NombreFicherolargo al mismo directorio, no puede, porque no se mira la caja tipográfica para las comprobaciones de coincidencia de nombres.

El sistema de ficheros VFAT permite almacenar la caja tipográfica de un nombre de fichero en el byte de atributo, si todas las letras del nombre de fichero tienen la misma caja, y si todas las letras de la extensión tienen la misma caja también. MTOOLS usa esta información cuando muestra los ficheros, y también para generar el nombre de fichero Unix cuando copia con mcopy a un directorio Unix. Esto puede llevar a resultados inesperados cuando se aplica a ficheros escritos con una versión anterior a 7.0 de DOS: de hecho, los nombres de ficheros al viejo estilo DOS transforman todas las letras a mayúsculas. Esto es diferente del comportamiento de la versión antigua de MTOOLS que lo que hacía era generar nombres de ficheros Unix con todas las letras en minúsculas.

  Formatos de alta capacidad

MTOOLS admite una variedad de formatos que permiten almacenar más datos en discos que lo usual. Debido a las diferentes capacidades de los sistemas operativos, estos formatos no se aceptan en todos los ss.oo. MTOOLS reconoce estos formatos de forma transparente donde se acepten.

Para formatear estos discos, se necesita usar una herramienta específica del sistema operativo. Para Linux, se pueden encontrar herramientas adecuadas para disquetes en el paquete fdutils en los sitios siguientes, aparte quizás de en su distribución favorita, como Debian o similar:

ftp://linux.wauug.org/pub/knaff/fdutils/.
ftp://sunsite.unc.edu/pub/Linux/utils/disk-management/fdutils-*

Vea las páginas del Manual incluidas en ese paquete para más detalles. Use superformat para todos los formatos salvo XDF; y para éste, emplee xdfcopy.

  Más sectores

El método más antiguo de meter más datos en un disco es emplear más sectores y más pistas. Aunque el formato estándar usa 80 pistas y 18 sectores (en un disco de alta densidad de 3½''), es posible usar hasta 83 pistas (en la mayoría de las unidades de disquete) y hasta 21 sectores. Este método permite almacenar hasta 1743 kB en un disco de alta densidad de 3½''. Sin embargo, los discos de 21 sectores son el doble de lentos que los estándares de 18 sectores, porque éstos están empaquetados tan juntos que se necesita intercalarlos. Este problema no ocurre en los formatos de 20 sectores.

Estos formatos se aceptan en numerosas utilidades shareware de DOS como fdformat y vgacopy. En su infinita soberbia, Bill Gate$ creyó que él inventó esto, y lo llamó `discos DMF', o `discos formateados de Windows'. Pero en realidad, ¡ya existía desde hacía años! MTOOLS admitía estos formatos en Linux, en SunOS y en el DELL Unix PC.

  Sectores más grandes
Al usar sectores más grandes es posible ir más allá de la capacidad que se puede obtener con los sectores estándar de 512 bytes. Esto es así a causa de la cabecera del sector. La cabecera del sector tiene el mismo tamaño, sin importar cuántos bytes de datos haya en el sector. Así, nos ahorramos algo de espacio usando menos, pero más grandes, sectores. Por ejemplo, 1 sector de 4 kB sólo toma espacio para la cabecera una vez, mientras que 8 sectores de 512 bytes tienen también 8 cabeceras, para la misma cantidad de datos útiles.

Este método permite almacenar hasta 1992 kB en un disco de alta densidad de 3½''.

MTOOLS admite estos formatos sólo en Linux.

  2m

El formato 2m fue inventado originalmente por Ciriaco García de Celis. También emplea sectores más grandes de lo usual para hacer caber más datos en el disco. Sin embargo, usa el formato estándar (18 sectores de 512 bytes cada uno) en el primer cilindro, para hacer estos discos más fáciles de manejar en DOS. De hecho este método permite tener un sector de arranque de tamaño estándar, que contiene una descripción de cómo debería leerse el resto del disco.

Sin embargo, lo malo de esto es que el primer cilindro puede contener menos datos que los otros. Desafortunadamente, DOS sólo puede manejar discos donde cada pista contenga la misma cantidad de datos. Así que 2m oculta el hecho de que la primera pista contenga menos datos mediante el empleo de una FAT sombreada. (Usualmente, DOS almacena la FAT en dos copias idénticas, por seguridad adicional. XDF almacena sólo una copia, y le dice a DOS que almacena dos. Así se ahorra los mismo que tomaría de espacio la segunda copia.) Esto también significa que Ud. nunca use un disco 2m para almacenar nada más que un sistema de ficheros DOS.

MTOOLS admite estos formatos sólo en Linux.

  XDF

XDF es un formato de alta capacidad usada por OS/2. Puede contener 1840 kB por disco. Esto es menor que los mejores formatos 2m, pero su ventaja principal es que es rápido: 600 ms por pista. Esto es más rápido que el formato de 21 sectores, y casi tan rápido como el formato estándar de 18 sectores. Para acceder a estos discos, asegúrese de que MTOOLS ha sido compilado con soporte de XDF, y de que se defina la variable use_xdf para la unidad en el fichero de configuración. Vea la sección Compilación de MTOOLS y `variables misceláneas', para los detalles sobre cómo hacer esto. El acceso rápido XDF sólo está disponible para núcleos Linux más recientes que el 1.1.34.

MTOOLS admite este formato sólo en Linux.

Cuidado / Atención distribuidores: Si MTOOLS se compila en un núcleo Linux más reciente que 1.3.34, no funcionará en un núcleo más antiguo. Sin embargo, si ha sido compilado en un núcleo más antiguo, aún se ejecutará en un núcleo más nuevo, aunque el acceso XDF será más lento. Se recomienda que los autores de una distribución sólo incluyan los binarios de MTOOLS compilados en núcleos más viejos de 1.3.34 hasta que salga el 2.0, que ya ha salido. Cuando haya salido, como es el caso ya, se pueden (y deben) distribuir los binarios de MTOOLS compilados en núcleos más nuevos. Los binarios de MTOOLS compilados en núcleos anteriores al 1.3.34 no se ejecutarán en un núcleo 2.1 ó posterior.

  Códigos de salida
Todas las órdenes de MTOOLS devuelven 0 en caso de éxito, 1 en caso de fallo total, ó 2 en caso de fallo parcial. Todas las órdenes de MTOOLS realizan unas pocas comprobaciones saludables antes de seguir, para asegurarse de que el disco es desde luego un disco de MS-DOS (no por ejemplo un disco ext2 o minix). Estas comprobaciones pueden rechazar discos parcialmente corruptos, que de todas formas podrían aún ser legibles. Para evitar estas comprobaciones, defina la variable de entorno MTOOLS_SKIP_CHECK o la variable correspondiente del fichero de configuración (vea la sección variables globales).

  Fallos
Un efecto colateral desafortunado al no adivinar el dispositivo correcto (cuando se admiten múltiples capacidades de discos) es un mensaje de error ocasional del controlador de dispositivo. Éstos pueden ser pasados por alto con seguridad.

El código de comprobación de la FAT se atraganta en discos de 1,72 MB mformat-eados con MTOOLS anterior a la versión 2.0.7. Defina la variable de entorno MTOOLS_FAT_COMPATIBILITY (o la variable correspondiente del fichero de configuración, `variables globales') para que no se realice la comprobación de la FAT.

CÓMO COMFIGURAR MTOOLS PARA SU ENTORNO

  Descripción

Esta sección explica la sintaxis de los ficheros de configuración para MTOOLS. Los ficheros de configuración se llaman `/etc/mtools.conf' y `~/.mtoolsrc'. Si la variable de entorno MTOOLSRC está definida, su contenido se usa como el nombre de fichero para un tercer fichero de configuración. Estos ficheros de configuración describen los siguientes elementos:

*  Opciones y variables de configuración globales

*  Opciones y variables por dispositivo

*  Tablas de traducción de caracteres

  Localización de los ficheros de configuración

`/etc/mtools.conf' es el fichero de configuración global para todo el sistema, y `~/.mtoolsrc' es el fichero de configuración privado del usuario.

En algunos sistemas, el fichero de configuración se llama `/etc/defaults/mtools.conf' o /usr/local/etc/mtools.conf en su lugar.

  Sintaxis del fichero de configuración general

Los ficheros de configuración están construidos a base de secciones. Cada sección empieza con una palabra reservada que la identifica, seguida por dos puntos. Luego vienen asignaciones de variables y opciones. Las asignaciones de variables toman la siguiente forma: nombre=valor

Opciones son palabras reservadas solitarias sin que las siga un signo igual ni un valor. Una sección acaba o al final del fichero o donde empiece la siguiente.

Las líneas que comiencen con un signo sostenido (#) son comentarios. Los caracteres nueva-línea son equivalentes a espacio en blanco (excepto donde acaben un comentario). El fichero de configuración es insensible a la caja tipográfica, excepto para elementos encerrados entre comillas (como nombres de ficheros).

  Valores predeterminados
Para la mayoría de las plataformas, MTOOLS contiene valores predeterminados razonables para unidades físicas de disquete codificados en el programa compilado. De forma que uno usualmente no necesita molestarse tocando el fichero de configuración, si todo lo que uno quiere hacer con MTOOLS es acceder a las disqueteras. Por otra parte, se necesita el fichero de configuración si uno también quiere usar MTOOLS para acceder a las particiones del disco duro y a los ficheros imagen de DOSEmu.

  Variables globales

Las opciones globales se pueden poner a 1 ó a 0.

Se reconocen las siguientes opciones globales:

MTOOLS_SKIP_CHECK
    Si se pone a 1, MTOOLS no realiza la mayoría de sus comprobaciones salubres. Esto se necesita para leer algunos discos de Atari que se han construido con las ROMs antiguas, y que no serían reconocidos de otra forma.

MTOOLS_FAT_COMPATIBILITY
    Si se pone a 1, MTOOLS no realiza las comprobaciones del tamaño de la FAT. Algunos discos tienen una FAT mayor de la que realmente necesitan. Éstos se rechazan si esta opción está a 0 ó no está presente.

MTOOLS_LOWER_CASE
    Si se pone a 1, MTOOLS muestra todos los nombres cortos de ficheros con todas sus letras mayúsculas, en minúsculas. Esto se ha hecho para permitir un comportamiento que fuera consistente con versiones más antiguas de MTOOLS que no sabían nada de los bits de caja tipográfica.

MTOOLS_NO_VFAT
    Si se pone a 1, MTOOLS no generará entradas VFAT para nombres de ficheros con letras en minúsculas y mayúsculas mezcladas, pero por otra parte nombres legales de ficheros DOS. Esto es útil cuando se trabaja con versiones de DOS que no pueden tragar los nombres largos VFAT, como con FreeDOS.

MTOOLS_DOTTED_DIR
    En un directorio ancho, muestra el nombre corto con un punto en vez de espacios separando el nombre base y la extensión.

MTOOLS_NAME_NUMERIC_TAIL
    Si se pone a 1 (y éste es el valor predeterminado), genera finales numéricos para todos los nombres largos (~1). Si se pone a 0, sólo genera finales numéricos cuando si no lo hiciera ocurriera una coincidencia de nombres.

MTOOLS_TWENTY_FOUR_HOUR_CLOCK
    Si vale 1, usa la notación europea para los tiempos (formato de 24 horas); si no, emplea la anglosajona de UK/US (am/pm).

Ejemplo: Insertar la siguiente línea en su fichero de configuración hace que MTOOLS se pase las comprobaciones salubres:

  MTOOLS_SKIP_CHECK=1

Las variables globales también se pueden definir en el entorno:

  export MTOOLS_SKIP_CHECK=1

Las variables globales de cadena se pueden poner a cualquier valor:

MTOOLS_DATE_STRING
    El formato empleado para mostrar las fechas de ficheros. El valor predeterminado es "dd-mm-yyyy".

  Opciones y variables por unidad

  Información general

Las opciones y valores específicas de cada unidad pueden describirse en una sección de la unidad correspondiente. Una sección de unidad empieza con drive "letra-unidad" :

Luego vienen pares variable=valor y opciones.

Ésta es una muestra de una descripción de unidad:

  drive a:
    file="/dev/fd0" use_xdf=1

  Configuración de la geometría del disco

La información de geometría describe las características físicas del disco. Tiene tres propósitos:

formatear
    La información de geometría se escribe en el sector de arranque del disco recién construido. Sin embargo, uno puede también describir la información de geometría en la línea de órdenes. Vea la sección de mformat para más detalles.

filtrar
    En algunos sistemas Unix hay ficheros especiales de dispositivo que sólo admiten una geometría física. Por ejemplo, Ud. puede necesitar un fichero especial diferente para acceder a un disco como de alta densidad o como de baja densidad. La geometría se compara con la geometría real almacenada en el sector de arranque para asegurarse de que este fichero especial de dispositivo es capaz de leer correctamente el disco. Si la geometría no concuerda, esta entrada de unidad falla, y se intenta la siguiente entrada de unidad que tenga la misma letra de unidad. Vea la sección de múltiples descripciones para más detalles sobre cómo suministrar varias descripciones para una letra de unidad.

    Si no se suministra ninguna información de geometría en el fichero de configuración, se aceptan todos los discos. En Linux (y en Sparc) existen ficheros especiales de dispositivo con geometría configurable (`/dev/fd0', `/dev/fd1', etc.), y por lo tanto no se necesita (ni se tiene en cuenta) el filtrado para unidades de disco. (Mtools aún hace el filtrado en ficheros planos (imágenes de disco) en Linux: el propósito principal de esto es por motivos de comprobación, puesto que yo no tengo acceso a un Unix que necesite realmente el filtrado).

geometría inicial
    La información de geometría (si está disponible) también se emplea para establecer la geometría inicial en ficheros especiales de dispositivo configurables. Esta geometría inicial se emplea para leer el sector de arranque, que contiene la geometría real. Si no se suministra ninguna información de geometría en el fichero de configuración, no se hace la configuración inicial. En Linux, esto no se necesita realmente de ninguna forma, puesto que los dispositivos configurables son capaces de auto-detectar el tipo de disco lo bastante precisamente (para la mayoría de formatos comunes) como para leer el sector de arranque.

Una información de geometría errónea puede conducir a errores muy extraños. Por eso yo recomiendo vivamente que Ud. no use la configuración de geometría a menos que realmente la necesite.

Se dispone de las siguientes variables relacionadas con la geometría:

cylinders
tracks
    El número de cilindros. (cylinders es la forma preferida, tracks está considerada anticuada.)

heads
    El número de cabezas (lados).

sectors
    El número de sectores por pista.

Ejemplo: la siguiente sección de unidad describe una unidad de 1,44 MB:

  drive a:
      file="/dev/fd0H1440"
      fat_bits=12
      cylinders=80 heads=2 sectors=18

Se dispone de las siguientes descripciones abreviadas de geometría:

1.44m
    disco de alta densidad de 3½''. Equivalente a: fat_bits=12 cylinders=80 heads=2 sectors=18

1.2m
    disco de alta densidad de 5¼''. Equivalente a: fat_bits=12 cylinders=80 heads=2 sectors=15

720k
    disco de doble densidad de 3½''. Equivalente a: fat_bits=12 cylinders=80 heads=2 sectors=9

360k
    disco de doble densidad de 5¼''. Equivalente a: fat_bits=12 cylinders=40 heads=2 sectors=9

Las descripciones de formato abreviado pueden enmendarse. Por ejemplo, 360k sectors=8 describe un disco de 320 kB y es equivalente a: fat_bits=12 cylinders=40 heads=2 sectors=8

  Opciones de apertura

Por otra parte, se dispone de las siguientes opciones:

sync
    Todas las operaciones de E/S se harán síncronamente

nodelay
    El fichero o dispositivo se abre con la opción O_NDELAY. Esto se necesita en algunas arquitecturas no Linux.

exclusive
    El fichero o dispositivo se abre con la opción O_EXCL. En Linux, esto asegura acceso exclusivo a la unidad de disquete. En la mayoría de otras arquitecturas, y para ficheros planos, no tiene ningún efecto en absoluto.

  Variables de unidad de propósito general

Se dispone de las siguientes variables de unidad de propósito general:

file
    El nombre del fichero o dispositivo que contiene la imagen de disco. Esto es obligatorio. El nombre del fichero debe estar entre comillas.

use_xdf
    Si está puesto a un valor distinto de cero, mtools también intenta acceder a este disco como a un disco XDF. XDF es un formato de alta capacidad empleado por OS/2. Esto está desactivado por omisión. Vea la sección XDF para más detalles.

partition
    Le dice a mtools que trate a la unidad como a un dispositivo particionado, y que emplee la partición dada. Sólo las particiones primarias están accesibles empleando este método, y están numeradas de la 1 a la 4. Para las particiones lógicas, use la variable más general offset. La variable partition está pensada para unidades desmontables como las Syquests, unidades ZIP, y discos magneto-ópticos. Aunque el DOS tradicional ve a las Syquests y discos magneto-ópticos como a `disquetes gigantescos' que no están particionados, OS/2 y Windows NT los tratan como discos duros, esto es, dispositivos con particiones. La opción partition también es útil con imágenes de disco de DOSEMU. No está recomendada para discos duros para los que se dispone de acceso directo a las particiones mediante el montaje.

scsi
    Cuando se pone a 1, esta opción le dice a mtools que emplee E/S SCSI cruda en vez de las llamadas estándares read/write para acceder al dispositivo. Actualmente, esto se acepta en HP/UX, Solaris y SunOS. Esto se necesita porque en algunas arquitecturas, como en SunOS o Solaris, a los medios de almacenamiento masivo de PC no se puede acceder usando las llamadas al sistema read y write, porque el S.O. espera que contengan una "etiqueta de disco" específica de Sun.

    Como el acceso crudo SCSI siempre emplea el dispositivo entero, Ud. necesita especificar además la opción "partition".

    En algunas arquitecturas, como en Solaris, mtools necesita privilegios de root para ser capaz de usar la opción scsi=1. De modo que mtools debe instalarse set uid root en Solaris si quiere acceder a unidades Zip o Jaz. Mtools emplea sus privilegios de superusuario para abrir el dispositivo, y para hacer las llamadas de E/S SCSI. Además, los privilegios de root sólo se usan para unidades descritas en un fichero de configuración general como pueda ser `/usr/local/etc/mtools.conf', y no para aquéllas descritas en `~/.mtoolsrc' o `$MTOOLSRC'.

privileged
    Cuando se pone a 1, esto le dice a mtools que use sus privilegios set-uid y set-gid para abrir la unidad dada. Esta opción sólo es válida para unidades descritas en ficheros de configuración general (como `/usr/local/etc/mtools.conf', no `~/.mtoolsrc' ni `$MTOOLSRC'). Obviamente, esta opción tampoco vale para nada si mtools no se instala setuid o setgid. Esta opción viene implícita si `scsi=1', pero de nuevo sólo para unidades descritas en ficheros de configuración generales. Esta opción privileged también puede ponerse explícitamente a 0, para decirle a mtools que no emplee sus privilegios para una unidad dada incluso si se ha definido scsi=1.

    Mtools sólo necesita instalarse setuid si Ud. emplea las variables de unidad privileged o scsi. Si Ud. no usa estas opciones, mtools funciona perfectamente bien incluso cuando no se instale setuid root.

vold

    Instruye a mtools para que interprete el nombre de dispositivo como un identificador vold en vez de como un nombre de fichero. El identificador vold se traduce a un nombre de fichero real usando las funciones media_findname() y media_oldaliases() de la biblioteca volmgt. Esta opción sólo está disponible si mtools fue configurado con la opción --enable-new-vold antes de la compilación.

nolock
    Instruye a mtools para que no use candados en esta unidad. Esto se necesita en sistemas con semánticas de candados que fallan a menudo. Sin embargo, habilitar esto hace a la operación menos segura en casos donde varios usuarios pueden acceder a la misma unidad a la vez.

offset
    Describe dónde en el fichero empieza el sistema de ficheros MS-DOS. Esto es útil para particiones lógicas en imágenes del disco de DOSEMU y para discos RAM de Atari. Por omisión, es cero, significando que el sistema de ficheros empieza justo en el principio del dispositivo o fichero.

fat_bits
    El número de bits de la FAT. Este número puede ser 12 ó 16. Esto se necesita muy raras veces, puesto que casi siempre puede deducirse de información en el sector de arranque. Por el contrario, describir el número de bits de la FAT puede en realidad ser perjudicial si lo da mal. Sólo debería emplear esta variable si mtools obtiene el número auto-detectado de bits de la FAT de manera errónea, o si quiere formatear con mformat un disco con un número extraño de bits de FAT.

precmd

    En algunas variantes de Solaris, es necesario llamar a `volcheck -v' antes de abrir un dispositivo de disquete, para que el sistema se dé cuenta de que desde luego hay un disco en la unidad. precmd="volcheck -v" en la cláusula de la unidad establece el comportamiento deseado.

Sólo la variable file es obligatoria. Los otros parámetros pueden dejarse sin poner. En ese caso se emplea un valor predeterminado o auto-detectado.

  Suministrar varias descripciones de una unidad

Es posible suministrar múltiples descripciones para una unidad. En ese caso, las descripciones se prueban en orden hasta que se encuentre una que encaje. Las descripciones pueden fallar por varias razones:

1.  porque la geometría no es apropiada,

2.  porque no hay ningún disco en la unidad,

3.  o por otros problemas.

Las definiciones múltiples son útiles cuando se usen dispositivos físicos que son sólo capaces de admitir una sola geometría de disco. Ejemplo:

  drive a: file="/dev/fd0H1440" 1.44m
  drive a: file="/dev/fd0H720" 720k

Esto le dice a mtools que use /dev/fd0H1440 para discos 1.44m (de alta densidad) y /dev/fd0H720 para discos 720k (de doble densidad). En Linux, esta característica no se necesita realmente, puesto que el dispositivo /dev/fd0 es capaz de manejar cualquier geometría.

Uno puede también emplear descripciones múltiples de unidad para acceder a ambas unidades físicas a través de una letra de unidad:

  drive z: file="/dev/fd0"
  drive z: file="/dev/fd1"

Con esta descripción, mdir z: accede a la primera unidad física si contiene un disco. Si la primera unidad no contiene un disco, mtools comprueba la segunda unidad.

Cuando se empleen ficheros de configuración múltiples, las descripciones de unidad en los ficheros que se analicen en último lugar tienen preferencia sobre las de la misma unidad en ficheros analizados anteriormente. Para evitar esto, emplee las palabras reservadas drive+ o +drive en vez de drive. La primera añade una descripción al final de la lista (esto es, se probará en último lugar), y la primera la añade al principio de la lista.

  Tablas de traducción de conjuntos de caracteres

Si Ud. vive en los EE.UU., en Europa Occidental o en Australia, puede omitir esta sección.

  Por qué se necesitan las tablas de traducción de conjuntos de caracteres

DOS emplea un mapa de códigos de caracteres distinto de Unix. Los caracteres de 7 bits aún tienen el mismo significado, sólo los caracteres con el octavo bit a uno se ven afectados. Para empeorar las cosas, hay disponibles varias tablas de conversión dependiendo del país donde Ud. esté. La apariencia de los caracteres se define mediante páginas de código. Estas páginas de código no son las mismas para todos los países. Por ejemplo, algunas páginas de código no contienen letras mayúsculas acentuadas. Por otra parte, algunas páginas de código contienen caracteres que no existen en Unix, como ciertos caracteres para dibujar líneas o consonantes acentuadas empleadas en algunos países de Europa Oriental. Esto afecta a dos cosas, relativas a nombres de ficheros:

letras mayúsculas
    En nombres cortos, sólo se permiten letras mayúsculas, aparte de dígitos. Esto también cuenta para caracteres acentuados. Por ejemplo, en una página de código que no contenga letras mayúsculas acentuadas, las letras minúsculas acentuadas se transforman en sus correspondientes sin acentuar.

nombres de fichero largos
    Micro$oft al fin ha hecho algo con la cabeza y emplea un mapa más estándar para los nombres de fichero largos. Usan Unicode, que es básicamente una versión de 32 bits de ASCII. Sus primeros 256 caracteres son idénticos a ISO-Latin1, que se emplea en Unix. Así, la página de código también afecta a la correspondencia entre los códigos empleados en nombres largos y los usados en nombres cortos.

Mtools considera los nombres de fichero introducidos en la línea de órdenes como que tienen el mapa de Unix, y traduce los caracteres para obtener los nombres cortos. Por omisión, se emplea el código de página 850 con el mapa suizo mayúsculas/minúsculas. Yo escogí esta página de código porque su conjunto de caracteres existentes es el que más se parece al de Unix. Ítem más, esta página de código cubre la mayoría de caracteres en uso en los EE.UU., Australia y Europa Occidental. Sin embargo, es aún posible escoger un mapa diferente. Hay dos métodos: la variable country y tablas explícitas.

  Configuración usando Country

La variable COUNTRY se recomienda para gente que también tiene acceso a los ficheros del sistema MS-DOS y documentación. Si Ud. no tiene acceso a éstos, yo le sugeriría que mejor usara las tablas explícitas en vez de esto.

Sintaxis:

COUNTRY="país[,[pág-cod], fichero-país]"

Esto le dice a mtools que emplee una tabla de traducción de Unix a DOS que concuerde con país y una tabla de minúsculas a mayúsculas para país y que emplee el fichero fichero-país para obtener la tabla de minúsculas a mayúsculas. El código del país es muy a menudo el prefijo telefónico del país. Refiérase a la página de ayuda de DOS en "country" para más detalles. Los parámetros pág-cod y el fichero-país son opcionales. Por favor no teclee los corchetes, están ahí sólo para decirle qué parámetros son opcionales. El fichero fichero-país se suministra con MS-DOS, y normalmente se llama `COUNTRY.SYS', y se guarda en el directorio `C:\DOS'. En la mayoría de los casos, no lo necesita, puesto que las tablas de traducción más comunes están compiladas en mtools. Así que no se preocupe si Ud. está en una caja (computador) con sólo Unix, que no trae este fichero.

Si no se da pág-cod, se emplea una página de código predeterminada por país. Si no se da el parámetro fichero-país, se emplean valores predeterminados codificados en el programa compilado para la tabla minúsculas a mayúsculas. Esto es útil para sistemas Unix distintos de Linux, que pueden no tener disponible el fichero `COUNTRY.SYS' a mano.

Las tablas de Unix a DOS no están contenidas en el fichero `COUNTRY.SYS', y entonces mtools siempre emplea valores predeterminados codificados en el programa compilado para éstas. De forma que sólo se admite una cantidad limitada de páginas de código. Si su página de código preferida falta, o si Ud. conoce el nombre del fichero de Windows95 que contiene este mapa, por favor, mándeme unas líneas a Alain.Knaff@poboxes.com.

La variable COUNTRY también puede definirse empleando el entorno.

  Configuración usando tablas de traducción explícitas

Las tablas de traducción pueden describirse en el mismo fichero de configuración. Se necesitan dos tablas: primero la tabla de DOS a Unix, y luego la de minúsculas a mayúsculas. Una tabla de DOS a Unix empieza con la palabra reservada tounix, seguida por dos puntos y 128 números hexadecimales. Una tabla de minúsculas a mayúsculas comienza con la palabra reservada fucase, seguida por dos puntos y 128 números exadecimales.

Las tablas sólo muestran las traducciones para caracteres cuyos códigos son mayores que 128, porque la traducción de los códigos menores es trivial.

Ejemplo:

 tounix:
   0xc7 0xfc 0xe9 0xe2 0xe4 0xe0 0xe5 0xe7
   0xea 0xeb 0xe8 0xef 0xee 0xec 0xc4 0xc5
   0xc9 0xe6 0xc6 0xf4 0xf6 0xf2 0xfb 0xf9
   0xff 0xd6 0xdc 0xf8 0xa3 0xd8 0xd7 0x5f
   0xe1 0xed 0xf3 0xfa 0xf1 0xd1 0xaa 0xba
   0xbf 0xae 0xac 0xbd 0xbc 0xa1 0xab 0xbb
   0x5f 0x5f 0x5f 0x5f 0x5f 0xc1 0xc2 0xc0
   0xa9 0x5f 0x5f 0x5f 0x5f 0xa2 0xa5 0xac
   0x5f 0x5f 0x5f 0x5f 0x5f 0x5f 0xe3 0xc3
   0x5f 0x5f 0x5f 0x5f 0x5f 0x5f 0x5f 0xa4
   0xf0 0xd0 0xc9 0xcb 0xc8 0x69 0xcd 0xce
   0xcf 0x5f 0x5f 0x5f 0x5f 0x7c 0x49 0x5f
   0xd3 0xdf 0xd4 0xd2 0xf5 0xd5 0xb5 0xfe
   0xde 0xda 0xd9 0xfd 0xdd 0xde 0xaf 0xb4
   0xad 0xb1 0x5f 0xbe 0xb6 0xa7 0xf7 0xb8
   0xb0 0xa8 0xb7 0xb9 0xb3 0xb2 0x5f 0x5f

 fucase:
   0x80 0x9a 0x90 0xb6 0x8e 0xb7 0x8f 0x80
   0xd2 0xd3 0xd4 0xd8 0xd7 0xde 0x8e 0x8f
   0x90 0x92 0x92 0xe2 0x99 0xe3 0xea 0xeb
   0x59 0x99 0x9a 0x9d 0x9c 0x9d 0x9e 0x9f
   0xb5 0xd6 0xe0 0xe9 0xa5 0xa5 0xa6 0xa7
   0xa8 0xa9 0xaa 0xab 0xac 0xad 0xae 0xaf
   0xb0 0xb1 0xb2 0xb3 0xb4 0xb5 0xb6 0xb7
   0xb8 0xb9 0xba 0xbb 0xbc 0xbd 0xbe 0xbf
   0xc0 0xc1 0xc2 0xc3 0xc4 0xc5 0xc7 0xc7
   0xc8 0xc9 0xca 0xcb 0xcc 0xcd 0xce 0xcf
   0xd1 0xd1 0xd2 0xd3 0xd4 0x49 0xd6 0xd7
   0xd8 0xd9 0xda 0xdb 0xdc 0xdd 0xde 0xdf
   0xe0 0xe1 0xe2 0xe3 0xe5 0xe5 0xe6 0xe8
   0xe8 0xe9 0xea 0xeb 0xed 0xed 0xee 0xef
   0xf0 0xf1 0xf2 0xf3 0xf4 0xf5 0xf6 0xf7
   0xf8 0xf9 0xfa 0xfb 0xfc 0xfd 0xfe 0xff

La primera tabla hace corresponder códigos de caracteres DOS a códigos de caracteres Unix. Por ejemplo, el carácter DOS de número 129. Éste es una u con diéresis: 'ü'. Para traducirla a Unix, miramos al carácter número 1 en la primera tabla (1 = 129 - 128). Éste es 0xfc. (Ojo, la numeración comienza en 0.) La segunda tabla hace corresponder letras minúsculas DOS con letras mayúsculas DOS. La misma letra u con diéresis, 'ü' se corresponde con el carácter 0x9a que es una u con diéresis mayúscula, esto es 'Ü', en DOS.

  Caracteres Unicode mayores que 256
Si un nombre existente MS-DOS contiene caracteres Unicode mayores que 256, éstos se traducen a subrayados o a caracteres que se parezcan visualmente. Por ejemplo, las consonantes acentuadas se traducen a sus correspondientes sin acento. Esta traducción se utiliza para mdir y para los nombres de ficheros Unix generados por mcopy. Linux admite Unicode también, pero desafortunadamente muy pocas aplicaciones lo admiten como para andar preocupándome con esto en mtools. Lo más importante, xterm aún no puede mostrar Unicode. Si hay suficiente demanda, podría incluir soporte para Unicode en los nombres de ficheros Unix también.

Cuidadín: Cuando se borran ficheros con mtools, el subrayado concuerda con todos los caracteres que no puedan representarse en Unix. ¡Tenga cuidadín con mdel!

  Localización de los ficheros de configuración y orden en que se analizan

Los ficheros de configuración se analizan en el orden siguiente:

1.  valores predeterminados codificados en el programa compilado

2.  `/etc/mtools.conf' o `/usr/local/etc/mtools.conf', según versiones de Unix, distribuciones de Linux, o como se escoja al instalar.

3.  `/etc/mtools' Esto sólo es por compatibilidad hacia atrás, y sólo se analiza si `mtools.conf' no existe.

4.  `~/.mtoolsrc'.

5.  `$MTOOLSRC' (el fichero apuntado por la variable de entorno MTOOLSRC)

Las opciones descritas en el último fichero tienen preferencia sobre las descritas en los ficheros anteriores. Las unidades definidas en ficheros anteriores persisten si no se sustituyen o redefinen en los últimos. Por ejemplo, las unidades A y B pueden definirse en `/etc/mtools.conf' y las unidades C y D pueden definirse en `~/.mtoolsrc' . Sin embargo, si `~/.mtoolsrc' también describe la unidad A, esta nueva descripción sustituiría a la de la unidad A de `/etc/mtools.conf' en vez de añadirla a él. Si Ud. quiere añadir una nueva descripción de una unidad ya descrita en un fichero anterior, necesita emplear la palabra reservada +drive o drive+.

  Compatibilidad hacia atrás con la sintaxis antigua del fichero de configuración

La sintaxis descrita aquí es nueva para la versión mtools-3.0. La sintaxis antigua orientada a la línea aún se admite. Cada línea que comience con una sola letra se considera como una descripción de unidad al estilo antiguo. Las secciones de unidad al viejo y al nuevo estilo pueden mezclarse en el mismo fichero de configuración, para que la actualización sea más fácil. De todas formas el soporte para la vieja sintaxis se eliminará alguna vez, y para desaconsejar su uso, a propósito omito aquí su descripción.

LISTA DE ÓRDENES

Esta sección describe las órdenes disponibles de mtools, y los parámetros que acepta cada una. Las opciones que son comunes a todas las órdenes de mtools no se describen aquí, vea `argumentos' para su descripción.

  Mattrib

Mattrib se emplea para cambiar los atributos de ficheros MS-DOS. Tiene la siguiente sintaxis:

mattrib [-a|+a] [-h|+h] [-r|+r] [-s|+s] ficheromsdos [ ficheromsdos ... ]

Mattrib añade atributos a un ficheros MS-DOS (con el operador `+') o los quita (con el operador `-').

Mattrib admite los siguientes atributos:

a   Bit de archivo. Empleado por algunos programas de copias de respaldo para indicar un nuevo fichero.

r   Bit de lectura exclusiva. Empleado para indicar un fichero de solo lectura. Los ficheros con este bit activo no pueden borrarse con DEL ni modificarse.

s   Bit de sistema. Empleado por MS-DOS para indicar un fichero del sistema operativo.

h   Bit de ocultación. Empleado para ocultar ficheros de DIR.

  Mbadblocks

La orden mbadblocks se emplea para escudriñar un disquete MS-DOS y marcar sus bloques malos sin usar como malos. Emplea la sintaxis siguiente:

mbadblocks unidad:

Mbadblocks escudriña un disquete MS-DOS buscando bloques malos. Todos los bloques malos sin usar se marcan como tales en la FAT. Esto está pensado para emplearse justo tras mformat. No está pensado para salvar discos malos.

  Fallos
Mbadblocks debería (pero aún no lo hace :-( ) también intentar salvar los bloques malos que estén en uso leyéndolos repetidamente, y luego marcarlos como malos.

  Mcd

La orden mcd se emplea para cambiar el directorio de trabajo de mtools en el disco de MS-DOS. Emplea la sintaxis siguiente:

mcd [dirmsdos]

Sin argumentos, mcd informa de la unidad y directorio de trabajo en curso. De otra forma, mcd cambia la unidad en curso y el directorio de trabajo en curso relativos a un sistema de ficheros MS-DOS.

La variable de entorno MCWD puede emplearse para localizar el fichero donde se almacena la información sobre la unidad y directorio de trabajo en curso. El valor predeterminado es `$HOME/.mcwd'. La información en este fichero se pasa por alto si el fichero es más antiguo de 6 horas.

Mcd devuelve 0 en caso de éxito ó 1 en caso de fallo.

Al contrario de las versiones de MS-DOS de CD, mcd puede emplearse para cambiar a otro dispositivo. Puede ser interesante borrar los ficheros viejos `.mcwd' al salir de la cuenta.

  Mcopy

La orden mcopy se emplea para copiar ficheros MS-DOS a o desde Unix. Emplea la sintaxis siguiente:

mcopy [-tnvmoOsSrRA] ficherofuente ficherodestino
mcopy [-tnvmoOsSrRA] ficherofuente [ ficherofuente... ] directoriodestino
mcopy [-tnvm] ficherofuenteMSDOS

Mcopy copia el fichero especificado al fichero nombrado, o copia múltiples ficheros al directorio nombrado. Fuente y destino pueden ser ficheros de MS-DOS o de Unix.

El empleo de una letra designando una unidad en los ficheros MS-DOS, `a:' por ejemplo, determina la dirección de la transferencia. Una falta de designación de unidad implica un fichero Unix cuyo camino empiece en el directorio en curso. Si se especifica una letra de unidad fuente sin nombre de fichero adjunto (p.ej., mcopy a: .), se copian todos los ficheros de esa unidad.

Si sólo se suministra un solo parámetro fuente de MS-DOS (p.ej., "mcopy a:fuu.exe"), se supone un destino que es el directorio en curso (`.').

Un nombre de fichero `-' significa la entrada estándar o la salida estándar, dependiendo de su posición en la línea de órdenes.

Mcopy acepta las opciones siguientes en la línea de órdenes:

Q   Cuando se copian con mcopy múltiples ficheros, abandona tan pronto como falle una copia (por ejemplo debido a falta de espacio de almacenamiento en el disco destino).

t   Transferencia de ficheros de texto. Mcopy traduce los pares retorno de carro/salto de línea a saltos de línea.

n   Sin confirmación cuando se sobreescriban ficheros Unix. Mcopy no avisa al usuario cuando se sobreescribe un fichero Unix existente. Para desactivar la confirmación para ficheros DOS, emplee -o.

m   Preserva el tiempo de modificación del fichero. Si el fichero destino ya existe, y la opción -n no está en efecto, mcopy pregunta si sobreescribir el fichero o renombrar el nuevo fichero (vea `coincidencia de nombres') para más detalles).

  Fallos
Al contrario que en MS-DOS, el operador '+' (añadir) de MS-DOS no se admite. Sin embargo, Ud. puede emplear mtype para producir el mismo efecto:

mtype a:fichero1 a:fichero2 a:fichero3 > ficheroUnix
mtype a:fichero1 a:fichero2 a:fichero3 | mcopy - a:ficheroMsdos

  Mdel

La orden mdel se emplea para borrar un fichero MS-DOS. Su sintaxis es:

mdel [-v] ficheromsdos [ ficheromsdos ... ]

Mdel borra ficheros en un sistema de ficheros MS-DOS.

Mdel pide verificación antes de borrar un fichero de lectura exclusiva.

  Mdeltree

La orden mdeltree se emplea para borrar un directorio MS-DOS. Su sintaxis es:

mdeltree [-v] directoriomsdos [directoriomsdos...]

Mdeltree borra un directorio, y todos los ficheros y subdirectorios que contenga, de un sistema de ficheros MS-DOS. Es un error que el directorio a borrar no exista.

  Mdir

La orden mdir se emplea para mostrar un directorio MS-DOS. Su sintaxis es:

mdir [-w] directoriomsdos

mdir [-f] [-w] [-a] ficheromsdos [ ficheromsdos...]

Mdir muestra los contenidos de un directorio MS-DOS.

Mdir admite las siguientes opciones en la línea de órdenes:

w   Salida ancha. Con esta opción, mdir imprime los nombres de ficheros a lo largo de la página sin mostrar el tamaño de los ficheros ni sus fechas de creación.

a   También lista los ficheros ocultos.

f   Rápido. No intenta averiguar el espacio libre. En discos grandes, encontrar la cantidad de espacio libre toma una cantidad apreciable de tiempo, puesto que debe leerse y analizarse la FAT entera. La opción -f pasa de largo este paso. Esta opción no se necesita en sistemas de ficheros FAT32, que almacenan el tamaño explícitamente.

Ocurre un error si un componente del camino no es un directorio.

  Mformat

La orden mformat se emplea para añadir un sistema de ficheros MS-DOS a un disquete formateado a bajo nivel. Su sintaxis es:

mformat [-t cilindros] [-h cabezas] [-s sectores] [-l etiqueta_volumen] [-F] [-I fsVersión] [-S tamañocódigo] [-2 sectores_en_pista_0] [-M tamaño_sector_software] [-a] [-X] [-C] [-H sectores_ocultos] [-r sectores_raíz] [-B sector_arranque] [-k] unidad:

Mformat añade un sistema de ficheros MS-DOS mínimo (sector de arranque, FAT, y directorio raíz) a un disquete que ya ha sido formateado por un formateo Unix de bajo nivel.

Se admiten las siguientes opciones: (Las opciones S, 2, 1 y M pueden no existir si esta copia de mtools se ha compilado sin la opción USE_2M.)

t   El número de cilindros.

h   El número de cabezas (lados).

s   El número de sectores por pista. Si se ha dado la opción 2m, el número de sectores de 512 B equivalentes en pistas genéricas (esto es, no la cabeza 0, pista 0). Si la opción 2m no se ha dado, el número de sectores físicos por pista (que puede ser mayor de 512 bytes).

l   Una etiqueta de volumen opcional.

S   El tamaño de código. El tamaño del sector es 2 elevado a (tamaño-de-código + 7).

2   Formato 2m. El parámetro de esta opción describe el número de sectores en la pista 0, cabeza 0. Esta opción se recomienda para sectores mayores de lo normal.

1   No emplear un formato 2m, incluso si la geometría actual del disco es una geometría 2m.

M   Tamaño de sector de software. Este parámetro describe el tamaño de sector en bytes empleado por el sistema de ficheros MS-DOS. Por omisión es el tamaño de sector físico.

a   Si se da esta opción, se genera un número de serie al estilo de Atari. Atari almacena su número de serie en la etiqueta OEM.

X   Formatea el disco como un disco XDF. Vea la sección XDF para más detalles. El disco tiene primero que formatearse a bajo nivel empleándose la utilidad xdfcopy incluida en el paquete fdutils.

C   Crea el fichero de imagen de disco para instalar el sistema de ficheros MS-DOS en él. Obviamente, esto no vale para nada en dispositivos físicos como disquetes y particiones de discos duros.

H   Número de sectores ocultos. Este parámetro es útil para formatear particiones de discos duros, que no están alineadas en bordes de pista (i.e., la primera cabeza del primer sector no pertenece a la partición, pero contiene una tabla de particiones). En ese caso el número de sectores ocultos es en general el número de sectores por cilindro. Esto está sin probar.

n   Número de serie.

F   Formatea la partición como FAT32 (experimental).

I   Establece el id. de fsVersión (versión del sistema de ficheros) cuando formatea una unidad con FAT32. Para averiguar esto, ejecute minfo en una unidad FAT32 existente, y escríbame por correo contándome esto, de forma que yo pueda incluir el valor correcto en futuras versiones de mtools.

c   Establece el tamaño de un racimo (cluster) (en sectores). Si este tamaño generara una FAT demasiado grande para su número de bits, mtools automáticamente incrementaría el tamaño de racimo, hasta que la FAT fuera lo bastante pequeña.

r   Establece el tamaño del directorio raíz (en sectores). Sólo aplicable a FATs de 12 y 16 bits.

B   Emplea el sector de arranque almacenado en el fichero o dispositivo dado, en vez de usar el suyo propio. Sólo los campos de geometría se actualizan para concordar con los parámetros de los discos destino.

k   Deja el sector de arranque existente tanto como puede. Sólo los campos de geometría se actualizan para concordar con los parámetros de los discos destino.

Para formatear un disquete a una densidad distinta de la predeterminada, Ud. debe suministrar (por lo menos) aquellos parámetros en la línea de órdenes que sean diferentes de los predeterminados.

Mformat devuelve 0 en caso de éxito ó 1 si falla.

No graba información sobre bloques malos en la FAT, emplee mkmanifest para eso.

  Mkmanifest

La orden mkmanifest se emplea para crear un guión del shell (lista de empaquetar) para restaurar nombres de ficheros Unix. Su sintaxis es:

mkmanifest [ ficheros ]

Mkmanifest crea un guión del shell que ayuda en la restauración de nombres de ficheros Unix que resultaron alterados por las restricciones de los nombres de ficheros MS-DOS. Los nombres de ficheros MS-DOS están restringidos a un nombre de 8 caracteres, extensiones de 3 caracteres, letras sólo en mayúsculas, no nombres de dispositivos y no caracteres ilegales.

El programa mkmanifest es compatible con los métodos empleados en pcomm, arc, y mtools para cambiar nombres de ficheros Unix perfectamente buenos de forma que encajen en las restricciones de MS-DOS. Esta orden sólo es útil si el sistema destino que leerá el disquete no puede manejar nombres largos de vfat.

  Ejemplo
Ud. quiere copiar los siguientes ficheros Unix a un disquete MS-DOS (empleando la orden mcopy).

  nombre_muy_largo
  masia.2.puntos
  ilegal:
  bien.c
  prn.dev
  Capital

Mcopy convierte los nombres a:

  nombre_m
  masiax2.pun
  ilegalx
  bien.c
  xrn.dev
  capital

La orden:

mkmanifest nombre_muy_largo masia.2.puntos ilegal: bien.c prn.dev Capital >manifiesto

produciría lo siguiente:

  mv nombre_m nombre_muy_largo
  mv masiax2.pun masia.2.puntos
  mv ilegalx ilegal:
  mv xrn.dev prn.dev
  mv capital Capital

Observe que "bien.c" no requirió ninguna conversión, por lo tanto no apareció en la salida.

Suponga que he copiado estos ficheros desde el disquete a otro sistema Unix, y que ahora quiero los ficheros de vuelta con sus nombres originales. Si el fichero "manifiesto" (la salida capturada antes) se envió junto con esos ficheros, se podría emplear para convertir los nombres de ficheros.

  Fallos

Los nombres cortos generados por mkmanifest siguen el viejo convenio (de mtools-2.0.7) y no el de Windows 95 y mtools-3.0.

  Minfo

La orden minfo muestra los parámetros de un sistema de ficheros DOS, como el número de sectores, cabezas y cilindros. También muestra una línea de orden mformat que puede emplearse para crear un sistema de ficheros DOS similar en otro medio de almacenamiento masivo. Sin embargo, esto no funciona con medios de almacenamiento 2m o Xdf, ni con sistemas de ficheros DOS 1.0. La sintaxis es: minfo unidad:

Minfo admite la siguiente opción:

v   Muestra un volcado en exadecimal del sector de arranque, además de la otra información.

  Mlabel

La orden mlabel añade una etiqueta de volumen a un disco. Su sintaxis es: mlabel [-vcs] unidad:[nueva_etiqueta]

Mlabel muestra la etiqueta de volumen actual, si existe. Si no se da nueva_etiqueta, y si tampoco se han dado las opciones c ni s, se le pide al usuario una nueva etiqueta de volumen. Para borrar una etiqueta de volumen existente, pulse simplemente Intro cuando se le pregunte.

Se toma un cuidado razonable para crear una etiqueta de volumen válida en MS-DOS. Si se especifica una etiqueta inválida, mlabel cambia la etiqueta (y muestra la nueva etiqueta si está activo el modo prolijo). Mlabel devuelve 0 en caso de éxito ó 1 en caso de fallo.

Mlabel admite las siguientes opciones:

c   Borra una etiqueta existente, sin preguntar al usuario.

s   Muestra la etiqueta existente, sin preguntar al usuario.

  Mmd

La orden mmd se emplea para construir un subdirectorio de MS-DOS. Su sintaxis es:

mmd [-voOsSrRA] directoriomsdos [ directoriomsdos... ]

Mmd construye un nuevo directorio en un sistema de ficheros MS-DOS. Ocurre un error si el directorio ya existe.

  Mmount

La orden mmount se emplea para montar un disco de MS-DOS. Sólo está disponible en Linux, puesto que sólo es útil si el núcleo del S.O. permite configurar la geometría del disco. Su sintaxis es:

mmount unidadmsdos [args-de-mount]

Mmount lee el sector de arranque de un disco MS-DOS, configura la geometría de la unidad, y finalmente lo monta pasándole args-de-mount a mount. Si no se dan argumentos para mount, se emplea el nombre del dispositivo. Si el disco está protegido contra escritura, automáticamente se monta como de lectura exclusiva.

  Mmove

La orden mmove se emplea para mover o renombrar un fichero o subdirectorio existente de MS-DOS. Su sintaxis es:

mmove [-voOsSrRA] ficherofuente ficherodestino

mmove [-voOsSrRA] ficherofuente [ ficherofuente... ] directoriodestino

Mmove mueve o renombra un fichero o subdirectorio existente de MS-DOS. Al contrario de la versión de MS-DOS de MOVE, mmove es capaz de mover subdirectorios.

  Mpartition

La orden mpartition se emplea para crear sistemas de ficheros MS-DOS como particiones. Está pensado para emplearse en sistemas no Linux, esto es, sistemas donde no están disponibles ni fdisk ni acceso fácil a los dispositivos SCSI. Esta orden sólo funciona en unidades donde se ha definido la variable de partición, partition.

mpartition -p unidad

mpartition -r unidad

mpartition -I unidad

mpartition -a unidad

mpartition -d unidad

mpartition -c [-s sectores] [-h cabezas] [-t cilindros] [-v [-T tipo] [-b comienzo] [-l longitud] [-f]

Mpartition admite las siguientes operaciones:

p   Imprime una línea de órdenes para recrear la partición para la unidad. No se imprime nada si la partición para la unidad no se ha definido, o si se ha detectado una inconsistencia. Si se pone también la opción prolija (-v), imprime la tabla de partición actual.

r   Borra la partición descrita por unidad.

I   Inicia la tabla de particiones, y borra todas las particiones.

c   Crea la partición descrita por unidad.

a   "Activa" la partición; esto es, la hace de arranque. Sólo una partición puede ser de arranque cada vez.

d   "Desactiva" la partición; esto es, la hace de no arranque.

Si no se da ninguna operación, se muestran las definiciones actuales.

Para las creaciones de particiones, se dispone de las siguientes opciones:

s sectores
    El número de sectores por pista de la partición (que también es el número de sectores por pista para la unidad entera).

h cabezas
    El número de cabezas de la partición (que también es el de la unidad completa). De forma predeterminada, la información de geometría (número de sectores y cabezas) se adivina a partir de entradas de una tabla de partición vecina, o a partir del tamaño.

t cilindros
    El número de cilindros de la partición (no el número de cilindros de la unidad entera).

b comienzo
    El sitio de comienzo de la partición, expresado en sectores. Si no se da, mpartition deja que la partición comience al principio del disco (partición número 1), o inmediatamente tras el final de la partición anterior.

l longitud
    El tamaño (longitud) de la partición, expresado en sectores. Si el final no se da, mpartition se figura el tamaño a partir del número de sectores, cabezas y cilindros. Si éstos tampoco se dan, da a la partición el tamaño máximo posible, considerando el tamaño del disco y el comienzo de la próxima partición.

La siguiente opción está disponible para todas las operaciones que modifiquen la tabla de particiones:

f   Usualmente, antes de escribir cualquier cambio en la partición, mpartition realiza ciertas comprobaciones de consistencia, como solapamientos y alineamiento correcto de la partición. Si cualquiera de estas comprobaciones falla, la tabla de partición no se cambia. La opción -f le permite no efectuar estas operaciones de salvaguarda.

La siguiente opción está disponible para todas las operaciones:

v   Junto con -p imprime la tabla de particiones como es ahora (si no hay una operación de cambio), o como es después de ser modificada.

vv  Si la opción de prolijidad se da dos veces, mpartition mostrará un volcado hexadecimal de la tabla de particiones cuando se lea y cuando se escriba en el dispositivo.

  Mrd

La orden mrd se emplea para borrar un subdirectorio de MS-DOS. Su sintaxis es:

mrd [-v] directoriomsdos [ directoriomsdos... ]

Mrd borra un directorio de un sistema de ficheros MS-DOS. Ocurre un error si el directorio no existe o no está vacío.

  Mren

La orden mren se emplea para renombrar o mover un fichero o subdirectorio existente de MS-DOS. Su sintaxis es:

mren [-voOsSrRA] ficherofuente ficherodestino

Mren renombra un fichero existente en un sistema de ficheros MS-DOS.

En modo prolijo, Mren muestra el nuevo nombre de fichero si el nombre suministrado es inválido.

Si se emplea la primera sintaxis (sólo un ficherofuente), y si el nombre destino no contiene barras inclinadas ni dos puntos, el fichero (o subdirectorio) se renombra en el mismo directorio, en vez de moverse al directorio actual de mcd como sería el caso con mmove. Al contrario de la versión MS-DOS de REN, mren puede emplearse para renombrar directorios.

  Mtoolstest

La orden mtoolstest se emplea para comprobar los ficheros de configuración de mtools. Para llamarla, simplemente teclee mtoolstest sin ningún argumento. Mtoolstest lee los ficheros de configuración de mtools, e imprime la configuración acumulada de los ficheros de configuración de mtools en stdout (la salida estándar). La salida se puede emplear como un mismo fichero de configuración (aunque puede que Ud. quiera quitar cláusulas redundantes). Ud. puede emplear este programa para convertir ficheros de configuración en el estilo antiguo al nuevo.

  Mtype

La orden mtype se emplea para mostrar los contenidos de un fichero MS-DOS. Su sintaxis es:

mtype [-ts] ficheromsdos [ ficheromsdos... ]

Mtype muestra el fichero MS-DOS especificado en la pantalla, o en la salida estándar.

Además de las opciones normales, Mtype permite las siguientes:

t   Visión de fichero de texto. Mtype traduce los pares retorno de carro/salto de línea de entrada a saltos de línea.

s   Mtype pone a cero el bit más alto de los datos.

La orden mcd puede emplearse para establecer el dispositivo y el directorio de trabajo actuales (relativos a MS-DOS), si no el valor predeterminado es A:/.

Mtype devuelve 0 en caso de éxito, 1 en caso de fallo total, ó 2 en caso de fallo parcial.

Al contrario de la versión MS-DOS de TYPE, mtype permite varios argumentos.

  Mzip

La orden mzip se emplea para dar órdenes específicas de discos ZIP en Solaris o HP/UX. Su sintaxis es:

mzip [-epqrwx]

Mzip permite las siguientes opciones en la línea de órdenes:

e   Saca el disco.

f   Fuerza la eyección aun si el disco está montado (debe darse en adición a -e).

r   Protege el disco contra escritura.

w   Quita la protección de escritura.

p   Protege contra escritura con contraseña.

x   Protege con contraseña.

q   Interroga el estado.

Para eliminar la contraseña, establézcalo a uno de los modos sin contraseña -r o -w: mzip entonces le pedirá la contraseña, y desbloqueará el disco. Si Ud. ha olvidado la contraseña, puede eliminarla formateando el disco a bajo nivel (mediante el programa de configuración de la BIOS de su adaptador SCSI).

El disco ZipTools suministrado con la unidad también está protegido con contraseña. En DOS o en un Mac, esta contraseña se quita automáticamente una vez que el ZipTools se ha instalado. De varios artículos publicados en la USENET, aprendí que la contraseña para el disco de herramientas es APlaceForYourStuff (``Un sitio para sus cosas''). Mzip conoce esta contraseña, y la prueba en primer lugar, antes de pedirle una contraseña. Así que mzip -w z: desbloquea el disco de herramientas. El disco de herramientas está formateado de una forma especial de forma que sea utilizable en un PC y en un McIntosh. En un PC, el sistema de ficheros de Mac aparece como un fichero oculto llamado `partishn.mac'. Ud. puede borrarlo para recuperar los 50 megabytes de espacio que toma el sistema de ficheros Mac.

  Xcopy

El guión del shell xcopy se emplea para copiar recursivamente un directorio a otro. Su sintaxis es:

xcopy directoriofuente directoriodestino

Si el directoriodestino no existe, se crea. Si existe, los ficheros de directoriofuente se copian en él, y no se crea ningún subdirectorio llamado directoriofuente, al revés de con cp -rf.

  Fallos

Esta orden es un poco una colección de cosas que funcionan no se sabe cómo. Una implementación correcta tendría que llevar a reescribir varias partes significativas de mtools, pero desafortunadamente yo no tengo ahora mismo tiempo para eso. Lo peor de esta implementación es que es ineficiente en algunas arquitecturas (varias llamadas sucesivas a mtools, lo que deja inútil el sistema de `caché' de mtools).

OPCIONES DE COMPILACIÓN ESPECÍFICAS DE LA ARQUITECTURA

Para compilar mtools, primero llame a ./configure antes de make. Además de las opciones normales de autoconfigure, se dispone de dos opciones específicas de la arquitectura.

./configure --enable-xdf
./configure --disable-xdf
    Activa el soporte para discos XDF. Esto está activo de forma predeterminada. Vea la sección XDF para más detalles.

./configure --enable-vold
./configure --disable-vold
    Activa el soporte para vold en Solaris. Cuando se emplea en conjunción con vold, mtools utilizará diferentes ficheros especiales de dispositivo para el acceso directo.

./configure --enable-new-vold
./configure --disable-new-vold
    Activa el soporte nuevo para vold en Solaris. Se supone que esto funciona mejor que el soporte antiguo.

TRANSPORTE DE MTOOS A ARQUITECTURAS QUE AÚN NO ESTÁN SOPORTADAS

Este capítulo sólo es interesante para aquéllos que quieran transportar mtools a una arquitectura que aún no esté soportada. Para la mayoría de los sistemas comunes, las unidades predeterminadas ya están definidas. Si quiere añadir unidades predeterminadas para un sistema todavía no soportado, ejecute config.guess, para ver qué identificación emplea autoconf para ese sistema. Esta identificación es de la forma cpu-vendedor-so (por ejemplo, sparc-sun-sunos). Las partes cpu y so se pasan al compilador como opciones del preprocesador. La parte del SO se pasa al compilador de tres formas.

1.  El nombre completo del so, con puntos reemplazados por subrayados. sco3.2v2 daría sco3_2v2.

2.  El nombre base del so. Sco3.2v2 daría Sco.

3.  El nombre base del so más su versión mayor. Sco3.2v2 daría Sco3.

Las tres versiones se pasan, si son diferentes.

Para definir los dispositivos, emplee las entradas para los sistemas que ya están presentes, como plantillas. En general, tienen la forma siguiente:

#if (defined (mi_cpu) && defined(mi_so))
#define predefined_devices   /* dispositivos predefinidos */
struct device devices[] = {
        { "/dev/primera_unidad", 'letra_unidad', descripción_unidad},
        ...
        { "/dev/última_unidad", 'letra_unidad', descripción_unidad}
}
#define INIT_NOOP
#endif

"/dev/primera_unidad" es el nombre del dispositivo o fichero imagen que representa a la unidad. Letra_unidad es una letra de la 'a' a la 'z' que da acceso a la unidad. Descripción_unidad describe el tipo de unidad:

ED312
    disco de 3½'' de densidad extra (2,88 MB).

HD312
    disco de 3½'' de alta densidad

DD312
    disco de 3½'' de doble densidad

HD514
    disco de 5¼'' de alta densidad

DD514
    disco de 5¼'' de doble densidad

DDsmall
    disco de 5¼'' de 8 sectores de doble densidad

SS514
    disco de 5¼'' de una cara de doble densidad

SSsmall
    disco de 5¼'' de una cara de 8 sectores de doble densidad

GENFD
    unidad de disquete genérica (FAT de 12 bits)

GENHD
    disco duro genérico (FAT de 16 bits)

GEN dispositivo genérico (todos los parámetros concuerdan)

ZIPJAZ(flags)
    unidad ZIP genérica que emplea acceso normal. Esto usa la partición 4. Flags son cualesquiera opciones especiales que se pasen a open.

RZIPJAZ(flags)
    unidad ZIP genérica que emplea acceso crudo SCSI. Esto usa la partición 4. Flags son cualesquiera opciones especiales que se pasen a open.

Las entradas pueden describirse en más detalle:

 bits_fat,args_open,cilindros,cabezas,sectores,DEF_ARG

o, si Ud. necesita describir un desplazamiento (el sistema de ficheros no empieza al principio)

 bits_fat,args_open,cilindros,cabezas,sectores,desplazamiento,DEF_ARG

bits_fat
    es uno de 12, 16 ó 0. 0 significa que el dispositivo acepta ambos tipos de FAT.

args_open
    puede incluir argumentos a open como O_NDELAY u O_RDONLY, que pueden ser necesarios para abrir el dispositivo. 0 significa que no se necesita ningún argumento especial a open.

cilindros,cabezas,sectores
    describen la geometría del disco. Si cilindros es 0, los parámetros de cabezas y sectores no se tienen en cuenta, y la unidad acepta cualquier geometría.

desplazamiento
    se emplea si el sistema de ficheros DOS no empieza al principio del dispositivo o fichero imagen. Esto es útil sobre todo en los discos RAM de Atari (que contienen su controlador de dispositivo al comienzo del fichero) o para las imágenes del emulador de DOS DOSEmu (que pueden representar un dispositivo particionado).

La definición de los valores predeterminados en el fichero de dispositivos debería hacerse sólo si estos mismos dispositivos se encuentran en un gran número de computadores anfitriones de este tipo. En ese caso, por favor ¿podría notificarme sus nuevas definiciones para que yo pueda incluirlas en la siguiente distribución? Para ficheros puramente locales, yo recomiendo que Ud. use los ficheros de configuración /etc/mtools.conf y ~/.mtoolsrc.

Sin embargo, los ficheros de dispositivo también permiten suministrar las rutinas de establecimiento de la geometría. Éstas son necesarias si Ud. quiere acceder a discos de alta capacidad.

Deberían suministrarse dos rutinas:

1.  Lectura de los parámetros en curso

    static inline int get_parameters(int fd,
    		      struct generic_floppy_struct *floppy)

    Ésta prueba la geometría actualmente configurada, y la devuelve en la estructura generic_floppy_struct (que también debe ser declarada). Fd es un descriptor de fichero abierto para el dispositivo. Esta rutina debería devolver 1 si la prueba falla, y 0 en otro caso.

2.  Establecimiento de nuevos parámetros

    static inline int set_parameters(int fd,
                          struct generic_floppy_struct *floppy,
                          struct stat *buf)

    Ésta configura la geometría contenida en floppy en el descriptor de fichero fd. Buf es el resultado de una llamada a stat (ya rellena). Ésta debería devolver 1 si la nueva geometría no puede configurarse, y 0 en otro caso.

También deberían darse un cierto número de macros del preprocesador:

TRACKS(floppy)
    se refiere al campo track (pista) de la estructura floppy

HEADS(floppy)
    se refiere al campo heads (cabezas) en la estructura floppy

SECTORS(floppy)
    se refiere al campo de sectores por pista en la struct floppy

SECTORS_PER_DISK(floppy)
    se refiere al campo de sectores por disco en la estructura floppy (si es aplicable; si no, se deja sin definir)

BLOCK_MAJOR
    número mayor del dispositivo floppy, cuando se ve como un dispositivo de bloques

CHAR_MAJOR
    número mayor del dispositivo floppy, cuando se ve como un dispositivo de caracteres (también conocido como dispositivo "crudo", usado por fsck) (deje esto sin definir, si su S.O. no tiene dispositivos crudos)

Para los formatos de verdadera alta capacidad (XDF, 2m, etc.), no hay aún una interfaz limpia y documentada.

VÉASE TAMBIÉN
mattrib mbadblocks mcd mcopy mdel mdeltree mdir mformat mkmanifest mlabel mmd mmount mmove mrd mread mren mtoolstest mtype mwrite