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?
/usr
Se trouve sur une partition distincte, un /usr
Endommagé ne signifie pas que vous ne pouvez pas récupérer /etc
./
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./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
.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
.
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é)
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.
En général, les arguments pour avoir des partitions séparées sont:
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.
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!
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.
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.
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
.