¿Qué puntos de montaje existen en un sistema Linux típico?

32

Tengo 2 preguntas

  1. Durante la instalación de Linux, especificamos espacio de memoria para 2 puntos de montaje: raíz e intercambio. ¿Hay otros puntos de montaje creados sin que los usuarios lo noten?
  2. ¿Es correcta esta afirmación: "el montaje entra en escena solo cuando se trata de diferentes particiones, es decir, no se puede montar, por ejemplo, / proc a menos que sea una partición diferente"?
John
fuente
1
¡+1 para el título de la pregunta! Si todos los novatos preguntaran tan inocentemente ...
Caleb
Jaja, exactamente mis pensamientos también! +1.
boehj
2
@ John: No se recomienda hacer dos preguntas en una. Dado que ahora hay respuestas que cubren ambas preguntas, supongo que lo dejaremos pasar, pero por favor haga preguntas separadas por separado la próxima vez. Su dificultad para encontrar un buen título (no, su título no era un buen resumen de su pregunta) se debió a intentar combinar varias preguntas en una sola.
Gilles 'SO- deja de ser malvado'

Respuestas:

47

Hay ideas falsas detrás de sus preguntas.

  1. El intercambio no está montado.
  2. El montaje no se limita a particiones.

Particiones

Una partición es una porción de espacio en disco dedicada a un propósito particular. Aquí hay algunos propósitos comunes para particiones.

  • Un sistema de archivos , es decir, archivos organizados como un árbol de directorios y almacenados en un formato como ext2, ext3, FFS, FAT, NTFS, ...
  • Espacio de intercambio, es decir, espacio en disco utilizado para paginación (y almacenamiento de imágenes de hibernación ).
  • Acceso directo a la aplicación. Algunas bases de datos almacenan sus datos directamente en una partición en lugar de en un sistema de archivos para obtener un poco de rendimiento. (Un sistema de archivos es un tipo de base de datos de todos modos).
  • Un contenedor para otras particiones. Por ejemplo, una partición extendida de PC , o un segmento de disco que contiene particiones BSD, o un volumen físico LVM (que contiene eventualmente volúmenes lógicos que pueden considerarse particiones), ...

Sistemas de archivos

Los sistemas de archivos presentan información en una estructura jerárquica. Aquí hay algunos tipos comunes de sistemas de archivos:

  • Sistemas de archivos con respaldo de disco, como ext2, ext3, FFS, FAT, NTFS, ...
    • El respaldo no necesita estar directamente en una partición de disco, como se ve arriba. Por ejemplo, esto podría ser un volumen lógico LVM o un montaje en bucle .
  • Sistemas de archivos respaldados por memoria, como Solaris y tmpfs de Linux .
  • Sistemas de archivos que presentan información del núcleo, como procy sysfsen Linux.
  • Sistemas de archivos de red, como NFS , Samba , ...
  • Sistemas de archivos respaldados por aplicaciones, de los cuales FUSE tiene una gran colección . Los sistemas de archivos respaldados por aplicaciones pueden hacer casi cualquier cosa: hacer que un servidor FTP aparezca como un sistema de archivos, dar una vista alternativa de un sistema de archivos donde los nombres de archivo no distinguen entre mayúsculas y minúsculas o se conviertan a una codificación diferente, muestre el contenido del archivo como si fueran directorios, ...

Montaje

Unix presenta los archivos en una sola jerarquía, generalmente llamada "el sistema de archivos" (pero en esta respuesta no usaré la palabra "sistema de archivos" en este sentido para mantener baja la confusión). Los sistemas de archivos individuales deben injertarse en esa jerarquía para acceder a ellos.³

Hace que un sistema de archivos sea accesible al montarlo. El montaje asocia el directorio raíz del sistema de archivos que está montando con un directorio existente en la jerarquía de archivos. Un directorio que tiene dicha asociación se conoce como punto de montaje.

  • Por ejemplo, el sistema de archivos raíz se monta en el momento del arranque (antes de que el núcleo inicie cualquier proceso²) en el /directorio.
  • El sistema de archivos proc sobre el cual algunas variantes de Unix como Solaris y Linux exponen información sobre los procesos está montado /proc, de modo que /proc/42/environdesigna el archivo /42/environen el sistema de archivos proc, que (en Linux, al menos) contiene una vista de solo lectura del entorno del proceso número 42
  • Si tiene un sistema de archivos separado /home, por ejemplo , for , /home/john/myfile.txtdesigna el archivo cuya ruta es /john/myfile.txtdesde la raíz del sistema de archivos de inicio.

