web-dev-qa-db-fra.com

Comment obtenir la liste complète et exacte des systèmes de fichiers montés sous Linux?

J'utilise généralement mount pour vérifier quels systèmes de fichiers sont montés. Je sais également qu'il existe un lien entre mount et /etc/mtab mais je ne suis pas sûr des détails. Après avoir lu Comment vérifier si/proc/est monté Je suis plus confus.

Ma question est: comment obtenir la liste la plus précise des systèmes de fichiers montés? Dois-je simplement utiliser mount, ou lire le contenu de /etc/mtab, ou le contenu de /proc/mounts? Qu'est-ce qui donnerait le résultat le plus fiable?

168
xanpeng

La liste définitive des systèmes de fichiers montés se trouve dans /proc/mounts.

Si vous avez une forme quelconque de conteneurs sur votre système, /proc/mounts répertorie uniquement les systèmes de fichiers qui se trouvent dans votre conteneur actuel. Par exemple, dans un chroot , /proc/mounts répertorie uniquement les systèmes de fichiers dont le point de montage se trouve dans le chroot. ( Il existe des moyens d'échapper au chroot, esprit. )

Il y a aussi une liste de systèmes de fichiers montés dans /etc/mtab. Cette liste est maintenue par les commandes mount et umount. Cela signifie que si vous n'utilisez pas ces commandes (ce qui est assez rare), votre action (monter ou démonter) ne sera pas enregistrée. En pratique, c'est surtout dans un chroot que vous trouverez /etc/mtab fichiers qui diffèrent énormément de l'état du système. De plus, les montages effectués dans le chroot seront reflétés dans le /etc/mtab mais pas dans l'ensemble /etc/mtab. Actions effectuées pendant que /etc/mtab est sur un système de fichiers en lecture seule n'y est pas non plus enregistré.

La raison pour laquelle vous voudriez parfois consulter /etc/mtab de préférence ou en plus de /proc/mounts est que parce qu'il a accès à la ligne de commande de montage, il est parfois capable de présenter des informations d'une manière plus facile à comprendre; par exemple, vous voyez les options de montage demandées (alors que /proc/mounts répertorie également les paramètres par défaut mount et du noyau), et les montages de liaison apparaissent comme tels dans /etc/mtab.

à partir de v. 2.18 (juillet 2010)util-linux inclut un outil qui vous permet d'afficher une liste des systèmes de fichiers actuellement montés:

findmnt

Vous pouvez passer de l'arborescence par défaut à la vue de liste avec -l, définissez les colonnes de sortie avec -o (similaire à lsblk), filtre les résultats en fonction du type de système de fichiers avec -t etc...

findmnt -lo source, cible, fstype, étiquette, options, utilisé -t ext4
SOURCE    TARGET      FSTYPE LABEL OPTIONS                           USED
/dev/sda1 /           ext4   Arch  rw,noatime,discard,data=ordered  17.6G
/dev/sdb2 /media/DATA ext4   DATA  rw,noatime,discard,data=ordered    44M

Pour plus de détails, lisez la page man (et findmnt --help pour obtenir la liste des colonnes disponibles)

81
don_crissti

Peut-être parce que cela fait 5 ans que cette question n'a pas reçu de réponse, les choses ont changé. Le cat /proc/mounts crée beaucoup d'informations dont vous ne vous souciez pas. Aujourd'hui, à mon humble avis, je trouve que c'est la solution ultime.

df -h --output=source,target

lorsque vous lisez les pages de manuel, vous pouvez faire toutes sortes d'options, mais c'est ce que vous voulez. Par exemple, pour nettoyer encore plus les résultats, vous pouvez exclure les types de fichiers "tmpfs" avec cette commande:

df -hx tmpfs --output=source,target

df fonctionne au niveau du système de fichiers et non au niveau du fichier.

Les commandes ci-dessus incluront également des montages réseau.

Pour voir un peu plus d'informations, utilisez ceci:

df -hT

NOTE Avec des connexions réseau montées lentement, cela peut prendre plusieurs minutes!

Si vous n'avez pas ou ne vous souciez pas des connexions réseau montées (et que vous avez des autorisations root), c'est encore mieux:

Sudo lsblk -f
37
Rick

La plupart du temps, mount est la méthode la plus pratique. Pour une liste complète et exacte des systèmes de fichiers actuellement montés, vous devriez lire le contenu de /proc/mounts (par exemple, avec cat /proc/mounts).

Par exemple, si le montage / readwrite a échoué et il a ensuite été monté en lecture seule comme solution de rechange, /etc/mtab (à partir duquel la commande mount lit pour vous dire ce qui est monté et écrit - si c'est possible - quand il change ce qui est monté) ne sera pas mis à jour pour refléter que / (qui contient /etc/mtab) est actuellement monté en lecture seule. Dans cette situation, l'exécution de mount vous indiquera généralement (incorrectement) que / a été monté en lecture-écriture.

Dans des conditions normales (c'est-à-dire lorsque le système de fichiers qui le contient peut être écrit), /etc/mtab contient une liste des systèmes de fichiers actuellement montés. À ne pas confondre avec /etc/fstab, qui contient une liste de systèmes de fichiers censés être montés automatiquement au démarrage du système.

Bien sûr, si le /proc le système de fichiers virtuel n'est pas lui-même monté, vous ne pouvez donc pas lire les fichiers virtuels qu'il contient, ce qui comprendrait /proc/mounts. C'est très rarement le cas. Dans cette situation, mount est probablement votre meilleure option pour voir ce qui est monté.

23
Eliah Kagan