Quel est /etc/mtab
sous Linux?
Pourquoi est-il nécessaire et avantages de l'avoir?
Fichier% /etc/mtab[.____.[/etc/mtab: lien symbolique vers ../proc/self/mounts[.____. E5E% fichier /proc/mounts[.____.[/proc/mounts: lien symbolique à soi/monte %
/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 dans /etc/mtab
De ce qui était monté où.
Pour des raisons évidentes, ce n'était pas un mécanisme idéal.
Linux a gagné 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 fichier pseudo-régulier mounts
. 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
Est ainsi devenu 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 pour se tenir à jour. (Certains d'entre eux le seront quand même, si /etc/mtab
S'avère être un fichier normal accessible en écriture. Et il y a quelques cas où les informations normalisées dans mounts
manquent de tout ce qui n'est pas du noyau n'est pas tout à fait ce qui est nécessaire, bien qu'ils 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 fichiers mounts
individuels pour chaque processus dans le procfs, chaque table de chaque processus y étant accessible via le self
lien symbolique comme self/mounts
, et /proc/mounts
est également maintenant un mécanisme de compatibilité. (Fait intéressant, ni le processus par processus mounts
ni le format de mounts
ne sont documentés dans le doco Linux actuel, bien que le fichier pseudo-régulier mountinfo
similaire le soit.)
SunOS/Solaris a un mécanisme similaire. Le fichier /etc/mnttab
Est en fait un système de fichiers à fichier unique, et en plus de lire la table, via un descripteur de fichier ouvert vers ce fichier, avec l'appel système read()
, on peut surveiller le montage modifier les points 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 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. GNU bogues coreutils./proc/mounts
. Documentation/systèmes de fichiers/proc.txt . Linux 5.1.fstab-decode
. Bogue n ° 567071. Bogues Debian.getfsstat()
. Manuel d'appels système FreeBSD . 2016-12-27.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 normal maintenu dans l'espace utilisateur ne peut pas fonctionner de manière fiable avec les espaces de noms, les conteneurs et d'autres fonctionnalités avancées de Linux.
Sur 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.