¿Cuál es el significado de los directorios predeterminados en la jerarquía del sistema de archivos de Linux?

41

Después de haber instalado varias distribuciones de Linux para retoques, estoy desconcertado por los instaladores que ofrecen diseños de partición: para una salida fácil, solo uso todo el espacio disponible en disco.

Algunas de las particiones ofrecidas tienen nombres crípticos, incluidos / var , swap , / usr y / home . Los instaladores realmente no me explican esto: ¿para qué sirven y qué, si alguno, se debe usar?

Grant Palin
fuente

Respuestas:

61

La breve respuesta sobre los nombres de directorio: escriba " man hier" en una terminal :)

Esa es la página de manual para la jerarquía del sistema de archivos, que explica el propósito general de los nombres de directorio y lo que contienen. Puedes ver una versión web aquí .

También hay más lecturas en Wikipedia:

Esos enlaces explicarán todo sobre qué particiones se llaman qué y qué son (o fueron históricamente) usadas para almacenar.

La respuesta sobre el uso de particiones separadas en lugar de solo directorios en la misma partición vuelve a ser mantenible y ampliable. Si tiene una partición con, digamos, /y /homeen ella, Joe User puede llenar su /home/joecarpeta, y toda la máquina se quedará sin espacio en disco y dejará de funcionar (estoy simplificando aquí, pero ese es el resultado general). Si tiene /y /homeen diferentes particiones, Joe User puede llenar su /home/joecarpeta, y la /homepartición estará llena, pero la máquina continuará funcionando porque /no se ve afectada.

Así que amplíe ese principio a casi todos los directorios diferentes que se encuentran en particiones diferentes, y puede ver cómo sería útil, particularmente cuando una máquina se ejecuta las 24 horas del día, los 7 días de la semana, en un rol multiusuario y multiservicio.

Ben Williams
fuente
12
+1 para man hierEnseñar a un hombre a pescar y todo eso.
George Marian
Sí, gracias por el puntero a hier (7). Siempre he estado visitando la página web de FHS, sin saber que he tenido respuestas mucho más fácilmente disponibles.
andol
El problema es que, si bien estos se explican cómo deben usarse, algunos de hecho no se usan de esa manera de manera predeterminada como en el directorio / srv.
Ronaldo Nascimento
7

Al instalar, muchas distribuciones le dan la opción de colocar diferentes directorios en diferentes particiones. Por ejemplo, muchos usuarios eligen tener el directorio / home en una partición diferente que el resto de la instalación. Esto se debe a que todo en el directorio / home pertenece a un usuario: aquí se incluyen documentos, videos y todos los demás datos específicos del usuario. Al colocar el directorio / home en una partición separada y los archivos del sistema operativo en otro, si un usuario decide realizar una instalación nueva de su sistema operativo Linux, puede volver a escribir la partición principal y dejar su partición / home (y todo de sus archivos) intactos.

Esto también permite a un usuario instalar múltiples distribuciones de Linux en diferentes particiones, todas compartiendo la misma partición / home. De esta manera, un usuario puede acceder a sus archivos sin importar qué versión de Linux esté usando.

Un usuario ocasional no debería tener que preocuparse demasiado por asignar un / var, swap, / usr, etc. por separado. Todos estos directorios son parte del sistema operativo y tienen poco que ver con los archivos del usuario.

Makario
fuente
+1 por el buen enlace. ¿No es / swap siempre una partición separada?
George Marian
@ George Marian: No es necesario. Es posible configurar el intercambio del sistema de archivos (que es un archivo dentro del sistema de archivos de una partición existente) en lugar del intercambio de particiones. De esta manera, el sistema Ubuntu puede funcionar en una sola partición.
txwikinger
3
Para aquellos que juegan en casa, vale la pena señalar que la capacidad de usar un archivo de intercambio en un sistema de archivos normal depende del sistema de archivos. IE: No intente esto con btrfs, ya que (en los núcleos más antiguos) le permitirá corromper datos silenciosamente y (en los núcleos más nuevos) arrojará un error cuando intente agregar el intercambio.
RAOF
5

