Est-il possible que les partitions racine et home aient des systèmes de fichiers différents et se trouvent sur des périphériques physiques séparés?

10

Imaginez que j'ai formaté la racine avec un système de fichiers ext3 sur une partition distincte qui se trouve sur un disque dur SATA et le répertoire personnel sur une partition btrfs différente qui se trouve sur un SSD Intel.

J'ai téléchargé un fichier sur Internet et l'ai temporairement enregistré dans /tmp(dans le système de fichiers racine), puis j'ai décidé de le déplacer vers mon répertoire personnel (la deuxième partition).

Je peux sentir le processus douloureux qui se produit en arrière-plan pour faire fonctionner une mvcommande aussi simple .

Donc, tout d'abord, est-il possible que la racine et la maison aient des systèmes de fichiers différents? En second lieu , en supposant que la réponse à la question précédente est « oui », comment le système d' exploitation gère tout ce passage de ext3la btrfspuis en utilisant différents pilotes de périphériques pour différents types de disques (HDD et SSD)?

Karim Manaouil
la source
3
C'est fait avec des couches. La couche du système de fichiers est construite sur la couche de périphérique de bloc. Vous pouvez utiliser n'importe quel système de fichiers approprié dans la couche système de fichiers. Vous pouvez utiliser n'importe quel périphérique de bloc approprié dans cette couche de périphérique de bloc. Chaque point de montage peut avoir son propre système de fichiers et son propre appareil.
sciure de bois
@sawdust, c'est une chose très intéressante que vous avez pointée du doigt, la couche système de fichiers et la couche périphérique bloc. Comment sont-ils liés? Toutes les lectures seront utiles.
Karim Manaouil
Je ne sais pas beaucoup de choses sur les systèmes de fichiers, mais je suppose que le processus ne serait pas si différent de la copie de fichiers vers un lecteur FAT32 externe
Blaine
Pourquoi utilisez-vous toujours ext3 en 2017 alors qu'il est si simple de passer à ext4?
David Foerster

Réponses:

25

La réponse est oui, vous pouvez avoir n'importe quel répertoire sur n'importe quel appareil, exécutant n'importe quel système de fichiers que le système d'exploitation peut prendre en charge.

Vous pouvez donc avoir / /var /home /optet même /home/afr0cksur différents appareils, différentes partitions, différents systèmes de fichiers.

Non seulement vous le pouvez, mais c'est courant. Par exemple, il est toujours recommandé de conserver /varet /homesur différentes partitions /car celles-ci sont les plus susceptibles de consommer par inadvertance de l'espace disque - si elles se remplissent, cela n'affecte pas trop le système. S'ils se trouvent sur la même partition que root, cela peut entraîner l'arrêt du système.

Et vous pouvez souhaiter que différents répertoires s'exécutent sur différents appareils pour des raisons de vitesse. Et utilisez différents systèmes de fichiers à différentes fins. Par exemple, peut-être ext4 est ce que vous voulez pour les fichiers du système d'exploitation, car ils ne changent pas beaucoup, mais vous pouvez vouloir btrfs pour / home afin que vous puissiez conserver des instantanés pour les sauvegardes. Ce sont toutes des décisions qui peuvent être prises par chaque personne pour son cas d'utilisation spécifique.

La partie espace utilisateur du système d'exploitation n'a pas besoin de comprendre les différents types de périphériques et de systèmes de fichiers. Tout ce qu'il fait, il demande au noyau de déplacer un fichier, et le noyau orchestre tout à partir de là. Ainsi, la mvcommande (par exemple) est indépendante du système de fichiers et du type de périphérique. Le noyau appelle tous les pilotes nécessaires pour lire et écrire dans les différentes partitions.

