Sistema de archivos FAT y Linux
Linux tiene varios controladores de sistema de archivos para el formato de sistema de archivos de la tabla de asignación de archivos (FAT). Estos son comúnmente conocidos por los nombres usados en el comando mount
para invocar controladores particulares en el kernel: msdos, vfat y umsdos .
Historia y soporte
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í. Estos incluyen distribuciones como Phat Linux, que se instala en C:PHAT
en DOS al desempaquetar un archivo ZIP y se inicia ejecutando un script COMMAND.COM llamado LINUX.BAT
y ZipSlack.
El proyecto UMSDOS fue iniciado en 1992 por Jacques Gelinas y estuvo disponible en la red en enero de 1994 como un parche. Se incluyó en la distribución estándar a partir del kernel 1.1.36. UMSDOS se eliminó del kernel de 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 los propios, se suspendió antes del lanzamiento. Deberían funcionar en kernels 2.4.x.
Las distribuciones de Linux anteriores que usaban UMSDOS son MuLinux, Monkey Linux y Winlinux 2000.
Comparación de funciones
Todos los controladores del sistema de archivos de Linux admiten los tres tipos de FAT, a saber, FAT12, FAT16 y FAT32. Donde 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 archivo. Los controladores del sistema de archivos son mutuamente excluyentes. Solo se puede usar uno para montar un 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 se quiere hacer del volumen del disco.
Msdos
El controlador del sistema de archivos msdos no proporciona semántica adicional de archivos Unix ni admite nombres de archivos largos. Si se monta un sistema de archivos de disco FAT con este controlador, solo se verán los nombres de archivo 8.3, no se podrá acceder a los nombres de archivo largos, ni se mantendrá ninguna estructura de datos de nombre de archivo largo de ningún tipo en el volumen del disco. El controlador del sistema de archivos vfat proporciona compatibilidad con nombres de archivos largos utilizando las mismas estructuras de datos de disco que Microsoft Windows utiliza para la compatibilidad con nombres de archivos largos VFAT en volúmenes con formato FAT, pero no admite ninguna semántica de archivos Unix adicional. El controlador del sistema de archivos umsdos proporciona compatibilidad con nombres de archivo largos 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.
Mensajes
La principal ventaja de 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 de sistema de archivos ext2. Además, a menos que se ejecute regularmente un programa de utilidad cada vez que uno cambia de ejecutar Windows a ejecutar Linux, ciertos cambios realizados en archivos y directorios en el disco por parte de Windows generarán mensajes de error sobre archivos inaccesibles en Linux.
Vfat
vfat, aunque carece de la semántica completa de archivos de 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 como Windows. Sus estructuras de datos son las mismas que las utilizadas por Windows para 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 desconecten. Por esta razón, es el controlador de sistema de archivos FAT de Linux más apropiado para usar en la mayoría de las situaciones.
FS-Driver | Nombres de archivo largos | Unix archivo semantics | Comentario |
---|---|---|---|
msdos | No | No | 8.3 nombres de archivo únicamente |
vfat | Sí. | No | Usa las mismas estructuras de datos que Windows utiliza |
umsdos | Sí. | Sí. | Puede acoger Linux; puede necesitar mantenimiento al cambiar OS |
Comunes
Como se mencionó anteriormente, todos los controladores del sistema de archivos de Linux admiten los tres tamaños de la 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 mount
):
uid
ygid
- Estas dos opciones indican al controlador del sistema de archivos para establecer el (por defecto, en el caso de umsdos) ID de usuario y ID de grupo para ser un único, especificado, valor para todos los archivos en el volumen. Ambos IDs se especifican como valores numéricos (como se puede encontrar en los
/etc/passwd
archivo). Así, por ejemplo, para especificar al vfat controlador de sistema de archivos que todos los archivos y directorios deben tener ID de propietario 745 y ID de grupo 15, elmount
comando would be invoked as asmount -t vfat -o uid=745,gid=15
. Los controladores de sistemas de archivos de Linux no incorporan actualmente el soporte para contraseñas de archivo/directorios en volúmenes FAT12/FAT16/FAT32 y permisos de acceso multiusuario para lectura/escritura/derecho/ejecutar derechos sobre volúmenes FAT12/FAT16 implementados en varios sistemas operativos de la familia de Investigación Digital, incluyendo DR-DOS, PalmDOS, Novell DOS, OpenDOS, FlexOS, FlexOS, umask
- Esta opción establece el umask para aplicar globalmente a todos los archivos en el volumen. Por ejemplo, para especificar al vfat controlador de sistema de archivos que ningún "grupo" o "otro" acceso es permitido, el
mount
comando would be invoked as asmount -t vfat -o umask=077
. conv
- Esta opción especifica conversión de contenido de archivo Semántica. Es posible que los controladores del sistema de archivos conviertan las convenciones de nueva línea en archivos, entre la terminación LF y la terminación CRLF, en la marcha como los archivos son leídos y escritos. Por defecto esta conversión es totalmente deshabilitada. Los controladores del sistema de archivos pueden realizar la conversión para algunos archivos, intentando auto-detectar qué archivos convertir basado en la parte de extensión del nombre de archivo, o globalmente para todos los archivos. Estos tres niveles de conversión se especifican como
conv=b
(para "binario"),conv=a
(para "auto-dececto"), yconv=t
(por "texto"), respectivamente. Estas dos últimas opciones tienen un riesgo inherente de corromper los datos de archivos no texto. Ninguna conversión en absoluto es el predeterminado.
Mensajes
Estructura de datos
El controlador del sistema de archivos FAT umsdos 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, denominado < código>--LINUX-.---.
En ausencia de este archivo en cualquier directorio dado, y por lo tanto de forma 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 8.3 nombres de archivo y sin semántica de archivos 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, en cada directorio del 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. creado en archivos y directorios por Windows en sus estructuras de datos privados 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 disco. volumen. Al cambiar entre Windows y Linux, este comportamiento a menudo no se considera deseable. Por lo tanto, el modo normal de operación al invocar umssync
después de cambiar de Windows a Linux (lo que generalmente se hace ejecutando la herramienta en el momento de arranque de Linux desde un script de inicio) es emplear -c
opción al comando, que impide la creación de nuevos archivos --LINUX-.---
en directorios que aún no los poseen.
Instalación de Linux en FAT
Como se mencionó, umsdos permite instalar Linux y luego arrancarlo 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 ya está instalado DOS, sin necesidad de volver a particionar el disco duro. Linux no se arranca directamente desde un registro de arranque de volumen en tal escenario. En su lugar, primero se inicia DOS y se usa loadlin o linld para luego iniciar Linux desde DOS.
La convención para una instalación de este tipo es que el directorio raíz de Linux sea un subdirectorio del directorio raíz del volumen de arranque de DOS, p. C:LINUXETC
(para /etc
), C:LINUX BIN
(para /bin
), C:LINUXLIB
(para /lib
), etc. 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 del comando loadlin
. Entonces, por ejemplo, loadlin
se invocaría con una línea de comando como loadlin c:linuxbootvmlinuz rw root=c:linux
.
La instalación de Linux en dicho directorio en primer lugar implica simplemente descomprimir archivos de un archivo en ese directorio y sus subdirectorios. Dicha instalación generalmente también 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 volver a particionar el disco duro y no está relacionado con el controlador del sistema de archivos umsdos per se.
Acceso a volúmenes con formato FAT sin soporte del kernel
Aunque los controladores del sistema de archivos en el kernel permiten acceder a archivos y directorios en volúmenes con formato FAT de la manera normal, también es posible hacerlo sin compatibilidad con el controlador del kernel, utilizando los programas de utilidades que forman el paquete de utilidades mtools. Al igual que el controlador del sistema de archivos FAT vfat, mountlo 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.
Sistema de archivos de superposición POSIX
Un equivalente moderno de UMSDOS es POSIX Overlay Filesystem (posixovl). Funciona en FUSIBLE.
Contenido relacionado
Lista de dominios de nivel superior de Internet
Lista de procesadores Intel
Memoria dinámica de acceso aleatorio