Quels points de montage existent sur un système Linux typique?

32

J'ai 2 questions.

  1. Lors de l'installation de Linux, nous spécifions de l'espace mémoire pour 2 points de montage: racine et échange. Existe-t-il d'autres points de montage créés sans que les utilisateurs le remarquent?
  2. Cette affirmation est-elle correcte: "le montage n’intervient dans l’image que s’il s’agit de partitions différentes. En d’autres termes, vous ne pouvez pas monter, par exemple, / proc, sauf s’il s’agit d’une partition différente"?
John
la source
1
+1 pour le titre de la question! Si tous les débutants ont demandé si innocemment ...
Caleb le
Haha, exactement mes pensées aussi! +1
boehj
2
@ John: Il n'est pas recommandé de poser deux questions en une. Puisqu'il y a maintenant des réponses qui couvrent les deux questions, je suppose que nous allons le laisser glisser, mais veuillez poser des questions séparées séparément la prochaine fois. Votre difficulté à trouver un bon titre (non, votre titre n'était pas un bon résumé de votre question) était due à la tentative de combiner plusieurs questions en une seule.
Gilles 'SO- arrête d'être méchant'

Réponses:

47

Il y a des idées fausses derrière vos questions.

  1. Swap n'est pas monté.
  2. Le montage ne se limite pas aux partitions.

Des partitions

Une partition est une tranche d’espace disque consacré à un objectif particulier. Voici quelques objectifs communs pour les partitions.

  • Un système de fichiers , c'est-à-dire des fichiers organisés sous forme d'arborescence de répertoires et stockés dans un format tel que ext2, ext3, FFS, FAT, NTFS,…
  • Espace de permutation, c’est-à-dire l’espace disque utilisé pour la pagination (et le stockage d’ images en veille prolongée ).
  • Accès direct à l'application. Certaines bases de données stockent leurs données directement sur une partition plutôt que sur un système de fichiers pour gagner un peu en performances. (Un système de fichiers est quand même une sorte de base de données.)
  • Un conteneur pour d'autres partitions. Par exemple, une partition étendue PC , ou une tranche de disque contenant des partitions BSD, ou un volume physique LVM (contenant éventuellement des volumes logiques pouvant eux-mêmes être considérés comme des partitions),…

Systèmes de fichiers

Les systèmes de fichiers présentent les informations dans une structure hiérarchique. Voici quelques types de systèmes de fichiers courants:

  • Systèmes de fichiers sauvegardés sur disque, tels que ext2, ext3, FFS, FAT, NTFS,…
    • Le support ne doit pas nécessairement être directement sur une partition de disque, comme indiqué ci-dessus. Par exemple, il peut s'agir d'un volume logique LVM ou d'un montage en boucle .
  • Systèmes de fichiers sauvegardés en mémoire, tels que les fichiers tmpfs de Solaris et de Linux .
  • Systèmes de fichiers qui présentent des informations provenant du noyau, telles que procet sysfssur Linux.
  • Les systèmes de fichiers réseau, tels que NFS , Samba ,…
  • Systèmes de fichiers sauvegardés par l'application, dont FUSE a une grande collection . Les systèmes de fichiers sauvegardés par application peuvent faire à peu près n'importe quoi: créer un serveur FTP en tant que système de fichiers, donner une autre vue d'un système de fichiers où les noms de fichiers ne sont pas sensibles à la casse ou convertis en un codage différent, afficher le contenu de l'archive comme s'il s'agissait de répertoires,…

Montage

Unix présente les fichiers dans une seule hiérarchie, généralement appelée «le système de fichiers» (mais dans cette réponse, je n'utiliserai pas le mot «système de fichiers» dans ce sens pour dissiper la confusion). Les systèmes de fichiers individuels doivent être greffés sur cette hiérarchie pour pouvoir y accéder.³

Vous rendez un système de fichiers accessible en le montant. Montage associe le répertoire racine du système de fichiers que vous montez à un répertoire existant dans la hiérarchie de fichiers. Un répertoire ayant une telle association est appelé point de montage.

  • Par exemple, le système de fichiers racine est monté au démarrage (avant que le noyau ne lance un processus²) dans le /répertoire.
  • Le système de fichiers proc sur lequel certaines variantes unix telles que Solaris et Linux exposent des informations sur les processus est monté /proc, de sorte à /proc/42/environdésigner le fichier /42/environsur le système de fichiers proc qui (sous Linux, au moins) contient une vue en lecture seule de l'environnement de processus numéro 42.
  • Si vous avez un système de fichiers séparé, par exemple pour /home, /home/john/myfile.txtdésigne le fichier dont le chemin provient /john/myfile.txtde la racine du système de fichiers home.

Sous Linux, il est possible que le même système de fichiers soit accessible via plusieurs chemins, grâce aux bind mounts .

Un système de fichiers Linux typique possède de nombreux systèmes de fichiers montés. (Ceci est un exemple. Différentes distributions, versions et configurations entraîneront le montage de différents systèmes de fichiers.)

  • /: le système de fichiers racine, monté avant que le noyau ne charge le premier processus. Le chargeur de démarrage indique au noyau ce qu'il doit utiliser comme système de fichiers racine (il s'agit généralement d'une partition de disque, mais il peut s'agir d'une autre opération, telle qu'une exportation NFS).
  • /proc: le filessytem proc , avec les informations sur le processus et le noyau.
  • /sys: le système de fichiers sysfs , avec des informations sur les périphériques matériels.
  • /dev: un système de fichiers en mémoire dans lequel les fichiers de périphérique sont automatiquement créés par udev en fonction du matériel disponible.
  • /dev/pts: un système de fichiers spécial contenant des fichiers de périphérique pour l'exécution d' émulateurs de terminaux .
  • /dev/shm: un système de fichiers en mémoire utilisé à des fins internes par la bibliothèque standard du système.
  • Selon les composants système que vous exécutez, vous pouvez voir d'autres systèmes de fichiers spéciaux tels que binfmt_misc(utilisé par le sous-système du noyau de format de fichier exécutable étranger ), fusectl(utilisé par FUSE ), nfsd(utilisé par le serveur NFS du noyau),…
  • Tout système de fichiers explicitement mentionné dans /etc/fstab(et non marqué noauto) est monté dans le cadre du processus de démarrage.
  • Tout système de fichiers monté automatiquement par HAL (ou une fonctionnalité équivalente) à la suite de l'insertion d'un périphérique amovible tel qu'une clé USB.
  • Tout système de fichiers explicitement monté avec la mountcommande.

¹ Parler ici de manière informelle.
² Initrd et autres sont au-delà de la portée de cette réponse.
³ Cela diffère de Windows, qui a une hiérarchie distincte pour chaque système de fichiers, par exemple c:ou \\hostname\sharename.

Gilles, arrête de faire le mal
la source
5
+10 Gilles Où as-tu le temps? Mon seul commentaire est que je dois donner aux gens un peu de marge de manœuvre sur le problème d'échange, car il est totalement déroutant de voir ma partition d'échange répertoriée dans le cas /etc/fstaboù elle ne doit pas être montée.
Caleb
C'est vraiment une question idiote ... mais je ne peux pas m'en empêcher. Vous avez dit "Le montage associe un répertoire à la racine du système de fichiers." Alors, où se trouve le répertoire "/"?
Jean
2
@John: Ce n'est pas une question idiote, les mots «système de fichiers» et «racine» ont deux significations différentes: il y a des systèmes de fichiers individuels (chacun avec leur racine) et il y a toute la hiérarchie des répertoires (avec sa racine, le /répertoire) . J'ai reformulé cette partie de ma réponse, j'espère que cela devrait être plus clair maintenant.
Gilles, arrête de faire le mal
Cette réponse est incroyablement utile - c'est encyclopédique. Moi aussi, j'aimerais pouvoir faire un +10 ici. Réponse géniale.
boehj
13
  1. Chaque distribution linux a sa propre disposition de partition par défaut; Certains utilisent des dizaines de partitions, d'autres une seule. 3 et 4 sont des arrangements assez courants (/ boot, /, swap et / home). Certaines mises en page plus anciennes avaient souvent / var sur une partition séparée et les systèmes extrêmes tout dans / var / * et / opt / * sur des partitions séparées! La meilleure généralisation que je puisse faire en réponse à votre question est que rien dans le monde Unix n'est fait sans que les utilisateurs le remarquent ou la possibilité de le changer !
  2. Vous pouvez monter des objets qui ne sont pas des partitions. Par exemple, / proc n'est généralement pas une partition, c'est un pseudo système de fichiers fourni par le noyau qui vous permet de lire et d'écrire des données sur les processus en cours d'exécution comme s'il s'agissait de fichiers. Vous pouvez également monter des fichiers (comme des fichiers ISO) comme s'il s'agissait de lecteurs utilisant un périphérique de bouclage, lier des dossiers de montage à d'autres emplacements et effectuer diverses autres astuces de ninja.
Caleb
la source
1
Toutes les partitions qui sont automatiquement montées au démarrage sont en /etc/fstab. Si vous ajoutez une partition là-bas, elle le sera au prochain démarrage.
LawrenceC