Usualmente uso mount
para verificar qué sistemas de archivos están montados. También sé que hay alguna conexión entre mount
y, /etc/mtab
pero no estoy seguro de los detalles. Después de leer Cómo verificar si / proc / está montado, me confundo más.
Mi pregunta es: ¿Cómo obtener la lista más precisa de sistemas de archivos montados? ¿Debo usar mount
o leer el contenido /etc/mtab
o el contenido de /proc/mounts
? ¿Qué daría el resultado más confiable?
linux
filesystems
mount
xanpeng
fuente
fuente
Respuestas:
La lista definitiva de sistemas de archivos montados está en
/proc/mounts
.Si tiene alguna forma de contenedores en su sistema,
/proc/mounts
solo enumere los sistemas de archivos que están en su contenedor actual. Por ejemplo, en un chroot ,/proc/mounts
enumera solo los sistemas de archivos cuyo punto de montaje está dentro del chroot. ( Hay formas de escapar del chroot, mente ) .También hay una lista de sistemas de archivos montados en
/etc/mtab
. Esta lista es mantenida por los comandosmount
yumount
. Eso significa que si no usa estos comandos (lo cual es bastante raro), su acción (montar o desmontar) no se grabará. En la práctica, es principalmente en un chroot donde encontrarás/etc/mtab
archivos que difieren enormemente del estado del sistema. Además, los montajes realizados en el chroot se reflejarán en el chroot/etc/mtab
pero no en el principal/etc/mtab
. Las acciones realizadas mientras/etc/mtab
está en un sistema de archivos de solo lectura tampoco se registran allí.La razón por la que a veces querría consultar
/etc/mtab
con preferencia o además/proc/mounts
es porque tiene acceso a la línea de comando de montaje, a veces puede presentar información de una manera más fácil de entender; por ejemplo, verá las opciones de montaje según lo solicitado (mientras que también/proc/mounts
enumera losmount
valores predeterminados y del núcleo), y los montajes de enlace aparecen como tales en/etc/mtab
.fuente
mount
mantener/etc/mtab
si no se puede confiar en él? ¿No sería mejor si semount
presentara información de él/proc/mounts
?/etc/mtab
puede registrar información que el núcleo no rastrea, como las opciones solicitadas originalmente, y los montajes de enlace que aparecen como tales en lugar de aparecer como entradas duplicadas para dispositivos. Sin embargo, muchas distribuciones se están moviendo hacia hacer/etc/mtab
un enlace simbólico a/proc/mounts
./etc/mtab
un enlace simbólico a/proc/mounts
. Es bueno escucharlo: agregar esta información para responder lo haría aún mejor. ¿Crees que el seguimiento de las opciones solicitadas por el núcleo sería factible y beneficioso?findmnt
que es la forma preferida desde 2010 y probablemente la única forma segura en un futuro próximo cuando los espacios de nombres de montaje sean comunes.A partir de la versión 2.18 (julio de 2010)
util-linux
incluye una herramienta que le permite mostrar una lista de los sistemas de archivos actualmente montados:Puede cambiar de la vista de árbol predeterminada a la vista de lista con
-l
, definir columnas de salida con-o
(similar alsblk
), filtrar los resultados según el tipo de sistema de archivos con-t
etc.Para más detalles lea la
man
página (yfindmnt --help
para obtener la lista de columnas disponibles)fuente
Tal vez porque han pasado 5 años desde que se respondió esta pregunta, las cosas han cambiado. El
cat /proc/mounts
crea una gran cantidad de información que no te importa. Hoy, en mi humilde opinión, creo que esta es la solución definitiva.Cuando lees las páginas del manual, hay todo tipo de opciones que puedes hacer, pero esto es lo que tú haces. Por ejemplo, para limpiar aún más los resultados, puede excluir tipos de archivos de "tmpfs" con este comando:
df
funciona en el nivel del sistema de archivos y no en el nivel del archivo.Los comandos anteriores también incluirán montajes de red.
Para ver un poco más de información, use esto:
NOTA ¡ Con conexiones de red de montaje lento, esto puede llevar varios minutos!
Si no tiene o le importan las conexiones de red montadas (y tiene permisos de root), esto es aún mejor:
fuente
--output
algo como Ubuntu 12 que no acepta esas opciones, mira lafindmnt
respuesta de don_crissti a continuación, que sí lo hace.findmnt
parece necesitar capacidades superiores (probadas con root; root tiene todas las capacidades) para mostrar etiquetas.La mayoría de las veces,
mount
es el método más conveniente. Para obtener una lista completa y exacta de los sistemas de archivos actualmente montados, debe leer el contenido de/proc/mounts
(por ejemplo, concat /proc/mounts
).Por ejemplo, si
/
fallaba el montaje de lectura y escritura y luego se montaba solo como respaldo,/etc/mtab
(elmount
comando lee para decirle qué está montado y escribe, si puede, cuando cambia lo que está montado) no se actualizará para reflejar que/
(que contiene/etc/mtab
) está actualmente montado solo lectura. En esta situación, la ejecuciónmount
normalmente le/
indicaría (incorrectamente) que se montó readwrite.En condiciones normales (es decir, cuando se puede escribir en el sistema de archivos que lo contiene),
/etc/mtab
contiene una lista de los sistemas de archivos actualmente montados. Esto no debe confundirse con/etc/fstab
, que contiene una lista de sistemas de archivos que se supone que se montan automáticamente cuando se inicia el sistema.Por supuesto, si el
/proc
sistema de archivos virtual no está montado, entonces no puede leer ninguno de los archivos virtuales en él, lo que incluiría/proc/mounts
. Esto muy raramente es el caso. En esta situación,mount
es probablemente su mejor opción para ver lo que está montado.fuente