<!-- 0,1 -->
<!-- UMSDOS,0 -->
<!-- Jacques,Gelinas,jacques@solucorp.qc.ca -->
<!-- 1.1,1995-11-13 -->
<!-- UMSDOS -->
<!-- Carlos,García Arques,cgarcia@dit.upm.es -->
<!-- 1.0,1997-02-04 -->
<!-- umsdos,FAT,VFAT,DOS,MSDOS -->
<!-- Software,Kernel -->

<!doctype linuxdoc system>

<article>

<title>EL CÓMO DEL UMSDOS

<author>Jacques Gelinas, <tt><htmlurl url="mailto:jacques@solucorp.qc.ca"
name="jacques@solucorp.qc.ca"></tt> &nl
Traducido por: Carlos García Arques <tt><htmlurl url="mailto:cgarcia@dit.upm.es"
name="cgarcia@dit.upm.es"></tt>

<date>v1.1, 13 November 1995

<abstract>
Umsdos es un sistema de ficheros de Linux sobre uno FAT. Ofrece una
alternativa al sistema de ficheros ext2. Su objetivo
principal es conseguir una más fácil coexistencia con los datos
de una partición FAT, compartiéndola.

En este documento primero se explica cómo usar <tt>umsdos</tt> con
diversas configuraciones, y después se explica cómo funciona
y se da alguna información. Se deja para el lector la decisión
de si es una buena elección para él.
</abstract>

<toc>

<sect>¿Dónde está el UMSDOS?
<p>

<sect1>Historia
<p>

El proyecto <tt/umsdos/ comenzó en 1992 y se puso a disposición
de la red en enero del 1994 en forma de parche. Se incluyó en
la distribución estándar del núcleo (<em>kernel</em>) de linux
en Julio, comenzando con el núcleo 1.1.36.

<tt/umsdos/ fue pronto adoptado por la distribución <em/Slackware/,
incluso antes de que fuera oficialmente incluido en el núcleo.

<tt/umsdos/ empezó a ser mejorado a partir del núcleo 1.1.60.
Su rendimiento ha mejorado radicalmente, especialmente en lo que
se refiere a escritura. A partir del 1.1.70 (más o menos), vuelve
a ser estable.

Un error de consideración fue corregido en <em/Linux/ 1.2.2. El 
error en cuestión estaba dando la lata a los usuarios desde el 
principio (se cambiaba el nombre a algunos ficheros dando la
impresión de que habían desaparecido). Nótese
que la <em/Slackware/ 2.2 aún incluye la versión 1.2.1 del
núcleo, luego contiene ese error.

<sect1>Disponibilidad
<p>

Está disponible como parche para los núcleos 1.0.x. Va incluido
en los núcleos 1.2. Se puede compilar dentro del núcleo o
cargarlo como módulo. Sin embargo, hay que tener en cuenta que
hoy por hoy, si se quiere usar <tt/umsdos/ en forma de módulo cargable
se debe también usar el sistema de ficheros Ms-DOS como 
módulo cargable. Esto es debido a una limitación en el sistema
de módulos (algunos símbolos se exportan sólo cuando los
controladores se instalan como módulos).

<sect1>Distribuciones que lo soportan
<p>

Por el momento creo que sólo <em/Slackware/ lo incluye. Seguramente
me equivoco, así que por favor corregidme.

<sect1>Lugar original donde encontrarlo
<p>

El lugar original de <tt/umsdos/ es <tt><htmlurl url="ftp://sunsite.unc.edu"
name="sunsite.unc.edu"></tt>. Se debe
buscar en el directorio &nl; <tt>/pub/Linux/system/Filesystems/umsdos</tt>.

<sect1>Documentación Técnica
<p>
Hay un montón de documentación sobre el funcionamiento interno de
<tt/umsdos/. Se encuentra disponible tanto en formato <tt/HTML/
como en formato texto en la misma ubicación que las utilidades.

Por lo que yo sé, la versión <tt/HTML/ no está disponible en 
ningún servidor de Web. Se debe transferir, destarrar, y leer
localmente.

<sect1>Quién lo escribió
<p>

Jacques Gelinas <tt><htmlurl url="mailto:jacques@solucorp.qc.ca"
name="jacques@solucorp.qc.ca"></tt>

<sect><tt/umsdos/ como partición raíz
<p>

