/etc/mtabest un mécanisme de compatibilité. Il y a des décennies, Unix n'avait pas d'appel système pour lire les informations de montage existantes. Au lieu de cela, les programmes qui montaient des systèmes de fichiers étaient censés maintenir de manière coopérative et volontaire une table /etc/mtabde ce qui était monté où.
Pour des raisons évidentes, ce n'était pas un mécanisme idéal.
Linux a acquis la notion de "procfs", et une des choses qu'il a gagnées était une version maintenue par le noyau de cette table, sous la forme d'un mountsfichier pseudo-régulier. L '"appel système" pour lire les informations de montage hors du noyau est devenu une séquence d'ouverture-lecture-fermeture par rapport à ce fichier, suivie par l'analyse du résultat de la forme lisible par l'homme à la forme lisible par la machine (quelque chose qui a des captures subtiles, comme vous peut voir des rapports de bogues d'il y a un peu plus de quinze jours).
/etc/mtabainsi est devenu populairement un lien symbolique vers /proc/mounts, permettant aux programmes qui avaient câblé ce nom de continuer à lire une table de montage à partir de ce fichier, que les programmes qui montaient et démontaient les systèmes de fichiers n'avaient plus à faire explicitement quoi que ce soit eux-mêmes pour se tenir à jour. (Certains d'entre eux le seront toujours, cependant, s'il /etc/mtabs'avère être un fichier normal inscriptible. Et il y a quelques cas où les informations normalisées dans mountslesquelles il n'y a pas tout ce qui n'est pas du noyau n'est pas tout à fait ce qui est nécessaire; bien qu'elles ne l'emportent pas sur les problèmes généraux avec /etc/mtab.)
Chaque processus peut de nos jours avoir sa propre vue individuelle de ce qui est monté, et il y a donc maintenant des mountsfichiers individuels pour chaque processus dans le procfs, la propre table de chaque processus lui étant accessible via le selflien symbolique as self/mounts, et /proc/mountsest aussi maintenant une compatibilité mécanisme. (Fait intéressant, ni par processus mountsni le format de ne mountssont documentés dans le doco Linux actuel, bien que le mountinfofichier pseudo-régulier similaire le soit.)
SunOS / Solaris a un mécanisme similaire. Le /etc/mnttabfichier est en fait un système de fichiers à fichier unique, et en plus de lire le tableau, via un descripteur de fichier ouvert vers ce fichier, avec l' read()appel système, on peut surveiller les changements de point de montage avec poll()et obtenir diverses autres informations avec ioctl().
Dans HP-UX, /etc/mnttabest également le nom du fichier, mais à partir de la version 11, il s'agissait toujours d'un fichier normal dont le contenu était géré de manière coopérative par les programmes utilitaires système.
AIX n'exporte pas de table de texte lisible par l'homme que les programmes doivent analyser et il n'y a pas de fichier équivalent. De même, les BSD ont des appels système à part entière, getfsstat()sur FreeBSD et OpenBSD, pour que les programmes obtiennent la table de montage à partir du noyau sous une forme lisible par machine sans la rassembler via une forme intermédiaire lisible par l'homme.
non seulement /proc/mounts, mais /proc/self/mountsest en soi un mécanisme de compatibilité maintenant; il ne montre qu'un sous-ensemble des informations disponibles dans /proc/self/mountinfo. Le format /proc/self/mountsest documenté proc(5)comme identique àfstab(5)
Je connais des pseudo fichiers et des fichiers réguliers, mais qu'est-ce qu'un pseudo fichier régulier?
gerrit
@gerrit c'est un fichier normal qui a la taille 0 mais contient toujours des données ;-)
mosvy
12
Selon man mount:
Les programmes mount et umount conservaient traditionnellement une liste des systèmes de fichiers actuellement montés dans le fichier / etc / mtab. Ce vrai fichier mtab est toujours pris en charge, mais sur les systèmes Linux actuels, il vaut mieux en faire un lien symbolique vers / proc / mounts, car un fichier mtab standard maintenu dans l'espace utilisateur ne peut pas fonctionner de manière fiable avec des espaces de noms, des conteneurs et d'autres fonctionnalités avancées de Linux.
En cas de montage sans enregistrement dans /etc/mtab:
-n, --no-mtab
Montez sans écrire dans / etc / mtab. Cela est nécessaire par exemple lorsque / etc est sur un système de fichiers en lecture seule.
Beaucoup plus de nuances sont données dans la page de manuel.
man 5 mtab
manque.Réponses:
/etc/mtab
est un mécanisme de compatibilité. Il y a des décennies, Unix n'avait pas d'appel système pour lire les informations de montage existantes. Au lieu de cela, les programmes qui montaient des systèmes de fichiers étaient censés maintenir de manière coopérative et volontaire une table/etc/mtab
de ce qui était monté où.Pour des raisons évidentes, ce n'était pas un mécanisme idéal.
Linux a acquis la notion de "procfs", et une des choses qu'il a gagnées était une version maintenue par le noyau de cette table, sous la forme d'un
mounts
fichier pseudo-régulier. L '"appel système" pour lire les informations de montage hors du noyau est devenu une séquence d'ouverture-lecture-fermeture par rapport à ce fichier, suivie par l'analyse du résultat de la forme lisible par l'homme à la forme lisible par la machine (quelque chose qui a des captures subtiles, comme vous peut voir des rapports de bogues d'il y a un peu plus de quinze jours)./etc/mtab
ainsi est devenu populairement un lien symbolique vers/proc/mounts
, permettant aux programmes qui avaient câblé ce nom de continuer à lire une table de montage à partir de ce fichier, que les programmes qui montaient et démontaient les systèmes de fichiers n'avaient plus à faire explicitement quoi que ce soit eux-mêmes pour se tenir à jour. (Certains d'entre eux le seront toujours, cependant, s'il/etc/mtab
s'avère être un fichier normal inscriptible. Et il y a quelques cas où les informations normalisées dansmounts
lesquelles il n'y a pas tout ce qui n'est pas du noyau n'est pas tout à fait ce qui est nécessaire; bien qu'elles ne l'emportent pas sur les problèmes généraux avec/etc/mtab
.)Chaque processus peut de nos jours avoir sa propre vue individuelle de ce qui est monté, et il y a donc maintenant des
mounts
fichiers individuels pour chaque processus dans le procfs, la propre table de chaque processus lui étant accessible via leself
lien symbolique asself/mounts
, et/proc/mounts
est aussi maintenant une compatibilité mécanisme. (Fait intéressant, ni par processusmounts
ni le format de nemounts
sont documentés dans le doco Linux actuel, bien que lemountinfo
fichier pseudo-régulier similaire le soit.)SunOS / Solaris a un mécanisme similaire. Le
/etc/mnttab
fichier est en fait un système de fichiers à fichier unique, et en plus de lire le tableau, via un descripteur de fichier ouvert vers ce fichier, avec l'read()
appel système, on peut surveiller les changements de point de montage avecpoll()
et obtenir diverses autres informations avecioctl()
.Dans HP-UX,
/etc/mnttab
est également le nom du fichier, mais à partir de la version 11, il s'agissait toujours d'un fichier normal dont le contenu était géré de manière coopérative par les programmes utilitaires système.AIX n'exporte pas de table de texte lisible par l'homme que les programmes doivent analyser et il n'y a pas de fichier équivalent. De même, les BSD ont des appels système à part entière,
getfsstat()
sur FreeBSD et OpenBSD, pour que les programmes obtiennent la table de montage à partir du noyau sous une forme lisible par machine sans la rassembler via une forme intermédiaire lisible par l'homme.Lectures complémentaires
/proc/self/mountinfo
avec \ r dans le chemin de montage . # 35137. Bogues coreutils GNU./proc/mounts
. Documentation / filesystems / proc.txt . Linux 5.1.fstab-decode
. Bogue n ° 567071. Bogues Debian.getfsstat()
. Manuel d'appels système FreeBSD . 2016-12-27.la source
mtab(5)
le vieux temps: man.cat-v.org/unix_8th/5/mtab ./proc/mounts
, mais/proc/self/mounts
est en soi un mécanisme de compatibilité maintenant; il ne montre qu'un sous-ensemble des informations disponibles dans/proc/self/mountinfo
. Le format/proc/self/mounts
est documentéproc(5)
comme identique àfstab(5)
Selon
man mount
:En cas de montage sans enregistrement dans
/etc/mtab
:Beaucoup plus de nuances sont données dans la page de manuel.
la source