umsdos
hace corresponder los ficheros de Linux directamente
con ficheros de Ms-DOS. La traducción es uno a uno (biyectiva).
No se toca el contenido de los ficheros. umsdos
sólo actúa sobre
los nombres. Con los ficheros especiales (enlaces y dispositivos, por
ejemplo) utiliza una gestión especial.
Por cada directorio hay un fichero llamado --linux-.---
.
umsdos
puede reemplazar al sistema de ficheros Ms-DOS.Se puede ver umsdos
como un superconjunto de propósito
general del sistema de ficheros Ms-DOS de linux. Esta
flexibilidad es, de hecho, la causa de gran parte de la confusión
sobre umsdos
. Aquí está el porqué. Si se intenta montar un
disquete DOS recién formateado con esto
mount -t umsdos /dev/fd0 /mnt
Y se hace esto,
ls / >/mnt/FICHEROCONNOMBREMUYLARGO
ls -l /mnt
Se obtiene lo siguiente
-rwxr-xr-x 1 root root 302 Apr 14 23:25 ficheroc
Así, que, por el momento, parece como si el sistema de ficheros
umsdos
no hiciera mucho más (la verdad es que nada más)
que el sistema de ficheros Ms-DOS normal de Linux.
???
No es muy impresionante por el momento. Ahora viene la gracia.
A menos que se promueva, un directorio DOS será manejado
igual por umsdos
que como lo sería por el sistema de
ficheros DOS. umsdos
utiliza un fichero especial
en cada subdirectorio para hacer la traducción entre las
capacidades extendidas de umsdos
y las limitaciones del
sistema de ficheros DOS. Este fichero es invisible para los
usuarios de umsdos
, pero es visible cuando se arranca en
DOS. Para evitar llenar la partición DOS inútilmente
con esos ficheros (--linux-.---
), el fichero es ahora
opcional. Si no existe, umsdos
se comporta como Ms-DOS.
Cuando se promueve un directorio, cualquier operación posterior será hecha con la semántica completa de la que normalmente disfrutan los usuarios de Unix y Linux. Y cualquier subdirectorio creado desde entonces (en un directorio ya promovido) será promovido silenciosamente.
Esta característica permite organizar la partición DOS en
material del DOS y material del Linux. Es importante
entender que el fichero --linux-.---
ocupa algo de espacio
(generalmente 2k por directorio). El DOS habitualmente utiliza
bloques grandes (de hasta 16k para una partición de 500M), así
que evitar que haya ficheros --linux-.---
en todas partes
puede resultar beneficioso.
/sbin/umssync
Se puede promover un directorio en cualquier momento usando
/sbin/umssync
. Se puede usar en cualquier momento.
Al promover un directorio ocurre lo siguiente
--linux-.---
.--linux-.---
y lo que en ese
momento sea el contenido del directorio./sbin/ummsync
conserva un fichero --linux-.---
ya existente. No lo crea de la nada todas las veces. Simplemente
le añade las entradas que le falten (Ficheros creados durante una
sesión DOS) y le quita las entradas que se refieran a ficheros
que ya no existen en el directorio DOS. De ahí le viene
el nombre. umssync
pone --linux-.--- en sincronismo
con el directorio DOS que hay debajo.
/sbin/umssync
durante el arranqueEs una buena idea poner, si no existiera, una llamada a
/sbin/umssyc
al final del fichero /etc/rc.d/rc.S
. La
línea siguiente es adecuada para la mayor parte de los sistemas:
/sbin/umssync -r99 -c -i+ /
La opción -c
evita que umssync
promueva directorios.
Solamente actualizará los ficheros --linux-.---
donde
ya existan.
Esa línea tiene utilidad si se accede al directorio Linux durante
las sesiones DOS. No existe en Linux una manera eficiente
de decir que un directorio ha sido modificado por el DOS así
que umsdos
no puede hacer un umssync según se necesite.
Simplemente hay que eliminar el fichero --linux-.---
usando
el DOS. Aunque quien lo haga acabará arrepintiéndose.
A menos que se use umssync
en un directorio donde el DOS
haya añadido o borrado ficheros, se advertirán algunas dificultades:
umsdos
advertirá su ausencia en el primer acceso.
Se mostrará (y generalmente se escribirá en
/var/adm/syslog
) un mensaje al respecto.