Paul
la source
7
Utile pour souligner que mv(1)tente d'abord rename(2)le fichier. Ensuite, il revient à copier-supprimer. Donc, essayer de renommer est de savoir comment mvdéterminer s'il est possible de manière agnostique FS. ( rename(2)échoue toujours lors du déplacement entre différents périphériques, qu'ils utilisent ou non le même pilote de système de fichiers, @ afr0k.)
Peter Cordes
1
@ PeterCordes hein, je ne savais pas que renommer était une chose. J'ai toujours utilisé mv pour renommer les choses.
5
@stanri: mvne charge pas / n'exécute pas la rename(1)commande, il essaie juste l' rename(2)appel système. Il n'y a pas de renamecommande shell standard . Sur certains systèmes, il s'agit de la commande de changement de nom de fichiers multiples à substitution de modèle d'util-linux. Je ne parlais pas de la commande shell, de la façon dont mvfonctionne en interne.
Peter Cordes
Même / usr pourrait résider sur une partition différente, c'est pourquoi certaines choses vraiment essentielles sont dans / bin / lib et / sbin - si tous les installateurs le prendront en charge, c'est une autre affaire.
rackandboneman
7

Oui, des systèmes de fichiers séparés (points de montage) peuvent être différents types de systèmes de fichiers.  /procest toujours un procfssystème de fichiers, et /sysest toujours un sysfs. Les systèmes de fichiers transitoires (y compris parfois /tmp) le sont souvent tmpfset, dans les paramètres de groupe de travail, il est courant que les répertoires personnels de l'utilisateur (et leurs répertoires de produits de travail) soient nfsou d'autres types de systèmes de fichiers distants (réseau / partagé).

Il n'y a pas de gestion spéciale pour le système d'exploitation. Jusqu'à un certain point, au niveau de l'utilisateur, tous les systèmes de fichiers se ressemblent, dans le sens où une lsliste sera à peu près la même dans n'importe quel répertoire. Au-delà de ce point, les systèmes de fichiers n'interagissent pas. Même entre deux systèmes de fichiers (partitions) sur le même disque physique, du même type de système de fichiers, il n'y a pas de liaison 1 . Par exemple, le déplacement d'un fichier d'un système de fichiers (point de montage) vers un autre implique toujours de faire une copie et de supprimer l'original. Peu importe qu'il s'agisse de partitions sur différents disques. Peu importe si l'un d'eux est un disque dur et un SSD. Peu importe si on est ext3et on estbtrfs. Peu importe si l'un est interne (à l'intérieur du boîtier de l'ordinateur) et l'autre externe (quelques pouces à l'extérieur, connecté par un câble) - ou distant (accessible via le réseau).

En parlant de réseau, c'est un peu analogue à ssh. Il lit à partir du clavier et envoie les caractères que vous saisissez au réseau. Simultanément, il lit sur le réseau et affiche les résultats à l'écran.

Ou considérez ceci: imaginez que vous êtes au téléphone et que vous êtes en train de négocier une conversation entre la personne sur l'autre téléphone et une autre personne dans la pièce. Ce n'est pas grand chose.
________
1 sauf pour les liens symboliques - mais ils peuvent traverser les limites du système de fichiers.

G-Man dit «Réintègre Monica»
la source
1
Je suis largement d'accord avec votre réponse, mais ce n'est pas vraiment typique pour / tmp d'être un tmpfs (bien que peut-être défini comme ça sur certaines distributions) - c'est normalement hors de la partition racine et nettoyé au démarrage. Les distributions de type Ubuntu et Redhat utilisent / dev / shm comme tmpfs,
davidgo
J'étais confus. J'ai mis à jour ma réponse.
G-Man dit `` Réintègre Monica '' le
1
@davidgo: Quelles distributions Linux ne prennent pas par défaut /tmpsur tmpfs? J'ai également pensé que c'était à peu près une pratique standard, car vous pouvez toujours y mettre des choses /var/tmp(bien que cela ne soit pas nettoyé au démarrage). Je ne suis pas un expert des valeurs par défaut des distributions croisées, juste Debian / Ubuntu et Arch. Avec ceux-ci plus RedHat, cela couvre une grande partie des systèmes Linux installés (mais pas autant qu'une grande partie du total des distributions).
Peter Cordes
(en ignorant les systèmes embarqués) J'utilise uniquement Centos et Ubuntu régulièrement - qui utilisent tous deux le disque pour / tmp. - Je suis presque sûr que cela signifie que Debian, Redhat et Mint suivront tous la même convention. Mon appareil Android n'a pas / tmp
davidgo
2
@PeterCordes La montée en puissance de tmpfsLinux n'est récente que depuis environ 5-7 ans. Par exemple, Fedora discutait du changement sur leur wiki ~ 2012, et je pense qu'il a été introduit dans Debian Wheezy.
Bob