web-dev-qa-db-fra.com

Pourquoi mettre autre chose que / home sur une partition séparée?

Récemment, un installateur Debian 5.0.5 m'a proposé d'avoir /usr, /home, /var et /tmp partitions (sur un disque physique).

Quelle en est la raison pratique? Je comprends que /home peut être avantageux de mettre sur une partition séparée, car les fichiers utilisateur peuvent être chiffrés séparément, mais pourquoi pour autre chose?

56
Alex B
  1. Minimiser les pertes: si /usr Se trouve sur une partition distincte, un /usr Endommagé ne signifie pas que vous ne pouvez pas récupérer /etc.
  2. Sécurité: / Ne peut pas toujours être ro (/root Peut devoir être rw etc.) mais /usr Le peut. Il peut être utilisé pour faire le ro autant que possible.
  3. Utilisation de FS différents: je peux vouloir utiliser un système différent pour /tmp (Pas fiable mais rapide pour de nombreux fichiers) et /home (Doit être fiable). Similaire /var Contient des données alors que /usr Ne le fait pas /usr La stabilité peut être sacrifiée mais pas autant que /tmp.
  4. Durée de fsck: des partitions plus petites signifient que la vérification d'une est plus rapide.
  5. Mention de remplissage de partitions, bien que l'autre méthode soit les quotas.
57
Maciej Piechotka

Un /usr peut être utile si plusieurs machines partagent le même système d'exploitation. Ils peuvent partager un seul central /usr au lieu de le dupliquer sur chaque système. /usr peut être monté en lecture seule.

/var et /tmp peut être rempli par des programmes utilisateur ou des démons. Par conséquent, il peut être sûr de les avoir dans des partitions distinctes qui empêcheraient /, la partition racine, à 100%, et frapperait mal votre système. Pour éviter d'avoir deux partitions distinctes pour celles-ci, il n'est pas rare de voir /tmp étant un lien symbolique vers /var/tmp.

25
Didier Trosset

Parce que les utilisateurs ordinaires peuvent faire écrire des choses dans /var et /tmp, et donc potentiellement causer des problèmes pour l'ensemble du système. De cette façon, les processus utilisateur peuvent se remplir /var et /tmp, mais pas la racine fs. Un /usr est utile pour /usr sur NFS ou sur d'autres fs distants.

(J'espère que c'est clair, je n'ai pas encore pris de café)

13
KellyClowers

Le problème est qu'un fs racine complet rend le système Linux inutilisable jusqu'à un point tel que même un administrateur le répare sans CD de récupération ou similaire. Quand /tmp et /var et en particulier /home sont dans une partition séparée, le root fs ne peut jamais se remplir sans qu'un administrateur ne le fasse. Prenez /usr dans le mix dans lequel toutes les installations habituelles seront placées, et même l'installation de nouveaux logiciels ne peut pas causer ce problème.

11
txwikinger

En général, les arguments pour avoir des partitions séparées sont:

  1. Sécurité: vous pouvez, par exemple, monter une partition en lecture seule pour empêcher les utilisateurs (ou processus) malveillants d'écraser ou de remplacer les binaires par des chevaux de Troie. Donc, si votre binaire ssh vit dans/usr/local/bin et/usr/local est monté en lecture seule, il sera difficile pour quiconque de remplacer ce binaire.

  2. Flexibilité/commodité: par exemple, si vous configurez/var sur sa propre partition et qu'elle atteint 80%, vous pouvez la redimensionner, ou même la déplacer vers un autre disque si nécessaire. Je préfère faire cela plutôt que de traiter avec un système dont le '/' est plein à 100% car les journaux sous/var sont devenus détraqués d'une manière ou d'une autre. Différentes partitions peuvent également avoir des systèmes de fichiers entièrement différents, permettant à votre système d'exploitation d'utiliser ext3 (par exemple) et à votre base de données d'utiliser ext4, ou à votre référentiel d'objets d'utiliser XFS, ou à votre application personnalisée d'utiliser ... des périphériques bruts!

9
jonesy

Traditionnellement, cela a été fait de cette façon en raison des particularités du matériel DEC sur lequel il a été développé. Il était plus économique d'acheter un petit disque rapide pour root et swap et un disque plus grand et plus lent pour les données utilisateur (/usr). À certains égards, la convention est restée.

Cependant, il y a encore quelques raisons à cela. Voici quelques exemples courants:

  • Mettre/démarrer sur une petite partition séparée près du début du disque. Le micrologiciel BIOS du PC plus ancien ne démarrerait qu'à partir des 1024 premières pistes du disque. Cela est moins susceptible d'être un problème avec le matériel moderne.

  • Mettre des partitions occupées telles que /var ou /tmp sur des disques séparés pour supprimer les goulots d'étranglement sur l'accès aux données utilisateur.

  • Différents systèmes de fichiers sur différentes partitions. Par exemple, vous souhaiterez peut-être utiliser un système de fichiers de journalisation pour /usr mais pas pour les partitions qui hébergent des fichiers pour un SGBD tel qu'Oracle - le SGBD effectue son propre journalisation et le système de fichiers de journalisation peut imposer une surcharge importante.

  • Le fait de disposer de données utilisateur sur un disque ou une partition séparé facilite la migration vers un disque plus grand sans intervention chirurgicale majeure sur la machine.

  • Vous pouvez souhaiter monter des données partagées telles que des répertoires personnels ou des fichiers binaires d'application sur NFS.

  • fsck prend beaucoup de temps sur de gros volumes pour certains types de système de fichiers. Vous pouvez souhaiter avoir différents programmes de maintenance du système de fichiers pour les zones système (fréquentes) et les zones utilisateur (moins fréquentes).

Le formatage d'un système de fichiers peut également être plus rapide que le rm -rf. Surtout si vous avez des milliers de petits fichiers à effacer. Cache Squid que vous souhaitez recréer entièrement ... des tonnes de fichiers image dont vous avez besoin pour le traitement, mais qui peuvent être jetés après la création du résultat final. Fichiers .obj provenant d'énormes compilations ... etc.

5
gabe.

Un dossier que je place parfois sur une partition distincte est /usr/local/ afin que tout logiciel que j'ai construit et installé séparément du gestionnaire de paquets de ma distribution puisse être réutilisé si je change/mets à jour ma distribution ou par une autre distribution installée à côté d'elle. Il n'est évidemment pas garanti de fonctionner dans toutes les combinaisons possibles, mais cela ne fait aucun mal.

4
Troubadour

Je mets /tmp sur un tmpfs, donc le contenu est stocké dans RAM au lieu du disque. Cela ne serait pas utile pour /etc ou /usr cependant.

Mais pouvoir mettre différents répertoires sur différents systèmes de fichiers pourrait être bénéfique; c'est à dire. /home sur un système de fichiers rapide/expérimental comme ext4 par rapport à un système de fichiers stable/fiable comme ext2 pour /etc.

2
jonescb