¿Por qué poner cosas que no sean / home en una partición separada?

53

Así recientemente un instalador de Debian 5.0.5 ofrecido mí tener separados /usr, /home, /vary /tmpparticiones (en un disco físico).

¿Cuál es la razón práctica de esto? Entiendo que /homepuede ser ventajoso colocar una partición separada, porque los archivos de usuario se pueden encriptar por separado, pero ¿por qué otra cosa?

Alex B
fuente
10
Otra buena razón para mantenerse /homeseparado es que le permite reinstalar su sistema y / o cambiar distribuciones libremente sin perder sus archivos personales.
David Z
44
@David Zaslavsky: No lo recomendaría para cambiar de distribución. como la mayoría de las veces, los archivos de configuración ocultos en su directorio de inicio entrarán en conflicto.
Trovador
77
@Troubadour: En realidad no lo creo. Esos archivos de configuración son colocados allí por aplicaciones específicas y generalmente no tienen nada que ver con la distribución en la que se encuentra. Entonces, por ejemplo, el contenido de ~/.mozilla/firefoxpuede ser utilizado igualmente bien por Firefox en Ubuntu o Fedora o Gentoo. ~/.bashrcsiempre tendrá el mismo efecto en Bash, sin importar qué sistema subyacente ejecute. He realizado una gran cantidad de cambios de distribución y nunca tuve un problema con esos archivos de configuración.
David Z
3
@David Zaslavsky: Podría ver surgir problemas si la nueva distribución usara versiones de aplicaciones anteriores a las anteriores, ya que podrían no saber cómo leer esos archivos de configuración. Dicho esto, no he intentado hacer nada por el estilo.
intuido el
Como otra razón, si está utilizando un disco duro y un disco duro, es posible que desee tener la mayor parte de la instalación en el disco duro, pero desea poner, por ejemplo, / home y / var en el disco duro para evitar un gran número de escrituras al ssd.
Kevin

Respuestas:

55
  1. Minimizar la pérdida: si /usrestá en una partición separada, un daño /usrno significa que no pueda recuperarse /etc.
  2. Seguridad: /no siempre puede ser ro ( /rootpuede ser necesario ser rw, etc.) pero /usrsí. Se puede usar para hacer ro tanto como sea posible.
  3. Uso de FS diferentes: es posible que desee utilizar un sistema diferente para /tmp(no confiable pero rápido para muchos archivos) y /home(tiene que ser confiable). De forma similar, /varcontiene datos, mientras /usrque la /usrestabilidad no puede sacrificarse, pero no tanto /tmp.
  4. Duración de fsck: particiones más pequeñas significan que verificar una es más rápido.
  5. Mencionó el llenado de particiones, aunque otro método son las cuotas.
Maciej Piechotka
fuente
23

Un separado /usrpuede ser útil si tiene varias máquinas que comparten el mismo sistema operativo. Pueden compartir una sola central en /usrlugar de duplicarla en cada sistema. /usrse puede montar solo lectura.

/vary /tmppuede ser llenado por programas de usuario o demonios. Por lo tanto, puede ser seguro tenerlos en particiones separadas que evitarían que /la partición raíz se llenara al 100% y afectaría gravemente su sistema. Para evitar tener dos particiones distintas para estos, no es raro ver que se trata de /tmpun enlace simbólico /var/tmp.

Didier Trosset
fuente
Supongo que puedo entender / var y / tmp, pero dado que el instalador ofreció particionar un solo disco, ¿la utilidad de un disco separado /usres bastante limitada?
Alex B
Le permite compartir a /usrtravés de NFS a otros sistemas. Pero podría compartirlo incluso si no es una partición separada, eso es cierto ... pensar en voz alta ... ¿Es el montaje de solo lectura una razón suficientemente buena?
Didier Trosset
¿Cómo se realizan las actualizaciones con este tipo de configuración? A menudo (al menos en Linux) los paquetes harán cambios a los archivos en los directorios locales del sistema, por ejemplo en /etc.
intuido
+1 para / usr montaje de solo lectura. Vuelva a montarlo rw antes de hacer actualizaciones.
LawrenceC
13

Porque los usuarios comunes pueden hacer que se escriban cosas /vary /tmp, y por lo tanto, potencialmente causar problemas para todo el sistema. De esta manera, los procesos del usuario pueden llenarse /vary /tmp, pero no la raíz fs. Un separado /usres útil para /usrmás de NFS u otros fs remotos.

(Espero que esto esté claro, todavía no he tomado café)

KellyClowers
fuente
La primera oración es la mejor explicación, gracias.
greenoldman
11