<sect1>El concepto de la pseudorraíz.
<p>
Mediante el uso de <tt/umsdos/, <em/Linux/ se puede instalar
en una partición de DOS normal y corriente. <em/Linux/ se
instala entonces como segundo (o tercer) sistema operativo
en la partición. Para evitar conflictos con los nombres
de los ficheros (Si ya hubiera, por ejemplo, un directorio
bin, o tmp, en el disco C:), <tt/umsdos/ utiliza un inteligente
truco: La pseudorraíz.

Todos los ficheros de <em/Linux/ se instalan en un subdirectorio
del DOS llamado <tt/linux/. Generalmente <tt/C:&bsol;LINUX/. La estructura
normal de directorios de <em>Linux/Unix</em> va ahí. Así se tiene

<itemize>
<item> <verb/C:\LINUX\BIN/
<item> <verb/C:\LINUX\ETC/
<item> <verb/C:\LINUX\LIB/
<item> <verb/C:\LINUX\ROOT/
<item> <verb/C:\LINUX\SBIN/
<item> <verb/C:\LINUX\TMP/
<item> <verb/C:\LINUX\USR/
<item> <verb/C:\LINUX\VAR/
</itemize>

Cuando arranca, el <tt/umsdos/ trata de encontrar el directorio
<tt/linux/ y el <tt>/linux/etc</tt>. Si existen, activa el modo
pseudorraíz.

Básicamente, el modo pseudorraíz cambia el directorio raíz de la
partición a <tt/C:&bsol;LINUX/ con lo que queda el
árbol de directorios convencional de <em/Unix/

<itemize>
<item><verb>/bin</verb>
<item><verb>/etc</verb>
<item><verb>/lib</verb>
<item><verb>/root</verb>
<item><verb>/sbin</verb>
<item><verb>/tmp</verb>
<item><verb>/usr</verb>
<item><verb>/var</verb>
</itemize>

A esta lista añade uno nuevo llamado <tt/DOS/, que es un directorio
virtual.

<sect1>Lo que hay que saber de la pseudorraíz
<p>
<itemize>
<item> Sólo se puede activar este modo al arrancar el sistema.
No hay manera de activarlo mediante una operación de
montado (con el comando <tt/mount/).
<item> Este mecanismo no es más que una visión diferente de un
sistema de ficheros <tt/umsdos/ normal. Esto significa que
una partición que se usa habitualmente como partición
raíz se puede montar normalmente sin que se produzca ningún
efecto de pseudorraíz.

Por ejemplo, si se arranca linux con un disquete de
mantenimiento y se monta la que es habitualmente la partición
raíz en <tt>/mnt</tt>, todos los directorios de linux
se encontrarán en 
<tt>/mnt/linux/bin, /mnt/linux/etc</tt>, etc...
</itemize>

<sect>Distintos aspectos del funcionamiento de <tt/umsdos/

<sect1>Opciones de <tt/mount/
<p>

Se pueden usar las mismas opciones que para el sistema de ficheros
Ms-DOS. La opción <tt/conv=/ es cuestionable en un sistema <tt/umsdos/.
Yo sugiero evitarla. Las opciones que más probablemente se querrá
usar son

<itemize>
<item><tt/uid=/
<item><tt/gid=/
<item><tt/umask=/
</itemize>

Únicamente se debe recordar que <tt/umsdos/ trata los directorios
no promovidos de la misma forma que el sistema de ficheros
<em/Ms-DOS/. Las opciones de arriba se aplicarán globalmente
a todos los directorios no promovidos. <em/uid/ establece
el propietario por omisión, <em/gid/ establece el grupo por
omisión, y <em/umask/ establece los permisos por omisión.

<sect1>Cómo establecer los valores por omisión para la raíz
<p>

<tt/umssetup/ sirve para establecer en tiempo de ejecución 
el propietario de la partición raíz. Para otras particiones
<tt/umsdos/, se pueden usar las opciones de mount o umssetup.
La manera recomendada para particiones no raíz es poner la
opción apropiada en <tt>/etc/fstab</tt>. Aquí va un ejemplo. Se
debería poner lo siguiente en <tt>/etc/rc.d/rc.S</tt>

<tscreen><verb>
       /sbin/umssetup -u jack -g group -m 0755 /
</verb></tscreen>

<sect1>Swap o no swap
<p>

El uso de un fichero de intercambio (<em/swap/) es por lo general
más lento que una partición de intercambio. Sin embargo, es mucho
más flexible.  Un fichero de intercambio en una partición <tt/umsdos/
se configura de la misma manera que para cualquier otro sistema
de ficheros de <em/Linux/. Por ejemplo, para poner 8 megaoctetos
de fichero de intercambio en el directorio raíz:

<tscreen><verb>
dd if=/dev/zero bs=1024k count=8 of=/swap
mkswap /swap 8192
sync
swapon /swap
</verb></tscreen>

Una vez hecho esto, se puede poner lo siguiente en <tt>/etc/fstab</tt>

<tscreen><verb>
/swapswapswapdefault   
</verb></tscreen>

Y el fichero de intercambio se activará en cada arranque del sistema
(hay por lo general un "<tt/swapon -a/" en <tt>/etc/rc.d/rc.S</tt>).

<sect>Cómo arrancar un sistema <tt/umsdos/
<p>

<sect1>Loadlin
<p>

El paquete <tt/lodlin15.tgz/ está disponible en 
<tt><htmlurl url="ftp://sunsite.unc.edu/pub/Linux/system/Bootutils"
name="ftp://sunsite.unc.edu/pub/Linux/system/Bootutils"></tt>
Esta utilidad es
especialmente apropiada para arrancar un sistema <tt/umsdos/.
Generalmente todo lo que hay que hacer es

<tscreen><verb>
Arrancar el DOS
C:>loadlinx zimage root=D:
</verb></tscreen>

Donde <tt/zimage/ es una imagen normal (comprimida) del núcleo que
simplemente se ha copiado a algún sitio del disco del DOS. <tt/D:/
es el disco del DOS donde se ha instalado <em/Linux/.

<sect1>Con un disquete
<p>

Arrancar un sistema <tt/umsdos/ con un disquete no es distinto
a arrancar un sistema <em/Ext2/. Se necesita un fichero (<tt/zImage/)
con una imagen comprimida del núcleo convenientemente inicializado
para localizar la partición raíz <tt/umsdos/.
Esto se consigue generalmente con la orden <tt/rdev/. La secuencia
siguiente inicializa una <tt/zImage/ y la pone en un disquete.

<tscreen><verb>
rdev zImage /dev/hda1
rdev -R zImage 0
dd if=zImage bs=8192 of=/dev/fd0
</verb></tscreen>

Si esto parece lioso, se puede simplemente crear un disco de
arranque de Ms-DOS e incluir lo siguiente en él:

<itemize>
<item><tt/loadlin.exe/
<item><tt/loadlinx.exe/
<item><tt/zimage/
</itemize>

y ponerle un <tt/autoexec.bat/ como este

<tscreen><verb>
loadlinx zimage rw root=C:
</verb></tscreen>

<sect1><tt/LILO/
<p>

<tt/LILO/, el programa de arranque oficial de <em/Linux/ también se
puede usar para arrancar un sistema <tt/umsdos/. Sin embargo,
no tengo ninguna experiencia con él. Desde la versión 1.1.60
debería funcionar. Por favor mandadme correo si sabéis algo.

<sect1>Cómo defragmentar una partición <tt/umsdos/
<p>

Se puede hacer con cualquier herramienta de DOS. Los ficheros
creados por <tt/umsdos/ no tienen nada de especial. Y <tt/umsdos/
no espera nada especial (estructura del directorio, orden de las
entradas en el directorio, etc...) del sistema de ficheros DOS
que lo soporta.

Por lo que yo sé, no hay ninguna herramienta de <em/Linux/ que
haga esto.

<sect1>Trucos avanzados
<p>
<tt/umsdos/ se apoya en el fichero <tt/--linux-.---/ que a su vez
se apoya en el directorio del <em/DOS/. A algunos usuarios puede
apetecerles experimentar un poco. La utilidad <tt/udosctl/, que es
parte del paquete <tt/umsdos&lowbar;progs/ (que también contiene <tt/umssync/
y <tt/umssetup/) permite hacer operaciones básicas con los 
directorios (listado, borrado) independientemente del fichero
<tt/--linux-.---/ y del directorio del <em/DOS/.

<sect>Principios básicos
<p>

<sect1>Introducción
<p>

<tt/umsdos/ hace corresponder los ficheros de <em/Linux/ directamente
con ficheros de <em/Ms-DOS/. La traducción es uno a uno (biyectiva).
No se toca el contenido de los ficheros. <tt/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 <tt/--linux-.---/.

<sect1><tt/umsdos/ puede reemplazar al sistema de ficheros <em/Ms-DOS/.
<p>