Usar todo el espacio disponible en disco es una opción perfectamente válida (y probablemente la recomendada) para computadoras personales. Particionar el sistema de archivos así es, en mi opinión, una escala de tiempos antiguos antes de que RAID o la administración de volumen virtual fueran prácticos en el software.

En sistemas similares a UNIX, el sistema de archivos comienza en el directorio raíz '/'. En los términos de DOS / Windows que serían 'C:'

Mientras está en DOS / Windows, agrega unidades a las letras D :, E :, etc. En sistemas similares a UNIX, 'monta' unidades en directorios. En el pasado, cuando tenía discos duros de 10 o 10 megabytes, podía montar varios directorios en diferentes unidades y particiones para dar la ilusión de una sola unidad grande. Prácticamente el RAID 0 de un hombre pobre.

Hay muchas razones para dividir los distintos directorios raíz, pero una idea popular es que, dado que las particiones swap y / var se escribieron al máximo, tienen más posibilidades de fallar. Al separarlos en diferentes particiones, es muy fácil agregar otra unidad desde la copia de seguridad y volver a montarla.

También tener una partición separada / doméstica puede ser realmente genial si ejecuta múltiples versiones de Linux en una máquina. (Por ejemplo, Ubuntu y Red Hat). Dado que los programas Unix / Linux colocan la configuración del usuario dentro de su directorio de inicio. Sin embargo, esto funciona mucho mejor en teoría que en la práctica. Porque necesita comprender a fondo las implicaciones de los permisos.

Aquí hay algunos directorios importantes para sistemas operativos tipo UNIX y sus explicaciones.

  • /bin - Archivos ejecutables del sistema básico
  • /lib - Bibliotecas básicas del sistema (.so en Linux, .dlls en Windows).
  • /boot- Donde vive tu kernel. La computadora no se iniciará sin esta.
  • /var- Directorio donde los servicios pueden almacenar archivos. Como archivos de registro y buzones
  • /etc - Archivos de configuración del sistema
  • /usr- Aplicaciones de usuario no esenciales. (Un sistema unix puede arrancar sin un / usr (para fines de recuperación) pero no sería muy divertido. En sistemas más antiguos esto es lo mismo que / home).
  • /home- Directorios de inicio del usuario. Los usuarios normales solo pueden escribir en su propio directorio de inicio.
  • swap (no es un directorio) Esta suele ser una partición separada en UNIX. No hay un directorio de intercambio, aunque puede hacer archivos de intercambio en Linux.
wm_eddie
fuente
2
Diría que incluso para una computadora de escritorio / personal, tener / home en una partición separada es una buena idea. De esa manera, tiene menos dolores de cabeza si llena su directorio personal.
George Marian
@ George No hay nada que te impida hacer enlaces simbólicos a tu directorio personal en otra unidad. En mi configuración, para permitir la compatibilidad con Windows, mi partición de inicio es NTFS y enlace simbólicamente las carpetas que uso en mi carpeta de inicio. Enlace simbólico a toda la carpeta, pero me gusta mantener las cosas ocultas en ~ / separadas en caso de que decida hacer una instalación nueva. El uso de rutas de archivo codificadas vinculadas a particiones separadas puede haber sido necesario hace veinte años, pero las restricciones arquitectónicas que las hicieron necesarias no existen en la actualidad.
Evan Plaice
1
@evan estoy confundido. ¿Se está refiriendo a la vinculación de directorios en su directorio de inicio o la vinculación de su directorio de inicio en otro lugar? ¿En qué se diferencia esto de establecer / home en una partición diferente? (Tenga en cuenta que "partición diferente" puede estar en una unidad de disco completamente diferente). Me refería a proteger contra el comportamiento predeterminado (por ejemplo, las descargas se colocan en un subdirectorio de su carpeta de inicio) llenando inadvertidamente la partición raíz.
George Marian
@ George Ambos y lo que prefieras. El punto que estoy tratando de hacer es, ¿por qué establecer enlaces codificados durante la instalación del sistema cuando simplemente puede agregar algunos enlaces simbólicos después de hacer lo mismo y se puede cambiar fácilmente en cualquier momento?
Evan Plaice
@evan Un punto justo. Nunca he tenido mucha suerte jugando con este tipo de cosas después de la instalación, por lo que siempre he preferido hacerlo de la manera "predeterminada".
George Marian
1