El problema es que una raíz completa fs hace que el sistema Linux sea inoperable hasta el punto de que incluso un administrador lo arregle sin un CD de recuperación o similar. Cuando /tmpy /vary en particular /homeestán en una partición separada, la raíz fs nunca puede llenarse sin que lo haga un administrador. Considere /usrla combinación en la que se realizarán todas las instalaciones habituales, e incluso la instalación de un nuevo software no puede causar este problema.

txwikinger
fuente
A menos que se instale en /opt:)
Troubadour
1
Bien. también puede hacer una partición diferente para esto, o crear un enlace de manera que / opt esté realmente ubicado en la partición / usr. El principio sigue siendo el mismo.
txwikinger
10

En general, los argumentos para tener particiones separadas son:

  1. Seguridad: puede, por ejemplo, montar una partición de solo lectura para evitar que los usuarios (o procesos) malintencionados sobrescriban o reemplacen binarios allí con troyanos. Entonces, si su binario ssh vive en / usr / local / bin y / usr / local está montado de solo lectura, será difícil para cualquiera reemplazar ese binario.

  2. Flexibilidad / conveniencia: por ejemplo, si configura / var en su propia partición y se llena al 80%, puede cambiar su tamaño o incluso moverlo a otro disco si es necesario. Prefiero tener que hacer eso que tratar con un sistema cuyo '/' está 100% lleno porque los registros bajo / var se han vuelto locos de alguna manera. Las diferentes particiones también pueden tener diferentes sistemas de archivos por completo, lo que permite que su sistema operativo use ext3 (por ejemplo) y su base de datos para usar ext4, o su repositorio de objetos para usar XFS, o su aplicación personalizada para usar ... ¡dispositivos sin procesar!

jonesy
fuente
¿Cuál es la forma habitual de manejar las actualizaciones del sistema en el primer caso?
intuido
6

Tradicionalmente, se hizo de esta manera debido a las peculiaridades del hardware DEC en el que se desarrolló. Fue más económico comprar un disco pequeño y rápido para root e intercambio y un disco más grande y más lento para datos de usuario ( /usr). En cierto modo, la convención simplemente se atascó.

Sin embargo, todavía hay algunas razones para hacerlo. Algunos comunes son:

  • Poner / arrancar en una pequeña partición separada cerca del comienzo del disco. El firmware de BIOS de PC anterior solo arrancaría desde las primeras 1024 pistas del disco. Es menos probable que esto sea un problema con el hardware moderno.

  • Colocando particiones ocupadas como /varo /tmpen discos separados para eliminar cuellos de botella en el acceso a los datos del usuario.

  • Diferentes sistemas de archivos en diferentes particiones. Por ejemplo, es posible que desee utilizar un sistema de archivos de diario para /usrpero no para particiones que alojan archivos para un DBMS como Oracle: el DBMS realiza su propio diario y el sistema de archivos de diario puede imponer una sobrecarga considerable.

  • Tener datos de usuario en un disco o partición separados facilita la migración a un disco más grande sin una cirugía mayor en la máquina.

  • Es posible que desee montar datos compartidos, como directorios de inicio o binarios de aplicaciones a través de NFS.

  • fscklleva mucho tiempo en grandes volúmenes para ciertos tipos de sistema de archivos. Es posible que desee tener diferentes horarios de mantenimiento del sistema de archivos para las áreas del sistema (frecuentes) y las áreas de usuario (menos frecuentes).

Preocupado por TunbridgeWells
fuente
5

Formatear un sistema de archivos también puede ser más rápido que rm -rf'ing. Especialmente si tiene miles de archivos pequeños para borrar. Caché de calamar que desea volver a crear por completo ... toneladas de archivos de imagen que necesita procesar pero que puede desecharse una vez creado el resultado final. archivos .obj de grandes compilaciones ... etc.

gabe
fuente
4

Una carpeta que a veces pongo en una partición separada es /usr/local/para que cualquier software que haya creado e instalado por separado del administrador de paquetes de mi distribución pueda ser reutilizado si cambio / actualizo mi distribución o por otra distribución instalada junto a ella. Obviamente, no se garantiza que funcione en todas las combinaciones posibles, pero no hace daño.

Trovador
fuente
2

Puse /tmpun tmpfs, por lo que el contenido se almacena en la RAM en lugar de en el disco. Eso no sería útil para /etco /usrembargo.

Pero poder poner diferentes directorios en diferentes sistemas de archivos podría ser beneficioso; es decir, /homeen un sistema de archivos rápido / experimental como ext4 frente a un sistema de archivos estable / confiable como ext2 para /etc.

jonescb
fuente