Se puede ver <tt/umsdos/ como un superconjunto de propósito
general del sistema de ficheros <em/Ms-DOS/ de linux.  Esta
flexibilidad es, de hecho, la causa de gran parte de la confusión
sobre <tt/umsdos/. Aquí está el porqué. Si se intenta montar un
disquete <em/DOS/ recién formateado con esto

<tscreen><verb>
mount -t umsdos /dev/fd0 /mnt
</verb></tscreen>

Y se hace esto,

<tscreen><verb>
ls / >/mnt/FICHEROCONNOMBREMUYLARGO
ls -l /mnt
</verb></tscreen>

Se obtiene lo siguiente

<tscreen><verb>
-rwxr-xr-x   1 root     root  302 Apr 14 23:25 ficheroc
</verb></tscreen>

Así, que, por el momento, parece como si el sistema de ficheros
<tt/umsdos/ no hiciera mucho más (la verdad es que nada más)
que el sistema de ficheros <em/Ms-DOS/ normal de <em/Linux/.

<em/???/

<sect1>Promoción de directorios
<p>

No es muy impresionante por el momento. Ahora viene la gracia.
A menos que se promueva, un directorio <em/DOS/ será manejado
igual por <tt/umsdos/ que como lo sería por el sistema de
ficheros <em/DOS/.  <tt/umsdos/ utiliza un fichero especial
en cada subdirectorio para hacer la traducción entre las
capacidades extendidas de <tt/umsdos/ y las limitaciones del
sistema de ficheros <em/DOS/.  Este fichero es invisible para los
usuarios de <tt/umsdos/, pero es visible cuando se arranca en
<em/DOS/. Para evitar llenar la partición <em/DOS/ inútilmente
con esos ficheros (<tt>--linux-.---</tt>), el fichero es ahora
opcional. Si no existe, <tt/umsdos/ se comporta como <em/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 <em/Unix/ y <em/Linux/. Y cualquier subdirectorio
creado desde entonces (en un directorio ya promovido) será 
promovido silenciosamente.

Esta característica permite organizar la partición <em/DOS/ en
material del <em/DOS/ y material del <em/Linux/. Es importante
entender que el fichero <tt/--linux-.---/ ocupa algo de espacio
(generalmente 2k por directorio). El <em/DOS/ habitualmente utiliza
bloques grandes (de hasta 16k para una partición de 500M), así
que evitar que haya ficheros <tt/--linux-.---/ en todas partes
puede resultar beneficioso.

<sect1>Cómo promover: <tt>/sbin/umssync</tt>
<p>

Se puede promover un directorio en cualquier momento usando
<tt>/sbin/umssync</tt>. Se puede usar en cualquier momento.
Al promover un directorio ocurre lo siguiente

<itemize>
<item>Se crea un <tt/--linux-.---/.
<item>Se establece una relación uno a uno (biyectiva) entre el
contenido del fichero <tt/--linux-.---/ y lo que en ese
momento sea el contenido del directorio.
</itemize>

<tt>/sbin/ummsync</tt> conserva un fichero <tt/--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 <em/DOS/) y le quita las entradas que se refieran a ficheros
que ya no existen en el directorio <em/DOS/. De ahí le viene
el nombre. <tt/umssync/ pone <em/--linux-.---/ en sincronismo
con el directorio <em/DOS/ que hay debajo.

<sect1>Uso de <tt>/sbin/umssync</tt> durante el arranque
<p>
Es una buena idea poner, si no existiera, una llamada a
<tt>/sbin/umssyc</tt> al final del fichero <tt>/etc/rc.d/rc.S</tt>. La
línea siguiente es adecuada para la mayor parte de los sistemas:

<tscreen><verb>
/sbin/umssync -r99 -c -i+ /
</verb></tscreen>

La opción <tt/-c/ evita que <tt/umssync/ promueva directorios.
Solamente actualizará los ficheros <tt/--linux-.---/ donde
ya existan.

Esa línea tiene utilidad si se accede al directorio <em/Linux/ durante
las sesiones <em/DOS/. No existe en <em/Linux/ una manera eficiente
de decir que un directorio ha sido modificado por el <em/DOS/ así
que <tt/umsdos/ no puede hacer un <em/umssync/ según se necesite.

<sect1>Cómo DESpromover
<p>

Simplemente hay que eliminar el fichero <tt/--linux-.---/ usando
el <em/DOS/. Aunque quien lo haga acabará arrepintiéndose.

<sect1>¿Qué pasa con los ficheros creados durante una sesión <em/DOS/?
<p>

A menos que se use <tt/umssync/ en un directorio donde el <em/DOS/
haya añadido o borrado ficheros, se advertirán algunas dificultades:

