Qu'est-ce que /etc/mtab
sous Linux?
Pourquoi est-il nécessaire et avantages de l'avoir?
man 5 mtab
manque.
Qu'est-ce que /etc/mtab
sous Linux?
Pourquoi est-il nécessaire et avantages de l'avoir?
man 5 mtab
manque.
Réponses:
% fichier / etc / mtab / etc / mtab: lien symbolique vers ../proc/self/mounts % file / proc / mounts / proc / mounts: lien symbolique vers soi / mounts %
/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 dans mounts
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 le self
lien symbolique as self/mounts
, et /proc/mounts
est aussi maintenant une compatibilité mécanisme. (Fait intéressant, ni par processus mounts
ni le format de ne mounts
sont documentés dans le doco Linux actuel, bien que le mountinfo
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 avec poll()
et obtenir diverses autres informations avec ioctl()
.
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.
/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.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
:
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.