Linux tiene soporte para varios controladores de sistema de archivos para el formato de sistema de archivos de tabla de asignación de archivos (FAT). Estos son comúnmente conocidos por los nombres utilizados en el comando mount
para invocar controladores particulares en el núcleo: msdos, vfat y umsdos.
Todos los controladores del sistema de archivos de Linux admiten los tres tipos de FAT: FAT12, FAT16 y FAT32. En lo que difieren es en la provisión de soporte para nombres de archivo largos, más allá de la estructura de nombre de archivo 8.3 del formato del sistema de archivos FAT original, y en la provisión de la semántica de archivos Unix que no existe como estándar en el formato del sistema de archivos FAT, como los permisos de archivos. Los controladores del sistema de archivos son mutuamente excluyentes. Solo se puede usar uno para montar cualquier volumen de disco dado en un momento dado. Por lo tanto, la elección entre ellos está determinada por los nombres de archivo largos y la semántica de Unix que admiten y el uso que uno quiere hacer del volumen del disco.
El controlador del sistema de archivos msdos no proporciona semántica adicional de archivos Unix y tampoco admite archivos largos. Si se monta un sistema de archivos de disco FAT con este controlador, solo se mostrarán archivos con un nombre 8.3; no se podrá acceder a nombres de archivo largos, ni se mantendrán estructuras de datos de nombre de archivo largas de ningún tipo en el volumen del disco. El controlador del sistema de archivos vfat proporciona compatibilidad con nombres de archivo largos utilizando las mismas estructuras de datos de disco que Microsoft Windows utiliza para la compatibilidad con nombres de archivo largos VFAT en volúmenes con formato FAT, pero no admite ninguna semántica adicional de archivos Unix. El controlador del sistema de archivos umsdos proporciona soporte de nombre de archivo largo y semántica adicional de archivos Unix. Sin embargo, lo hace utilizando estructuras de datos en disco que no son reconocidas por ningún controlador de sistema de archivos para ningún sistema operativo que no sea Linux.
La ventaja clave para umsdos de los tres es que proporciona una semántica completa de archivos Unix. Por lo tanto, se puede usar en situaciones en las que es deseable instalar Linux y ejecutarlo desde un volumen de disco FAT, que requiere que dicha semántica esté disponible. Sin embargo, Linux instalado y ejecutándose desde dicho volumen de disco es más lento que Linux instalado y ejecutándose desde un volumen de disco formateado con, por ejemplo, el formato del sistema de archivos ext2. Además, a menos que un programa de utilidad se ejecute regularmente cada vez que uno cambie de ejecutar Windows a ejecutar Linux, ciertos cambios realizados en archivos y directorios en el disco por Windows provocarán mensajes de error sobre archivos inaccesibles en Linux.
vfat, aunque carece de una semántica completa de archivos Unix y de la capacidad de tener Linux instalado y ejecutándose desde un volumen de disco FAT, no tiene las desventajas antes mencionadas de umsdos cuando se trata simplemente de compartir datos en un volumen de disco FAT entre Linux y otros sistemas operativos sistemas como Windows. Sus estructuras de datos son las mismas que las utilizadas por Windows para los nombres de archivo largos VFAT, y no requiere ejecutar una utilidad de sincronización para evitar que las estructuras de datos de Windows y Linux se desarticulen. Por esta razón, es el más apropiado de los controladores de sistema de archivos FAT de Linux para usar en la mayoría de las situaciones.
Como se mencionó anteriormente, todos los controladores del sistema de archivos de Linux admiten los tres tamaños de tabla de asignación de archivos, 12 bits, 16 bits y 32 bits. Otras características comunes que todos admiten son varias opciones de montaje de Linux (especificadas con la opción -o
del comando de mount
):
El controlador del sistema de archivos umsdos FAT almacena toda la información adicional relacionada con la semántica de archivos Unix en lo que, para otro controlador del sistema de archivos FAT, parece ser solo un archivo normal en cada directorio y subdirectorio, llamado --LINUX-.
---
.
En ausencia de este archivo en cualquier directorio dado, y por lo tanto, de manera predeterminada, el controlador del sistema de archivos umsdos proporciona la misma semántica que el controlador del sistema de archivos msdos para el directorio: solo nombres de archivo 8.3 y ninguna semántica de archivo Unix adicional. Para habilitar las capacidades adicionales del controlador umsdos, es necesario crear ese archivo en el directorio y sincronizar sus datos internos con los datos FAT normales para cualquier entrada existente que ya esté en el directorio. Esto se hace con una herramienta llamada umssync
.
Este es el programa de utilidad que se ejecuta, a través de cada directorio en el volumen del disco, cada vez que uno cambia de ejecutar Windows a ejecutar Linux, para que el controlador del sistema de archivos umsdos incorpore cualquier cambio realizado en archivos y directorios por Windows en sus estructuras de datos privadas en su archivo --LINUX-.---
. De forma predeterminada, la herramienta umssync
crea archivos --LINUX-.---
en directorios si aún no existen, lo que da como resultado un archivo de este tipo en cada directorio del volumen del disco. Al cambiar entre Windows y Linux, este comportamiento a menudo no se considera deseable. Por lo tanto, el modo normal de operación cuando se invoca umssync
después de cambiar de Windows a Linux (que generalmente se realiza ejecutando la herramienta en el momento de arranque de Linux desde un script de inicio) es emplear la opción -c
para el comando, que impide la creación de cualquier --LINUX-.---
nuevo --LINUX-.---
en directorios que aún no los posee.
Como se mencionó, umsdos permite instalar Linux y luego iniciarlo y ejecutarlo desde un volumen de disco en formato FAT. La ventaja de esto es que permite el uso de Linux en una computadora donde DOS ya está instalado, sin que sea necesario volver a particionar la unidad. Linux no se inicia directamente desde un registro de inicio de volumen en tal escenario. En cambio, DOS se inicia primero y se usa loadlin o linld para iniciar Linux desde DOS.
La convención para tal instalación es que el directorio raíz de Linux sea un subdirectorio del directorio raíz real del volumen de arranque de DOS, p. Ej. C:LINUX
. Los diversos directorios de nivel superior de Linux son, por lo tanto, para DOS, directorios como C:LINUXETC
(para /etc
), C:LINUXBIN
(para /bin
), C:LINUXLIB
(para /lib
), etcétera. El controlador del sistema de archivos umsdos antepone automáticamente C:LINUX
a todos los nombres de ruta. La ubicación del directorio raíz de Linux se proporciona al controlador del sistema de archivos umsdos en primer lugar a través de una opción para el comando loadlin
. Entonces, por ejemplo, para el directorio raíz mencionado anteriormente, loadlin
se loadlin
con una línea de comando como loadlin c:linuxootvmlinuz rw root=c:linux
.
La instalación de Linux en dicho directorio en primer lugar simplemente implica desempaquetar archivos de un archivo en ese directorio y sus subdirectorios. Tal instalación también generalmente requiere el uso de un archivo de intercambio en lugar de una partición de intercambio para Linux, sin embargo, esto está relacionado con el deseo de no repartir el disco duro y no está relacionado con el controlador del sistema de archivos umsdos per se.
La mayoría de las principales distribuciones de Linux, incluidas RedHat, SuSE y Debian, no emplean umsdos para permitir la instalación de Linux en un volumen de disco FAT. Sin embargo, algunas distribuciones sí.C:PHAT
en DOS desempacando un archivo ZIP y se inicia ejecutando un script COMMAND.COM. llamado LINUX.
BAT
, y ZipSlack.[cita requerida]
El proyecto UMSDOS se inició en 1992 por Jacques Gelinas y se puso a disposición de la red en enero de 1994 como un parche. Se incluyó en la distribución estándar comenzando con el núcleo 1.1.36.[cita requerida] UMSDOS se eliminó del núcleo Linux 2.6.11 por falta de mantenimiento. UVFAT, una extensión de UMSDOS para usar las estructuras de datos de Windows para nombres de archivo largos en lugar de la suya, se suspendió antes del lanzamiento. Deberían funcionar en núcleos 2.4.x.[cita requerida]
Las distribuciones anteriores de Linux que usaban UMSDOS son MuLinux, Monkey Linux y Winlinux 2000.
Aunque los controladores del sistema de archivos en el kernel hacen posible acceder a archivos y directorios en volúmenes formateados FAT de la manera normal, también es posible hacerlo sin el soporte del controlador del kernel, utilizando los programas de utilidad que forman el conjunto de utilidades mtools. Al igual que el controlador del sistema de archivos FAT vfat, mtools proporciona compatibilidad con nombres de archivo largos utilizando las mismas estructuras de datos de disco que utiliza Microsoft Windows.
Alternativamente, se puede usar uno de los controladores del sistema de archivos FUSE: FatFuse, FuseFat o mountlo.
Un equivalente moderno de UMSDOS es POSIX Overlay Filesystem (posixovl). Funciona en FUSE.
Escribe un comentario o lo que quieras sobre UMSDOS (directo, no tienes que registrarte)
Comentarios
(de más nuevos a más antiguos)