<itemize>
<item>No hace que se caiga el sistema ni causa grandes problemas,
sólo incomodidad :-)
<item>Los ficheros creados por el <em/DOS/:
<itemize>
<item>Serán invisibles desde <em/Linux/.
<item>Cuando se intente crear un fichero con el mismo nombre,
dará un mensaje de error diciendo que el fichero
ya existe.
<item>Esto, más que un verdadero problema, crea confusión.
No daña el sistema de ficheros.
</itemize>
<item>Los ficheros borrados por el <em/DOS/ no causan problemas.
<tt/umsdos/ advertirá su ausencia en el primer acceso.
Se mostrará (y generalmente se escribirá en 
<tt>/var/adm/syslog</tt>) un mensaje al respecto.
</itemize>

<sect>Instalación/Desinstalación y algunos truquillos
<p>
La instalación de un sistema basado en <tt/umsdos/ no difiere
gran cosa de la instalación de un sistema <em/Linux/
ordinario (basado en <em/Ext2/).

Hay dos diferencias fundamentales.

<sect1>La pseudorraíz <tt>/mnt/linux</tt>
<p>
Los pasos normales de una instalación son

<enum>
<item>Hacer una partición con <tt/fdisk/ y formatearla.
<item>Montarla en el directorio <tt>/mnt</tt> de nuestro disco raíz de
instalación.
<item>Copiar todos los paquetes en <tt>/mnt</tt>.
</enum>

El paso 1 no es necesario con <tt/umsdos/ (¿acaso no era el objetivo
de <tt/umsdos/ no tener que reformatear?).

Es posible instalar un sistema <tt/umsdos/ simplemente copiando
todos los paquetes en <tt>/mnt</tt>. Funcionaría, pero crearía
una ristra de subdirectorios en el directorio raíz del <em/DOS/
(<tt/C:/) y no sería agradable. Esa es la razón por la que todas
las instalaciones con <tt/umsdos/ usan la pseudorraíz. Y es la
gran diferencia entre una instalación normal con <em/Ext2/ y una
con <tt/umsdos/: Los ficheros se copian en <tt>/mnt/linux</tt>.

<sect1>Preparar <tt>/mnt/linux</tt>
<p>
<tt>/mnt/linux</tt> no es un directorio ordinario. Tiene que ser
promovido para que maneje correctamente los nombres largos
de <em/Linux/ y los ficheros especiales (enlaces, dispositivos).
Los pasos requeridos para poner a punto <tt>/mnt/linux</tt> son:

<enum>
<item><tt>mkdir /mnt/linux</tt>
<item><tt>umssync /mnt/linux</tt>
</enum>

¡Y ya está!

<sect1>Asegurarse de que <tt>/mnt/linux/</tt> está correctamente configurado.
<p>
A pesar de que la puesta a punto de <tt>/mnt/linux</tt> es muy
sencilla, hay circulando por ahí muchos paquetes de instalación
que lo hacen mal. ¿Cómo es posible?

<!--<quote> -->
El problema de instalación más importante suele provenir
del uso de versiones incompatibles del programa <tt/umssync/.
<tt/umsdos/ fue actualizado en Linux 1.1.88
(No lo recuerdo con exactitud) y quedó un fallo
en <tt>umssync</tt>. Para evitar confusión entre la
comunidad de <em/Linux/, se decidió incrementar el
nivel de compatibilidad requerido para todas las
herramientas de <tt/umsdos/. Las antiguas versiones
de las utilidades fueron simplemente rechazadas.

Parece que muchas distribuciones no han actualizado
el <tt>umssync</tt> de sus disquetes de instalación.
<!--</quote> -->

Todavía hay muchas distribuciones en ese estado por ahí. El
resultado de hecho es que el directorio <tt>/mnt/linux</tt> no
se promueve y se truncan todos los nombres largos de fichero y
se rechazan todos los ficheros especiales.

Es posible comprobar si algo ha ido mal en los primeros momentos
de la instalación. Gracias al mecanismo de pseudoconsolas de
<em/Linux/ se puede hacer sin salir del programa de instalación.
Hay que seguir los siguientes pasos:

<enum>
<item>Pulsar <tt>Alt-F2</tt> (la tecla <tt/Alt/ al mismo tiempo
que la tecla <tt/F2/).
<item>entrar como superusuario (<tt/root/).
<item><tt>cd /mnt/linux</tt>