En Linux, es posible acceder al mismo sistema de archivos a través de más de una ruta, gracias a los montajes de enlace .

Un sistema de archivos Linux típico tiene muchos sistemas de archivos montados. (Este es un ejemplo; diferentes distribuciones, versiones y configuraciones conducirán a la instalación de diferentes sistemas de archivos).

  • /: el sistema de archivos raíz, montado antes de que el núcleo cargue el primer proceso. El gestor de arranque le dice al kernel qué usar como sistema de archivos raíz (generalmente es una partición de disco, pero podría ser algo más, como una exportación NFS).
  • /proc: el sistema de archivos proc , con información de proceso y kernel.
  • /sys: el sistema de archivos sysfs , con información sobre dispositivos de hardware.
  • /dev: un sistema de archivos en memoria donde udev crea automáticamente los archivos del dispositivo basados ​​en el hardware disponible.
  • /dev/pts: un sistema de archivos de propósito especial que contiene archivos de dispositivo para ejecutar emuladores de terminal .
  • /dev/shm: un sistema de archivos en memoria utilizado para fines internos por la biblioteca estándar del sistema.
  • Dependiendo de los componentes del sistema que esté ejecutando, puede ver otros sistemas de archivos de propósito especial como binfmt_misc(utilizado por el subsistema de kernel con formato de archivo ejecutable externo ), fusectl(utilizado por FUSE ), nfsd(utilizado por el servidor NFS del núcleo), ...
  • Cualquier sistema de archivos mencionado explícitamente en /etc/fstab(y no marcado noauto) se monta como parte del proceso de arranque.
  • Cualquier sistema de archivos montado automáticamente por HAL (o funcionalidad equivalente) después de la inserción de un dispositivo extraíble, como una llave USB.
  • Cualquier sistema de archivos montado explícitamente con el mountcomando.

¹ Hablando informalmente aquí.
² Initrd y tal están más allá del alcance de esta respuesta.
³ Esto es diferente a Windows, que tiene una jerarquía separada para cada sistema de archivos, por ejemplo, c:o \\hostname\sharename.

Gilles 'SO- deja de ser malvado'
fuente
55
+10 Gilles, ¿de dónde sacas el tiempo? Mi único comentario es que tengo que darle un poco de holgura a la gente sobre el tema del intercambio porque es muy confuso tener mi partición de intercambio listada /etc/fstabcuando no se debe montar.
Caleb
Definitivamente es una pregunta tonta ... pero no puedo evitarlo. Usted dijo "El montaje asocia un directorio con la raíz del sistema de archivos". Entonces, ¿dónde se encuentra el directorio "/"?
Juan
2
@ John: No es una pregunta tonta en absoluto, las palabras "sistema de archivos" y "raíz" tienen dos significados diferentes aquí: hay sistemas de archivos individuales (cada uno con su raíz), y existe toda la jerarquía de directorios (con su raíz, el /directorio) . He reformulado esta parte de mi respuesta, espero que ahora esté más claro.
Gilles 'SO- deja de ser malvado'
Esa respuesta es increíblemente útil, es enciclopédica. Yo también desearía poder hacer un +10 aquí. Impresionante respuesta.
boehj
13
  1. Cada distribución de Linux tiene su propia disposición de partición predeterminada; algunos de ellos usan docenas de particiones, algunos solo uno. 3 y 4 son arreglos bastante comunes (/ boot, /, swap y / home). Algunos diseños más antiguos a menudo tenían / ​​var en una partición separada y los sistemas extremos encuentran todo en / var / * y / opt / * en particiones separadas. ¡La mejor generalización que puedo hacer en respuesta a su pregunta es que nada en el mundo de Unix se hace sin que los usuarios lo noten o no puedan cambiarlo !
  2. Puedes montar cosas que no son particiones. Por ejemplo, / proc no suele ser una partición, es un pseudo sistema de archivos proporcionado por el núcleo que le permite leer y escribir datos sobre procesos en ejecución como si fueran archivos. También puede montar archivos (como ISO) como si fueran unidades que utilizan un dispositivo de bucle invertido, enlazar carpetas de montaje a otros lugares y hacer varios otros trucos ninja.
Caleb
fuente
1
Todas las particiones que se montan automáticamente en el arranque están en /etc/fstab. Si agrega una partición allí, estará allí en el próximo arranque.
LawrenceC