¿Qué hay /etc/mtab
en Linux?
¿Por qué es necesario y las ventajas de tenerlo?
man 5 mtab
falte.
¿Qué hay /etc/mtab
en Linux?
¿Por qué es necesario y las ventajas de tenerlo?
man 5 mtab
falte.
Respuestas:
% archivo / etc / mtab / etc / mtab: enlace simbólico a ../proc/self/mounts % archivo / proc / montajes / proc / mounts: enlace simbólico a self / mounts %
/etc/mtab
Es un mecanismo de compatibilidad. Hace décadas, Unix no tenía una llamada al sistema para leer la información de montaje existente. En cambio, se esperaba que los programas que montaban sistemas de archivos mantuvieran una tabla cooperativa y voluntaria /etc/mtab
de lo que estaba montado donde.
Por razones obvias, este no era un mecanismo ideal.
Linux adquirió la noción de un "procfs", y una de las cosas que obtuvo fue una versión de esta tabla mantenida por el núcleo, en forma de un mounts
archivo pseudo-regular. La "llamada al sistema" para leer la información de montaje del núcleo se convirtió en una secuencia de abrir-leer-cerrar contra ese archivo, seguida de analizar el resultado de la forma legible por humanos a la máquina (algo que tiene algunas capturas sutiles, como usted puede verse en los informes de errores de hace poco más de quince días).
/etc/mtab
por lo tanto, se ha convertido popularmente en un enlace simbólico /proc/mounts
, lo que permite que los programas que han cableado ese nombre sigan leyendo una tabla de montaje de ese archivo, que los programas que montaron y desmontaron sistemas de archivos ya no tienen que hacer nada explícitamente para mantenerse actualizados. (Sin embargo, algunos de ellos todavía lo harán si /etc/mtab
resulta ser un archivo normal grabable. Y hay algunos casos de esquina donde la información normalizada mounts
que carece de todo lo que no es del núcleo no es lo que se necesita; aunque no superan los problemas generales con /etc/mtab
)
En la actualidad, cada proceso puede tener su propia vista individual de lo que está montado y, como consecuencia, ahora hay mounts
archivos individuales para cada proceso en los procesos, pudiendo acceder a la propia tabla de cada proceso a través del self
enlace simbólico self/mounts
, y ahora también/proc/mounts
es una compatibilidad mecanismo. (Curiosamente, ni el proceso ni el formato están documentados en el doco de Linux actual, aunque el archivo pseudo-regular es similar ).mounts
mounts
mountinfo
SunOS / Solaris tiene un mecanismo similar. El /etc/mnttab
archivo es en realidad un sistema de archivos de un solo archivo, y además de leer la tabla, a través de un descriptor de archivo abierto a ese archivo, con la read()
llamada al sistema, uno puede observar los cambios en el punto de montaje poll()
y obtener varios datos adicionales ioctl()
.
En HP-UX, /etc/mnttab
es también el nombre del archivo, pero a partir de la versión 11 todavía era un archivo normal cuyo contenido era mantenido cooperativamente por los programas de utilidad del sistema.
AIX no exporta una tabla de texto legible por humanos que los programas tienen que analizar, y no hay un archivo equivalente. Los BSD, de manera similar, tienen llamadas completas al sistema, getfsstat()
en FreeBSD y OpenBSD, para que los programas obtengan la tabla de montaje del núcleo en forma legible por máquina sin ordenarla a través de una forma intermedia legible por humanos.
/proc/self/mountinfo
with \ r en la ruta de montaje . # 35137. Errores de GNU coreutils./proc/mounts
. Documentation / filesystems / proc.txt . Linux 5.1.fstab-decode
. Error # 567071. Debian bugs.getfsstat()
. Manual de llamadas al sistema FreeBSD . 2016-12-27.mtab(5)
de los viejos tiempos: man.cat-v.org/unix_8th/5/mtab .
/proc/mounts
, sino que ahora /proc/self/mounts
es un mecanismo de compatibilidad; solo muestra un subconjunto de la información disponible en /proc/self/mountinfo
. El formato de /proc/self/mounts
está documentado proc(5)
como idéntico afstab(5)
De acuerdo a man mount
:
Los programas mount y umount tradicionalmente mantenían una lista de los sistemas de archivos actualmente montados en el archivo / etc / mtab. Este archivo mtab real todavía es compatible, pero en los sistemas Linux actuales es mejor convertirlo en un enlace simbólico a / proc / mounts, porque un archivo mtab normal mantenido en el espacio de usuario no puede funcionar de manera confiable con espacios de nombres, contenedores y otras características avanzadas de Linux.
En montaje sin grabar en /etc/mtab
:
-n, --no-mtab
Montar sin escribir en / etc / mtab. Esto es necesario, por ejemplo, cuando / etc está en un sistema de archivos de solo lectura.
Muchos más matices se dan en la página del manual.