Si eso falla, es que se está haciendo demasiado pronto.
Al terminar la selección de paquetes es un buen momento
para hacerlo.
<item><tt>>TOTO</tt>
<item><tt>ls -l</tt>

Debería aparecer un fichero vacío llamado <tt/TOTO/ en letras
mayúsculas. Si aparece en minúsculas algo ha ido mal.
Intentaremos ejecutar <tt/umssync/ de nuevo.
<tt/umssync/ puede usarse una y otra vez sin ningún problema.

<tt>umssync .</tt> &nl
(el punto es parte de la orden) &nl
Si no aparece ningún mensaje de error, volveremos a hacer
la comprobación del <tt/TOTO/. Si aparece <tt/TOTO/
correctamente todo está bien. La instalación tiene algo
extraño, pero lo hemos solucionado.

<item>Pulsar <tt>Alt-F1</tt> para volver a la pantalla de instalación.
</enum>

<!--<code> -->
Si la comprobación falla, la mejor solución es hacerse con
un disco de instalación más moderno. Normalmente se puede
arreglar el disco raíz de instalación poniéndole una
versión más moderna de <tt/umssync/. No es difícil, pero
se requiere un sistema <em/Linux/ en funcionamiento. Simplemente
hay que montar el disco raíz y reemplazar el <tt/umssync/
problemático por uno nuevo.
<!--   </quote> -->

<sect1><tt/Oops releasing pseudo root .../
<p>
La mayor parte de las instalaciones <tt/umsdos/ que fallan
lo hacen mostrando ese curioso mensaje. Por muy extraño que
parezca el mensaje, no se trata de un bug (<em/error/) en
<tt/umsdos/. Estas son las causas conocidas:

<itemize>
<item>La más común

La instalación de <em/Slackware/ trata de configurar un
fichero de intercambio (<em/swap/) en los primeros momentos
de la instalación.  Para hacerlo, pide que se seleccione
una partición (un disco del DOS), entonces lo monta y
configura el fichero de intercambio.

Cuando se instala un sistema <em/Slackware/, se debe
configurar la partición receptora antes de instalar nada.
Esto normalmente significa que se monta la partición 
<em/DOS/ en <tt>/mnt</tt>, se crea el directorio
<tt>/mnt/linux</tt>, y se le aplica <tt/umssync/.