La partición de intercambio también se usa para la hibernación. Si desea poner su computadora portátil o de escritorio en hibernación, necesita una partición de intercambio o archivo de intercambio que sea lo suficientemente grande como para contener el sistema operativo en ejecución y sus aplicaciones abiertas.

A menudo se sugiere que la partición de intercambio sea del mismo tamaño que su memoria RAM.

jr0cket
fuente
1

Puede hacer particiones separadas durante la instalación. una /homepartición significará que cada vez que instale Ubuntu, su configuración de usuario personal permanecerá.

/- Es la raíz.
/var- (explicado anteriormente)
/dev- contiene "enlaces" a dispositivos registrados. ie / dev / Video0 es una tarjeta de captura ...

/bin /sbin - contener aplicaciones

mejor aún, Wikipedia tiene una gran página http://en.wikipedia.org/wiki/Filesystem_Hierarchy_Standard

Lo más importante que encuentro es tener una segunda partición (la más grande) para sus cosas y, como dije, cada vez que reinstala o actualiza. Seleccione esa partición nuevamente y asegúrese de desmarcar la casilla de formato y luego todo volverá. Incluso tu fondo de pantalla!

MJ
fuente
1

Bueno, swapse usa un espacio de intercambio. Es como un archivo de página en Windows. Complementa un poco la RAM.

/home se usa para datos de usuario como Mis documentos en Windows,

/usr es donde la mayoría de los programas son muy parecidos a C: \ Windows, y

/var contiene datos que se modifican cuando el sistema se ejecuta normalmente.

En cuanto a por qué están en particiones separadas, creo que es principalmente si su sistema operativo se cae, sus datos no se caen con él. Pero realmente no estoy seguro.

Cody Harlow
fuente
Diferencia entre /varvs /etc?
Pacerier
1

Históricamente, se considera la mejor práctica tener /home, swapy otros nodos críticos residen en diferentes particiones, diferentes discos físicos o incluso diferentes máquinas físicas. Aunque por conveniencia (para bien o para mal), y con el advenimiento de copias de seguridad externas o basadas en la nube, todo ahora vive en una sola partición grande y solo hace una copia de seguridad de sus cosas personales en otro lugar.

/usr, significa Recursos del sistema Unix

/sbinBinarios del sistema

Contrariamente a las creencias populares, /etcno significa, etcétera . En cambio, significa Cofre de herramientas extendido . Pero, contrario a las creencias populares, todavía es un tema de debate.

Aquí hay más información sobre esas carpetas y cómo están organizadas.

Eric Carvalho
fuente
0

El intercambio debe mantenerse por separado si lo usa. Y use 1.5-2.0 x su tamaño de ram para ello.

El resto se puede mantener unido, y realmente no importa (Linux / Unix no es Windows y tiene una jerarquía de directorio única, ya sea que su directorio / var sea una partición separada o no, se ve exactamente igual). El objetivo principal de la partición es utilizar diferentes sistemas de archivos y dividir posibles escenarios de "disco lleno" (por ejemplo, si / var se llena con registros de alguna aplicación loca, / home stil funciona)

Como nota al margen, recomiendo encarecidamente utilizar LVM, que permite crear tantas particiones extraíbles y de tamaño libre como desee, e incluso agregar nuevos discos duros a la familia. Aún así, requiere aprender algo de línea de comandos, por lo que no es para el principiante total.

Mekk
fuente