De ahí es de donde viene la mayor parte de los problemas.
La mayoría de los usuarios olvidan el paso de 
"configuración de la partición receptora" (<em>"setup target
partition"</em>) y pasan sin más al resto de la instalación.
Como <tt>/mnt</tt> está ya montado, este error pasa
desapercibido.
Eso significa que <tt>/mnt/linux</tt> no ha sido creado
adecuadamente (No ha sido promovido). Ningún fichero 
especial, ni enlace, ni fichero con nombre largo se 
podrá crear correctamente.

<item>Programa <tt/umssync/ no válido

No se ha creado <tt>/mnt/linux</tt> correctamente. Esto está
generalmente causado por un programa <tt>umssync</tt>
inadecuado en el disco de instalación raíz.

<item>Un antiguo error en <tt/umsdos/
<p>
Había un error en <tt/umsdos/ previo a <em/Linux 1.2.2/.
El modo pseudo-root no se activaba adecuadamente si no
existía el fichero <tt>/etc/init</tt>. Ahora <tt/init/
se ubica en <tt>/sbin</tt>. Se puede solucionar esto
haciéndose con un nuevo núcleo. Eso es lo recomendado
puesto que había otro error que se solucionó en la
versión 1.2.2.

Si no es posible la actualización, habrá que hacer lo
siguiente

<enum>
<item>Arrancar con el disquete de instalación.
<item>Entrar como superusuario.
<item><tt>mount -t umsdos /dev/hdXX /mnt</tt>

Donde <tt>/dev/hdXX</tt> es la partición <em/DOS/.
<item><tt>cd /mnt/linux/etc</tt>
<item><tt>ln -s ../sbin/init init</tt>
<item><tt>cd /</tt>
<item><tt>Ctrl-Alt-Del</tt>
<item>Arrancar el sistema <tt/umsdos/ normalmente.
</enum>
</itemize>

Por desgracia, los dos primeros problemas de instalación producen
una instalación completamente inservible. Se debe desinstalar
(Véase la sección siguiente) y volver a instalar.

<sect1>Cómo DESinstalar un sistema <tt/umsdos/
<p>
Una cosa que sorprende agradablemente de <tt/umsdos/ y su
mecanismo de pseudorraíz es que se puede DESinstalar sin
problemas. Simplemente hay que arrancar en <em/DOS/ y borrar
recursivamente el directorio <tt/linux/. Eso es todo. <tt/umsdos/
no requiere ningún controlador especial en el config.sys, ni
crea nada extraño fuera del directorio <tt/linux/.


<sect1>Mover un sistema <tt/umsdos/ a otro disco <em/DOS/
<p>
Se puede hacer desde <em/Linux/ o desde <em/DOS/.  Sólamente hay
que copiar recursivamente el directorio <tt/linux/ de un disco al
otro. Después hay que ajustar el sistema de arranque (generalmente
el programa loadlin) y el fichero <tt>/etc/fstab</tt>.

<tt/umsdos/ puede vivir en cualquier disco <em/DOS/. No hay necesidad
de instalarlo en el disco <tt/C:/, ni en el primer disco duro.
No importa en absoluto.

De hecho, se puede decidir tener varias instalaciones <tt/umsdos/
en distintos discos simplemente para experimentar.

<sect1>Cómo instalar 50 sistemas con <tt/umsdos/
<p>
¿Y si instalamos un montón de sistemas <em/Linux/ en un santiamén?

Los sistemas <tt/umsdos/ viven en un mundo <em/DOS/. Se puede
sacar provecho de esto si se quiere instalar <em/Linux/ fácilmente.

Se puede instalar y configurar un sistema con <tt/umsdos/ en
un ordenador, y, cuando se está satisfecho con la configuración
y los distintos paquetes seleccionados, arrancar en <em/DOS/ y
copiar el directorio <tt/linux/ completo al servidor de ficheros
de <em/DOS/ (en caso de que exista, claro. Tal vez un 
PC-NFS). Entonces se va a otro ordenador con <em/DOS/ y simplemente
se copian los ficheros del disco de red al disco duro local.
Eso es todo. Sólamente habrá que ajustar el fichero .bat de
arranque (<em/Loadlinx/) y ya.

Con unos ajustes mínimos (nombre de la máquina, dirección IP),
cualquiera puede instalar un sistema <em/Linux/ en un minuto.

Los lectores interesados apuntarán que instalar un sistema
<em/Linux/ copiando un sistema en funcionamiento también 
sirve para cualquier otro tipo de sistema <em/Linux/, incluyendo
los basados en <em/Ext2/.

Una de las bellezas de <em/Linux/ es que no hay fichero ocultos
que tengan que ser instalados por un mágico programa de instalación.

<sect>Disponer una sección <em/Linux/ en una partición <em/DOS/
<p>
Incluso para los usuarios de <em/Ext2/ (sistema de ficheros
nativo de <em/Linux/) tiene utilidad <tt/umsdos/. La siguiente
es una situación frecuente:

<itemize>
<item>Como <em/Linux/ es tu sistema operativo preferido, la 
partición de <em/Linux/ empieza a llenarse más y más.
<item>Tu partición de <em/DOS/ está medio vacía y cogiendo polvo.
<item>De repente te quedas sin espacio en la partición <em/Ext2/.
<item>Aún no estás seguro de querer deshacerte del <em/DOS/.
</itemize>

<tt/umsdos/ puede salvar la situación. Se puede poner un directorio
<em/Linux/ en la partición de <em/DOS/ y usarlo sin restricciones
para <em/Linux/. Por ejemplo, pongamos que queremos crear un
nuevo directorio llamado <tt/"extra"/ en el disco <tt/C:/. Y
queremos que se comporte como un directorio normal de <em/Linux/.
Habría que hacer lo siguiente (suponiendo que <tt/C:/ es <tt>/dev/hda1</tt>):

<tscreen><verb>
mkdir /c
/sbin/mount -t umsdos /dev/hda1 /c
mkdir /c/extra
umssync /c/extra
</verb></tscreen>

Hay que ser superusuario (<tt/root/) para hacerlo.

Si se configura el <tt>/etc/fstab</tt> adecuadamente, siempre 
se tendrá acceso al directorio <tt>/c/extra</tt>.

<sect>POR-QUÉ-UMSDOS <label id="porque">
<p>
No basta con explicar cómo funciona o se instala un sistema
con <tt/umsdos/. La mayoría de la gente busca algunos consejos
sobre si usar <tt/umsdos/ o no.


<sect1>El objetivo de <tt/umsdos/
<p>
El objetivo de <tt/umsdos/ era facilitar la instalación de <em/Linux/.
Otro objetivo era facilitar su DESinstalación. La idea detrás
de esto era favorecer la difusión de <em/Linux/.
La instalación de un nuevo sistema operativo es siempre problemática.
<em>OS/2</em> por ejemplo enguarrina tranquilamente el directorio
raíz del disco <tt>C:</tt> con una ristra de nuevos directorios.
Si eres tan inteligente como yo, además te borra los ficheros
<tt/config.sys/ y <tt/autoexec.bat/ :-(

El invento de la pseudorraíz de <tt/umsdos/ evita esta invasión
no deseada. <em/Linux/ se puede DESinstalar sin ningún
efecto lateral.

<sect1>Quién lo necesita
<p>
Si se tiene un disco duro pequeño, <tt/umsdos/ permite compartir
el espacio del disco entre <em/DOS/ y <em/Linux/. Un disco de
menos de 300M es en mi opinión un disco pequeño. Baso esta 
opinión en el tamaño de los diversos paquetes disponibles hoy
día. Un popular procesador de textos se puede cepillar unos
70 megaoctetos si se seleccionan todas las opciones.

Si se tiene un disco duro más grande, se debe tomar en consideración
la opción de tener una partición dedicada para <em/Linux/ donde
use el sistema de ficheros <em/Ext2/. <em/Ext2/ utiliza un tamaño
de bloque más pequeño que <em/DOS/ (exactamente 1K) por lo que
instalar muchos ficheros pequeños utiliza menos espacio que en
una partición <tt/umsdos/.

<sect1>Acerca de la eficiencia
<p>
Lo siguiente es aplicable a <tt/umsdos/ si se le compara con <em/Ext2/.

<itemize>
<item>El manejo de directorios es más rápido en <em/Ext2/. Esto
es debido a la sobrecarga de la estructura de doble
directorio de <tt/umsdos/.
<item>El acceso a los ficheros (lectura y escritura) es probablemente
más rápido en <tt/umsdos/ que en <em/Ext2/. Esto es debido a
la simplicidad del sistema de ficheros con <em/FAT/ usado
por el <em/DOS/.

Téngase en cuenta que esta simplicidad tiene un coste:

<itemize>
<item>Un máximo de alrededor de 65.000 ficheros o bloques
por partición. Esto también significa que una
partición de 500 megaoctetos utiliza un tamaño de
bloque de 16K. En otras palabras, un fichero
que contenga un sólo octeto consumirá 16K de espacio
de disco.
<item>Todo es controlado por una <tt/FAT/ ubicada al principio
del disco duro. Esto hace probablemente más frágil
al sistema de ficheros <em/DOS/.
<item>No se toman precauciones para evitar la fragmentación
de los ficheros. Un sistema <tt/umsdos/ se
usará generalmente como estación de trabajo de
un sólo usuario. En ese caso tiene demasiada
importancia. Si se usa como sistema multiusuario,
los ficheros se esparcirán por todo el disco,
reduciendo la eficiencia de los accesos a
los mismos.
</itemize>
<item>Los enlaces simbólicos se guardan en ficheros normales. Si
se
intenta tener muchos, se encontrará que <tt/umsdos/
usa bastante más espacio de disco que <em/Ext2/.
</itemize>

<sect>Anexo: El INSFLUG <label id="Grupos">
<p>

El <em/INSFLUG/ forma parte del grupo internacional 
<it/Linux Documentation Project/, 
encargándose de las traducciones al castellano de los Howtos (Comos),
así como la producción de documentos originales en aquellos casos
en los que no existe análogo en inglés.

En el <bf/INSFLUG/ se orienta preferentemente a la traducción de documentos
breves, como los <em/COMOs/ y <em/PUFs/ (<bf/P/reguntas de
<bf/U/so <bf/F/recuente, las <it/FAQs/. <tt/:)/ ), etc.

Diríjase a la sede del INSFLUG para más información al respecto.

En la sede del INSFLUG encontrará siempre las <bf/últimas/ versiones 
de las traducciones:  <tt><htmlurl url="http://www.insflug.org" 
name="www.insflug.org"></tt>. Asegúrese de comprobar cuál es la última versión 
disponible en el Insflug antes de bajar un documento de un servidor réplica.

Se proporciona también una lista de los servidores
réplica (<it/mirror/) del Insflug más cercanos a Vd.,  
e información relativa a otros recursos en castellano.

Francisco José Montilla, <tt><htmlurl url="mailto:pacopepe@insflug.org"
name="pacopepe@insflug.org"></tt>.

</article>
