Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentesRévision précédente
Prochaine révision
Révision précédente
systeme_de_fichiers [Le 01/11/2024, 15:35] – [Systèmes de fichiers ZFS] 91.161.152.215systeme_de_fichiers [Le 08/05/2026, 09:19] (Version actuelle) – [Comparaison de systèmes de fichiers] typo krodelabestiole
Ligne 1: Ligne 1:
 {{tag>installation système partitions}} {{tag>installation système partitions}}
  
-------+{{ https://raw.githubusercontent.com/ubuntu/yaru/refs/heads/master/icons/Yaru/256x256%402x/apps/disk-utility-app.png?100|Icône stockage}} 
 +======= Les systèmes de fichiers ======
  
-======= Les systèmes de fichiers sous GNU-Linux / macOS / Windows ====== +Les **[[wpfr>Système de fichiers|systèmes de fichiers]]** (il en existe plusieurs) gèrent l'organisation des informations mémorisées sur les supports de stockage de l'ordinateur. Chacun a ses avantages et inconvénients pour chaque type d'utilisation. Connaître leurs principales caractéristiques est nécessaire à l'utilisation optimale d'un équipement.
-Les **systèmes de fichiers** (il en existe de multiples) gèrent l'organisation des informations mémorisées sur les périphériques de stockage de l'ordinateur. Chacun offre des avantages pour certains types d'utilisation... mais des désavantages pour d'autres utilisations. Connaître leurs principales caractéristiques est nécessaire pour l'utilisation optimale d'un équipement. C'est comme un classeur.+
  
-===== Je désire créer une partition d'échange de fichiers entre Ubuntu / Mac / Microsoft(r) Windows(r). Quel système de fichiers devrais-je préférer ? ===== +<note tip> 
-Voir la page [[partition_d_echange_de_fichiers_entre_ubuntu_mac_et_windows|Gérer une partition d'échange de fichiers entre Ubuntu / Mac / Windows]]+Pour choisir rapidement un système de fichiers pour créer une partition d'échange entre Ubuntu, macOS et Windows, 
 +voir la page //[[:partition_d_echange_de_fichiers_entre_ubuntu_mac_et_windows|Gérer une partition d'échange de fichiers entre Ubuntu / macOS / Windows]]//. 
 +</note>
  
 ===== Qu'est-ce qu'un système de fichiers ? ===== ===== Qu'est-ce qu'un système de fichiers ? =====
-Dans le cœur d'un ordinateur, tout est constitué de 1 et de 0, mais l'organisation de ces données n'est pas aussi simple. 
  
-Un **bit** est un 1 ou un 0 ; un **octet** (//byte// en anglais) est composé de huit bits ; un kilo-octet binaire (**kibioctet**ou //kibibyte//est un groupe de 1024 octets ; un méga-octet binaire(**mébioctet**, ou //mebibyte//) se constitue de 1024 kilo-octets binaires ; et ainsi de suite.+En informatique, les données sont stockées au format [[wpfr>système binaire|binaire]] sur les supports de stockage ([[:disque dur|disques durs]], [[:SSD]]etc.). Les informations sont donc intégralement constituées de ''1'' et de ''0'' (on parle de //bit//, voir note ci-dessous)et évidemment absolument inexploitables sous cette forme par un être humain.
  
-Un disque dur (//hard drive// ou //hard disk//) stocke vos données : à chaque fois que vous enregistrez un fichiervous écrivez des milliers de 1 et de 0 sur un disque métallique, le piquant littéralement et créant une indentation qui pourra plus tard être relue en tant que 1 ou 0 par votre ordinateur. En réalitévous magnétisez des milliers de petits bâtons (que nous appellerons //clusters//) qui seront polarisés dans un sens ou dans un autre (N-S ou S-N) ; cette polarisation différente sera ré-interprétée plus tard par l'ordinateur en tant que 1 ou 0.+Pour s'y retrouver on a organisé ces informations sous forme de fichierseux-mêmes rassemblés dans des répertoires. Ceci forme donc une [[:arborescence]], dans laquelle chaque fichier est accessible en suivant un [[:chemins|chemin]]
  
-Il y a tellement de données sur un disque dur qu'il doit obligatoirement y avoir un moyen de les organiser. +En plus de celades informations sont associées à chacun de ces fichiers et répertoires date de création, modification, et parfois de dernier accès[[:droits|permissions]] d'accès et de modificationen associant chacun à un ou plusieurs propriétairesetc.\\ On parle de //métadonnées// (voir //[[:chemins#inodes]]//).
-<note>C'est un peu comme les anciens classeurs de cartes d'identification de livres dans une bibliothèque municipaledans lesquels tous les livres sont recensés : sans ces index, il serait impossible de retrouver facilement les livres que nous recherchons.  Les bibliothèques utilisent pour la plupart le système de classement décimal Dewey pour organiser les livres en sujets ; il existe aussi d'autres systèmes de classification arrivant à un résultat similaire, bien qu'aucun d'entre eux n'ait atteint la même popularité que le système de Dewey.</note> +
-Les systèmes de fichiers jouent exactement le même rôle que ces index organiser les fichiers de votre ordinateur sur votre disque dur de façon à pouvoir les retrouver lorsque vous en aurez besoin.  Les systèmes de fichiers les plus répandus à l'heure actuelle sont sûrement le FAT32 et le NTFS, qui sont les deux seuls systèmes de fichiers que Microsoft(r) Windows(r) peut nativement lire. Maistout comme il existe d'autres systèmes pour classer des livres dans une bibliothèque, il existe de nombreux autres systèmes de fichiers : ext2ext3, ext4, ReiserFS, JFS, XFS, Btrfs, ZFS,....+
  
-===== Les qualifications d'un système de fichiers ===== +Chaque système d'exploitation peut vouloir enregistrer différentes métadonnées, par ex. parce que chacun gère les permissions différemment, et chacun propose différentes fonctionnalités (journaux, historique, //[[:points_de_restauration_pour_un_systeme_linux|snapshots]]//) qui peuvent impliquer différentes manières de stocker les données sur les supports. 
-Des attributs différents sont nécessaires afin de définir un système de fichiers.  Ils incluent entre autres la **taille maximale que peut avoir un fichier** dans ce système de fichiersla **taille maximale d'une partition** et la **journalisation ou non** du système de fichiers.+ 
 +C'est pourquoi on trouve différents systèmes de fichiers (en plus de la concurrence entre les différents éditeurs de système d'exploitation) : 
 +  * sur Linux on utilise principalement [[:ext4]], héritier de [[wpfr>ext2]] et [[wpfr>ext3]], ainsi que [[:Btrfs]] plus gourmand en mémoire vive mais qui offre des fonctionnalités plus avancées 
 +  * Microsoft a développé pour Windows les systèmes de fichiers [[wpfr>NTFS]], [[wpfr>FAT32]] et [[:exFAT]] 
 +  * Apple pour macOS : [[wpfr>HFS]], [[wpfr>HFS+]] et plus récemment [[wpfr>Apple File System|APFS]] 
 +  * Sun / Oracle a conçu [[:tutoriel:donnees_stockees_dans_un_systeme_de_fichiers_zfs|ZFS]] pour Solaris, désormais surtout utilisé avec les systèmes [[wpfr>Berkeley_Software_Distribution|*BSD]] comme concurrent de [[:Btrfs]] 
 +  * et bien d'[[wpfr>Système_de_fichiers#Histoire|autres systèmes]] existent encore ! 
 + 
 +<note> 
 +  * Un **bit** noté ''b'' est un ''1'' ou un ''0''
 +  * Un **octet** noté ''o'' (ou //byte// noté ''B'' en anglais) est composé de huit bits. 
 +  * Un kilo-octet binaire ''Kio'' (**kibioctet**, ou //kibibyte// ''KiB'') est un groupe de 1024 octets. 
 +  * Un méga-octet binaire ''Mio'' (**mébioctet**, ou //mebibyte// ''MiB'') se constitue de 1024 kilo-octets binaires. 
 +  * et ainsi de suite. 
 + 
 +Les valeurs indiquées en [[wpfr>préfixe binaire]] (//Kio//, //Mio//, //Gio//, //Tio// -- base 1024 plus pratique avec les puissances de 2), semblent //a priori// inférieures aux valeurs indiquées au [[wpfr>Préfixes_du_Système_international_d'unités|système international]] (//ko//, //Mo//, //Go//, //To// -- base 1000) souvent préférées par les fabricants de matériel :\\ 
 +alors que  1 ko = 1000 octets, 1 Kio = 1024 octets.((Plus d'informations sur [[wpfr>Octet|Wikipedia]].))\\ 
 +C'est généralement pourquoi la capacité d'une clé USB affichée par le système semble légèrement inférieure à celle qu'on nous a vendue ! 
 +</note> 
 + 
 +===== Les caractéristiques des systèmes de fichiers ===== 
 + 
 +Chaque système de fichiers témoigne des avancements technologiques de son époque. 
 + 
 +Des impératifs techniques déterminent certaines de leurs caractéristiques, qui incluent entre autres 
 +  [[#la_taille_maximale_d_un_fichier|la taille maximale que peut avoir un fichier]], 
 +  [[#la taille maximale d'une partition]] 
 +  [[#la journalisation]] ou non du système.
  
 ==== La taille maximale d'un fichier ==== ==== La taille maximale d'un fichier ====
 +
 Ce critère définit la taille maximale qu'un fichier quelconque enregistré sur un système de fichiers peut avoir.  Ainsi, si vous possédez un fichier de 100 mégaoctets et que vous tentez de l'enregistrer sur un système de fichiers n'acceptant pas les fichiers plus grands que 90 mégaoctets, l'opération d'enregistrement ne pourra pas être complétée et vous disposerez d'un fichier corrompu, incomplet. Ce critère définit la taille maximale qu'un fichier quelconque enregistré sur un système de fichiers peut avoir.  Ainsi, si vous possédez un fichier de 100 mégaoctets et que vous tentez de l'enregistrer sur un système de fichiers n'acceptant pas les fichiers plus grands que 90 mégaoctets, l'opération d'enregistrement ne pourra pas être complétée et vous disposerez d'un fichier corrompu, incomplet.
  
 ==== La taille maximale d'une partition ==== ==== La taille maximale d'une partition ====
 +
 Ce critère définit la taille maximale que peut avoir une partition utilisant un système de fichier donné. Ce critère définit la taille maximale que peut avoir une partition utilisant un système de fichier donné.
  
Ligne 32: Ligne 60:
  
 ==== La gestion des droits d'accès aux fichiers et répertoires ==== ==== La gestion des droits d'accès aux fichiers et répertoires ====
 +
 Ce critère définit s'il est possible ou non d'attribuer la possession d'un fichier ou d'un répertoire à un utilisateur et à un groupe d'utilisateurs, de même que de définir quelles actions les utilisateurs ont le droit d'effectuer sur les fichiers et répertoires, selon qu'ils sont propriétaires du fichier, membre du groupe propriétaire du fichier ou ni l'un ni l'autre. Ce critère définit s'il est possible ou non d'attribuer la possession d'un fichier ou d'un répertoire à un utilisateur et à un groupe d'utilisateurs, de même que de définir quelles actions les utilisateurs ont le droit d'effectuer sur les fichiers et répertoires, selon qu'ils sont propriétaires du fichier, membre du groupe propriétaire du fichier ou ni l'un ni l'autre.
  
Ligne 39: Ligne 68:
  
 ==== La journalisation ==== ==== La journalisation ====
-Parlons maintenant de la journalisation.  Un système de fichiers journalisé est **plus fiable** lorsqu'on entre dans le domaine du stockage des données.  Il a été expliqué plus haut ce qui se produit réellement lorsqu'un fichier est enregistré sur un disque dur (une suite de 1 et de 0 est inscrite sur le disque) ; mais que se produit-il si l'écriture de la chaîne est interrompue avant son terme (ce qui se produit, par exemple, lors d'une coupure de courant) ?  Votre fichier devient « corrompu », incomplet. 
  
- Un système de fichiers journalisé travaille de façon à prévenir une telle corruption : lors de la sauvegarde d'un fichier, au lieu d'écrire immédiatement sur le disque dur les données à l'endroit exact où elles devraient être enregistrées, le système de fichiers écrit les données dans une autre partie du disque dur et note les changements nécessaires dans un journal, et ensuite, en arrière-plan, il repasse chacune des entrées du journal et termine le travail commencé ; lorsque la tâche est accomplie, il raye la tâche de la liste.+Un système de fichiers journalisé est plus **fiable**. Il a été expliqué plus haut ce qui se produit réellement lorsqu'un fichier est enregistré sur un support de stockage (une suite de ''1'' et de ''0'' est inscrite sur le disque) ; mais que se produit-il si l'écriture de la chaîne est interrompue avant son terme (ce qui se produit, par exemple, lors d'une coupure de courant) ? Votre fichier devient //corrompu// (incomplet ou erroné). 
 + 
 +Un système de fichiers journalisé travaille de façon à prévenir une telle corruption : lors de la sauvegarde d'un fichier, au lieu d'écrire immédiatement sur le disque dur les données à l'endroit exact où elles devraient être enregistrées, le système de fichiers écrit les données dans une autre partie du disque dur et note les changements nécessaires dans un journal, et ensuite, en arrière-plan, il repasse chacune des entrées du journal et termine le travail commencé ; lorsque la tâche est accomplie, il raye la tâche de la liste.
  
 Mais comment cela prévient-il la perte de données ?  Prenons un exemple : disons que vous cliquez sur le bouton //Enregistrer// de votre logiciel d'édition de texte pour sauvegarder le fichier ''foo.txt'' L'ordinateur écrit d'abord un « brouillon » de ''foo.txt'' dans une partie différente du disque dur et écrit le changement dans le journal du système de fichiers.  Une fois cela effectué, l'ordinateur commence à retranscrire le fichier //(la suite de 1 et de 0)// à son endroit définitif sur le disque dur.  Soudain, il survient une panne de courant ; alors la transcription du fichier est interrompue.  Lorsque le courant revient, même si le « propre », la version finale de votre fichier est incomplète, vous possédez toujours votre brouillon dans le journal du système de fichiers ; l'ordinateur recommence donc la retranscription du fichier, écrasant les données corrompues. Mais comment cela prévient-il la perte de données ?  Prenons un exemple : disons que vous cliquez sur le bouton //Enregistrer// de votre logiciel d'édition de texte pour sauvegarder le fichier ''foo.txt'' L'ordinateur écrit d'abord un « brouillon » de ''foo.txt'' dans une partie différente du disque dur et écrit le changement dans le journal du système de fichiers.  Une fois cela effectué, l'ordinateur commence à retranscrire le fichier //(la suite de 1 et de 0)// à son endroit définitif sur le disque dur.  Soudain, il survient une panne de courant ; alors la transcription du fichier est interrompue.  Lorsque le courant revient, même si le « propre », la version finale de votre fichier est incomplète, vous possédez toujours votre brouillon dans le journal du système de fichiers ; l'ordinateur recommence donc la retranscription du fichier, écrasant les données corrompues.
Ligne 49: Ligne 79:
 //« Mais,// direz-vous,// il est beaucoup plus avantageux d'utiliser un système de fichiers journalisé !  C'est bien plus sécurisé !  Pourquoi utiliserais-je un système de fichiers non journalisé ? »//  L'utilisation d'un journal requiert des capacités de stockage importantes sur vos périphériques ; ces systèmes de fichiers ne sont donc pas adaptés aux médias de faible capacité, telles les cartes mémoires (//memory sticks//) et les disquettes. //« Mais,// direz-vous,// il est beaucoup plus avantageux d'utiliser un système de fichiers journalisé !  C'est bien plus sécurisé !  Pourquoi utiliserais-je un système de fichiers non journalisé ? »//  L'utilisation d'un journal requiert des capacités de stockage importantes sur vos périphériques ; ces systèmes de fichiers ne sont donc pas adaptés aux médias de faible capacité, telles les cartes mémoires (//memory sticks//) et les disquettes.
  
-==== Particularité des systèmes de fichiers *nix : inode ==== +==== Copy on Write ====
-Les utilisateurs habitués de Microsoft Windows savent qu'il n'est normalement pas possible de modifier les propriétés d'un fichier (renommer, déplacer, supprimer...) quand celui-ci est ouvert par un programme ; cette restriction n'existe pas sur les systèmes de fichiers de type Unix (ext2, ext3, ReiserFS...).+
  
-La raison est que sur les systèmes de fichiers *nix, les fichiers sont indexés selon un numéroappelé **inode** ou //i-node//, et que chaque inode possède de nombreux attributs associés à lui, tels **les droits d'accès, l'horodatage, la taille du fichier**, etc. Lorsque vous supprimez un fichier, ce qui se produit réellement est que l'inode est « délié » du système de fichiers (c'est-à-dire qu'il n'est plus indexé), mais si des programmes ont un lien avec l'inode (par exemple, si un document texte est ouvert dans un éditeur de texte, il a un lien avec cet éditeur de texte), le fichier auquel l'inode est associé continue d'exister dans le système d'exploitation et continue d'être mis à jour.+Certains systèmes modernescomme **[[:Btrfs]]** ou **[[:ZFS]]**, reposent sur le //[[wpfr>Copy-on-write|Copy on Write]]// (ou CoW).
  
-<note>Il est possible de connaître l'utilisation en inodes d'une partition avec : (**sdxx** : nom de votre partition sdasdb ...+À chaque modification d'un fichier, au lieu d'écraser les anciennes données avec les nouvellesle système de fichier écrit la nouvelle version dans un espace viergeCeci permet de mettre en place des systèmes de //[[wpfr>Instantané_(informatique)|snapshots]]// (des instantanées) ou de //[[:sauvegarde#petit_glossaire|versioning]]// qui permettent de récupérer d'anciennes versions des fichiers, voire du système tout entier !
- <code bash>df -i /dev/sdxx</code> +
- <code bash>sudo tune2fs -l /dev/sdxx grep -i inode</code></note>+
  
-Un fichier n'est réellement effacé que lorsque tous les liens avec son inode ont été coupés //(et encore, les données résident encore sur le disque dur, mais comme elles ne sont plus indexées, il est difficile de les récupérer)//. Ce que tout ceci signifie est que vous pouvez supprimer des programmes alors qu'ils sont en fonctionnement sans faire planter votre système d'exploitation, renommer ou déplacer des fichiers avant qu'ils aient fini d'être téléchargés sans les corrompre et supprimer un fichier alors qu'il est encore ouvert dans un logiciel.+Cette fonctionnalité rend aussi la journalisation inutile.
  
-===== Comparaison de systèmes de fichiers ===== +==== Inodes ====
-Ci-dessous se trouve une très brève comparaison des systèmes de fichiers les plus communs et les plus utilisés dans le monde linuxien (par ordre alphabétique).+
  
-Si vous êtes interessé par le partage d'une partition Ubuntu / Mac / Windows, consulter aussi [[partition_d_échange_de_fichiers_entre_ubuntu_mac_et_windows|cette page]]+Les inodes sont une particularité des systèmes de fichiers [[wpfr>UNIX]] (donc font partie Linux et donc Ubuntu).
  
-^   Nom du système de fichiers     Taille maximale d'un fichier     Taille maximale d'une partition     Journalisée ou non ?  ^  Gestion des droits d'accès?  ^   Notes   ^ +Les utilisateurs habitués de Windows savent qu'il n'est normalement pas possible de modifier les propriétés d'un fichier (renommerdéplacer, supprimer...) quand celui-ci est ouvert par un programme ; cette restriction n'existe pas sur les systèmes de fichiers de type UNIX ([[:ext4]], [[:Btrfs]]...).
-|  **[[BtrFS]]** | 16 EiB | 16 EiB | Non (CoW) | Oui | Fonction de snapshot et de sauvegarde incrémentale | +
-|  **[[exFAT]]**  | 16 TiB | 256 TiB | Oui | Oui* | Ce système de fichiers a aussi été développé par Microsoft. L'écriture depuis Linux sur ce système de fichiers est stable à l'aide du pilote **exfat-fuse**. +
-|  **ext2FS**\\ (Extended File System)  | 2 TiB | 4 TiB | Non | Oui | Extended File System est le système de fichiers natif de Linux.  En ses versions 1 et 2, on peut le considérer comme désuet, car il ne dispose pas de la journalisation.  Ext2 peut tout de même s'avérer utile sur des disquettes 3½ et sur les autres périphériques dont l'espace de stockage est restreintcar aucun espace ne doit être réservé à un journal+
-|  **ext3FS**  | 2 TiB | 4 TiB | Oui | Oui | ext3 est essentiellement ext2 avec la gestion de la journalisation Il est possible de [[http://qliu.free.fr/Linux/ext3.html#s4|passer une partition formatée en ext2 vers le système de fichiers ext3]] (et //vice versa//sans formatage. | +
-|  **[[:ext4|ext4FS]]**  | 16 TiB | 1 EiB | Oui | Oui | ext4 est le successeur du système de fichiers ext3. Il est cependant considéré par ses propres concepteurs comme une solution intermédiaire en attendant le vrai système de nouvelle génération que sera BtrFS| +
-|  **FAT**\\ (File Allocation Table)  | 2 GiB | 2 GiB | Non | Non* | Développé par Microsoft, ce système de fichiers se rencontre moins fréquemment aujourd'hui.  Il reste néanmoins utilisé sur les disquettes 3½ formatées sous Windows et devrait être utilisé sous Linux si une disquette doit aussi être lue sous Windows.  Il est aussi utilisé par plusieurs constructeurs comme système de fichiers pour cartes mémoires (//memory sticks//), car, bien documenté, ce système de fichiers reste le plus universellement utilisé et accessible. | +
-|  **FAT32**  | 4 GiB | 8 TiB | Non | Non* | Ce système de fichiers, aussi créé par Microsoft, est une évolution du précédent. Depuis ses versions 2000 SP4 et XP, Windows ne peut pas formater (ou bloque volontairement le formatage) une partition en FAT32 d'une taille supérieure à 32 Go. Cette limitation ne s'applique pas sous Linux, de même qu'avec des versions antérieures de Windows.  Une partition FAT32 d'une taille supérieure à 32 Go déjà formatée pourra être lue par Windows, peu importe sa version. | +
-|  **NTFS**\\ (New Technology File System)  | 16 TiB | 256 TiB | Oui | Oui* | Ce système de fichiers a aussi été développé par Microsoft, et il reste très peu documenté. L'écriture depuis Linux sur ce système de fichiers est stable à l'aide du pilote **[[:tutoriel:ntfs|ntfs-3g]]**. Ce pilote est inclus de base dans Ubuntuet disponible en paquets dans les [[:dépôts]] pour les versions antérieures+
-|  **ReiserFS**  | 8 TiB | 16 TiB | Oui | Oui | Développé par Hans Reiser et la société Namesys, ReiserFS est reconnu particulièrement pour bien gérer les fichiers de moins de 4 ko Un avantage du ReiserFS, par rapport à ext3, est qu'il ne nécessite pas une hiérarchisation aussi poussée: il s'avère intéressant pour le stockage de plusieurs fichiers temporaires provenant d'Internet Par contre, ReiserFS n'est pas recommandé pour les ordinateurs portables, car le disque dur tourne en permanence, ce qui consomme beaucoup d'énergie. | +
-|  [[https://fr.wikipedia.org/wiki/Universal_Disk_Format|UDF (Universal Disk Format)]] | 16 EiB | 2 To | Non | Oui | Ce format, compatible avec tous les systèmes, est utilisé pour les lecteurs optique (CD, DVD) et peut être utilisé sur n'importe quel autre support de disqueAttention à certaines limites de compatibilité entre Linux / Mac / Windows | +
-^ EiB = Exbioctets (1024 pébioctets) :: PiB = Pébioctet (1024 tébioctet) :: TiB = Tébioctet (1024 gibioctets) :: GiB = Gibioctet (1024 mibioctets) [ [[wpfr>Octet|Plus d'informations sur la Wikipedia]] ]   ^^^^^^+
  
-Ci-dessus vous voyez aussi une comparaison de deux autres des principaux attributs d'un système de fichiersà savoir la taille maximale d'un fichier sur une partition et la taille la plus grande que peut avoir une partition avec un système de fichiers particulier.+La raison est que sur les systèmes de fichiers UNIX, les fichiers sont indexés selon un numéro, appelé **//[[wpfr>Nœud_d'index|inode]]//**, et que chaque //inode// possède de nombreux attributs associés à lui, tels **les droits d'accès, l'horodatage, la taille du fichier**, etc. Lorsque vous supprimez un fichier, ce qui se produit réellement est que l'//inode// est « délié » du système de fichiers (c'est-à-dire qu'il n'est plus indexé), mais si des programmes ont un lien avec l'//inode// (par exemple, si un document texte est ouvert dans un éditeur de texte, il a un lien avec cet éditeur de texte), le fichier auquel l'//inode// est associé continue d'exister dans le système d'exploitation et continue d'être mis à jour.
  
-==== Systèmes de fichiers FAT32 ==== +<note>Il est possible de connaître l'utilisation en //inodes// d'une partition avec :\\ 
-Caractéristiques : +(où ''/dev/sdxx'' est l'[[:partitions#designation_des_partitions_dans_ubuntu|identifiant de votre partition]] : ''/dev/sda2'', ''/dev/sdb1'' ...) 
-  * Compatible Linux Mac Windows + <code bash>df -i /dev/sdxx</code> 
-  * On ne peut pas installer Linux dessus à cause du manque de gestion des droit d'accès + <code bash>sudo tune2fs -l /dev/sdxx | grep -i inode</code></note>
-  * Pas compatible posix on ne peut pas définir un fichier comme exécutable, changer les droits par user/groupe/autres. Ceci est fait pour tous les fichiers de la partition lors du montage.+
  
 +Un fichier n'est réellement effacé que lorsque tous les liens avec son //inode// ont été coupés //(et encore, les données résident encore sur le disque dur, mais comme elles ne sont plus indexées, il est difficile de les récupérer)//. Ce que tout ceci signifie est que vous pouvez supprimer des programmes alors qu'ils sont en fonctionnement sans faire planter votre système d'exploitation, renommer ou déplacer des fichiers avant qu'ils aient fini d'être téléchargés sans les corrompre et supprimer un fichier alors qu'il est encore ouvert dans un logiciel.
  
-==== Systèmes de fichiers  NTFS ==== +===== Comparaison de systèmes de fichiers =====
-Caractéristiques : +
-  * Format fermé Microsoft +
-  * Compatible : Linux (le driver NTFS est du rétro-engineering. Cela fonctionne plutot bien meme si un risque est toujours présent) / Mac ? / Windows +
-  * On ne peut pas installer Linux dessus à cause du manque de gestion des droit d'accès +
-  * Pas compatible posix : on ne peut pas définir un fichier comme exécutable, changer les droits par user/groupe/autres. Ceci est fait pour tous les fichiers de la partition lors du montage.+
  
 +Ci-dessous se trouve une très brève comparaison des systèmes de fichiers les plus communs, avec certaines de leurs caractéristiques.
  
-Sous Microsoft(r) Windows(r), le système de fichiers NTFS gère les droits d'accès basé sur une liste de contrôle (ACL) qui n'est pas prise en compte sous Linux. Linux peut aussi prendre en charge une forme d'ACL, mais celle-ci est différente de celle implantée dans NTFS. Pour cette raison, les ACL des systèmes de fichiers NTFS sont simplement ignorées.+<note tip> 
 +Si vous êtes intéressé·e par le partage d'une partition Ubuntu / macOS / Windows, consultez aussi [[:partition_d_échange_de_fichiers_entre_ubuntu_mac_et_windows|cette page]]. 
 +</note>
  
 +<mobiletable>
 +^ Nom du système de fichiers ^ Taille maximale d'un fichier ^ Taille maximale d'une partition ^ Journalisée ? ^ Gestion des droits d'accès ? ^ Notes ^
 +^ Linux / UNIX ^^^^^^
 +^ **[[:Btrfs]]** | 16 Eio | 16 Eio | CoW | Oui | Fonction de //snapshot// et de sauvegarde incrémentale.\\ Son support est intégré au [[:kernel|noyau Linux]]. Le paquet ''[[apt>btrfs-tools]]'' fournit des outils supplémentaires pour la gestion des partitions ou des //volumes// (formatage, etc.). |
 +^ **[[:ext4]]** | 16 Tio | 1 Eio   | Oui | Oui  | **ext4** est le successeur du système de fichiers **ext3**. C'est le format le plus couramment utilisé pour déployer Linux sur un ordinateur personnel actuellement. |
 +^ **[[wpfr>ext3]]** | 2 Tio  | 32 Tio  | Oui | Oui  | **ext3** est essentiellement **ext2** avec la gestion de la journalisation. Il est possible de [[http://qliu.free.fr/Linux/ext3.html#s4|passer une partition formatée en ext2 vers le système de fichiers ext3]] (et //vice versa//) sans formatage. |
 +^ **[[wpfr>ext2]]** | 2 Tio  | 32 Tio  | Non | Oui  | //Extended File System// est le système de fichiers natif de Linux.  En ses versions 1 et 2, on peut le considérer comme obsolète, car il ne dispose pas de la journalisation. **ext2** peut tout de même s'avérer utile sur des disquettes 3½ et sur les autres supports dont l'espace de stockage est particulièrement restreint, car aucun espace ne doit être réservé à un journal. |
 +^ **[[wpfr>XFS]]** | 16 Eio | 8 Eio | Oui | Oui | **XFS** est un système créé par Silicon Graphics en 1993, et libre depuis 1999. Il a été régulièrement mis à jour depuis, mais n'intègre pas de fonctionnalité de compression ni de chiffrement. C'est une alternative encore utilisée par certaines [[:distributions]] à **ext4**, en particulier sur [[:NAS]].\\ Son support est intégré au [[:kernel|noyau Linux]]. Le paquet ''[[apt>xfsprogs]]'' fournit des outils supplémentaires pour la gestion des partitions. |
 +^ **[[wpfr>ZFS]]** | 16 Eio | 16 Eio | CoW | Oui | Fonction de //snapshot// et de sauvegarde incrémentale. Fonctionnalités proches de **[[:Btrfs]]** mais un problème de licence empêche son intégration native au [[:kernel|noyau Linux]].\\ Le paquet ''[[apt>zfs-dkms]]'' permet donc à Linux d'y accéder en lecture et écriture. Le paquet ''[[apt>zfsutils-linux]]'' fournit des outils supplémentaires pour la gestion des partitions et des //volumes//. |
 +^ **[[https://github.com/opendedup/sdfs|sdfs]]** | | | | | Système de fichiers orienté infrastructure //[[:cloud]]// supportant la déduplication. |
 +^ **[[wpfr>F2FS]]** | 64 Tio  | 16 Tio | CoW | Oui | **F2FS** est un système créé en 2013 par Samsung et parfois utilisé sur [[:Android]]. Il est conçu pour les mémoires flash rudimentaires (tels que les premiers [[:SSD]], eMMC et cartes SD), mais les fonctionnalités spécifiques qu'il propose sont désormais implémentées dans les //firmwares// des SSD (//[[:ssd#egalisation_de_l_usure|wear levelling]]//), donc inutiles dans ce contexte. Il permet le chiffrement. Son support est intégré au [[:kernel|noyau Linux]], mais il est moins fiable que **ext4**. En outre les partitions ne peuvent pas être réduites.\\ Le paquet ''[[apt>f2fs-tools]]'' fournit des outils pour la gestion des partitions. |
 +^ **[[wpfr>ReiserFS]]** | 8 Tio | 16 Tio | Oui | Oui  | Initialement développé par Hans Reiser et la société //Namesys//, **ReiserFS** était particulièrement reconnu pour bien gérer les fichiers de moins de 4 ko.\\ Le projet est aujourd'hui **abandonné**.((Suite à la condamnation de Hans Reiser pour le meurtre de sa femme, personne n'a poursuivi le développement de **ReiserFS** et la société //Namesys// n'existe plus.)) |
 +^ Microsoft ^^^^^^
 +^ **[[:exFAT]]** | 16 Tio | 512 Tio | Non | Non  | Ce système de fichiers a été développé par Microsoft.\\ Le support d'**exFAT** est inclus dans le [[:kernel|noyau Linux]], et en autorise la lecture et l'écriture. Le paquet ''[[apt>exfatprogs]]'' fournit les outils nécessaires à la gestion des partitions.  |
 +^ **[[wpfr>NTFS]]** | 16 Tio | 256 Tio | Oui | Oui* | Ce système de fichiers a aussi été développé par Microsoft, et il reste assez mal documenté.\\ Le pilote ''[[:tutoriel:ntfs|ntfs-3g]]'' pour [[:FUSE]] en autorise l'accès en lecture et écriture sur Linux (il est installé par défaut sur Ubuntu). |
 +^ **[[wpfr>FAT32]]** | 4 Gio  | 8 Tio   | Non | Non  | Ce système de fichiers, aussi créé par Microsoft, est une évolution de **[[wpfr>File_Allocation_Table|FAT]]**.\\ Le support de **FAT32** est inclus dans le [[:kernel|noyau Linux]], et en autorise la lecture et l'écriture. |
 +^ **[[wpfr>File_Allocation_Table|FAT]]** | 2 Gio | 2 Gio | Non | Non | Développé par Microsoft pour MS-DOS, ce système de fichiers se rencontre très rarement aujourd'hui. Le paquet ''[[apt>mtools]]'' fournit des outils pour la gestion des partitions. |
 +^ Apple ^^^^^^
 +^ **[[wpfr>APFS]]** | 8 Eio  | 8 Eio   | CoW | Oui* | Développé par Apple pour ses systèmes macOS, iOS, tvOS et watchOS, remplace HFS+.\\ Le paquet ''[[apt>apfs-dkms]]'' permet à Linux d'y accéder en lecture et écriture. Le paquet ''[[apt>apfsprogs]]'' fournit des outils supplémentaires. |
 +^ **[[wpfr>HFS+]]** | 8 Eio  | 8 Eio   | Oui | Oui  | Utilisé par macOS à partir de la version 8.1 (1997) et encore largement utilisé.\\ Le paquet ''[[apt>hfsplus]]'' permet à Linux d'y accéder en lecture et écriture. Le paquet ''[[apt>hfsprogs]]'' fournit des outils supplémentaires (formatage, réparation). |
 +^ **[[wpfr>HFS]]** | 2 Gio  | 2 Tio   | Non | Non* | Système Apple //a priori// oublié des années 80-90.\\ Le paquet ''[[apt>hfsutils]]'' permet encore de l'utiliser. |
 +^ Universel ^^^^^^
 +^ **[[wpfr>Universal_Disk_Format|UDF]]** | 16 Tio  | 16 Tio | Non | Oui | Ce format est le successeur du format **[[wpfr>ISO 9660]]** utilisé pour les lecteurs optique (CD, DVD), mais il peut aussi être utilisé sur n'importe quel autre support de stockage.\\ Il est compatible avec tous les systèmes et son support est intégré au [[:kernel|noyau Linux]] qui en autorise la lecture et l'écriture. Le paquet ''[[apt>udftools]]'' fournit des outils supplémentaires nécessaires à la gestion des partitions. |
 +</mobiletable>
  
-==== Systèmes de fichiers exFAT ==== +<note> 
-Pour les problèmes liés à ce type de système de fichier voir la page [[:exfat|dédiée]]. +  * Gio Gibioctet (1024 Mio)((Alors que  1 ko 1000 octets, 1 Kio 1024 octets, unité plus pratique avec les puissances de 2. Pour plus d'informations voir [[#qu_est-ce_qu_un_systeme_de_fichiers|note ci-dessus]].)) 
-==== Systèmes de fichiers ZFS ==== +  * Tio Tébioctet (1024 Gio) 
-**Ce système de fichier est maintenant géré de  façon standard avec la version 20.04.0**+  * Pio Pébioctet (1024 Tio) 
 +  * Eio = Exbioctets (1024 Pio)
  
-Il n'y a pas encore une documentation dédiée.   En attendant,  voila un avis: +  * CoW = //[[#Copy on Write]]// 
-En une seule commande on dispose d'un équivalent RAID0 ou RAID1 dans lequel il suffit d'écrire car le montage se fait dès la création.+</note>
  
-Préparation:  Créer au moins deux partitions de taille identique formatées ou non  sur un disque ou deux disques.  Ce n'est pas limité à deux disques!+==== FAT32 ====
  
-Fabrication en mode sécurisé avec par exemple cette commande+Caractéristiques 
-<code bash>sudo zpool create -f pool-test mirror  /dev/sda16 /dev/sda17  </code>+  * Compatible Linux macOS Windows 
 +  * On ne peut pas installer Linux dessus à cause du manque de gestion des droit d'accès 
 +  * Pas compatible posix : on ne peut pas définir un fichier comme exécutable, changer les droits par user/groupe/autres. Ceci est fait pour tous les fichiers de la partition lors du montage.
  
-- Il faut laisser l'option **-f**  si les partitions avaient été formatées sinon elle est inutile.+<note>Voir aussi le chapitre //[[:partition_d_echange_de_fichiers_entre_ubuntu_mac_et_windows#FAT32]]//.</note>
  
 +==== NTFS ====
  
-- Il faut supprimer l'option **mirror** si on veut du  non sécurisé.+Caractéristiques : 
 +  Format fermé Microsoft 
 +  Compatible : Linux (pilote développé par [[wpfr>rétro-ingénierie]]) / macOS / Windows 
 +  On ne peut pas installer Linux dessus à cause du manque de gestion des [[:droits|permissions]]. 
 +  Pas simplement compatible [[wpfr>POSIX]] : on ne peut pas définir un fichier comme exécutable, ou changer les [[:permissions|droits]] par utilisateur / groupe / autres. Ceci est fait pour tous les fichiers de la partition lors du montage.
  
 +Sous Microsoft Windows, le système de fichiers NTFS gère les droits d'accès basé sur une liste de contrôle ([[:ACL]]) qui n'est pas prise en compte sous Linux. Linux peut aussi prendre en charge une forme d'[[:ACL]], mais celle-ci est différente de celle implémentée par NTFS. Pour cette raison, les ACL des systèmes de fichiers NTFS sont simplement ignorées.
  
-Il ne reste plus qu'à l'utiliser par exemple: +<note>Voir aussi le chapitre //[[:partition_d_echange_de_fichiers_entre_ubuntu_mac_et_windows#NTFS]]//.</note>
-<code bash>sudo mkdir  /pool-test/MyDATA +
-sudo cp -Rv /DATA/R*/*  /pool-test/MyDATA </code>+
  
 +==== exFAT ====
  
-Et suive le taux de remplissage avec la commande standard " **df -h** " ou la commande dédiée. +Pour les problèmes liés à ce type de système de fichier voir la [[:exfat|page dédiée]].
-<code bash>zpool list +
-NAME        SIZE  ALLOC   FREE  CKPOINT  EXPANDSZ   FRAG    CAP  DEDUP    HEALTH  ALTROOT +
-pool-test    61G  36,8G  24,2G        -             0%    60%  1.00x    ONLINE  -+
  
-df -h | grep pool +<note>Voir aussi le chapitre //[[:partition_d_echange_de_fichiers_entre_ubuntu_mac_et_windows#exFAT]]//.</note>
-pool-test           60G     37G   23G  63% /pool-test </code>+
  
-Si l'ordinateur s'arrête, il faut remonter le pool avec cette commande +==== ZFS ====
-<code bash>sudo zpool import pool-test</code> +
-Un autre exemple compatible avec les applications en snap +
-<code bash>sudo zpool create -f -m   /media/ZFS -o feature@lz4_compress=enabled MesDonneesPersonnelles /dev/disk/by-label/ZFS +
-df -htzfs +
-Sys. de fichiers       Taille Utilisé Dispo Uti% Monté sur +
-MesDonneesPersonnelles   4,4G    128K  4,4G   1% /media/ZFS </code>+
  
 +**[[:ZFS]]** est un système moderne et puissant. Il fournit des fonctionnalités plus avancées que **[[:Btrfs]]**. Il s'avère aussi plus gourmand en ressources (son cache en particulier est stocké en mémoire vive). Il est particulièrement adapté aux infrastructures de stockage complexes et professionnelles (de type //[[wpfr>Grappe_de_serveurs|clusters]]//), et devrait probablement être réservé à cet usage.\\ Si sa fonctionnalité de //[[wpfr>Instantané_(informatique)|snapshot]]// peut //a priori// le rendre intéressant pour un particulier bricoleur, celui-ci devrait sans doute plutôt s'orienter vers **[[:Btrfs]]**, qui reste un peu plus accessible.
  
 +Il est //open source// avec un bon support [[wpfr>Berkeley_Software_Distribution|*BSD]]. Apple a compté l'utiliser pour macOS avant de changer d'avis.
  
-  +Il est reconnu nativement par Ubuntu, et supporté grâce à **[[https://zfsonlinux.org/|OpenZFS]]**.
-  +
-Pour plus de détails voir un site anglais: https://ubuntu.com/tutorials/setup-zfs-storage-pool#1-overview +
- +
- +
- +
- +
- +
- +
-                  +
-                  +
-      +
-    +
-  +
  
 ===== Quelques commandes utiles ===== ===== Quelques commandes utiles =====
  
-Afficher le système de fichier d'une partition +Afficher le système de fichier d'une [[:partitions|partition]] 
-   partition montée +  toutes les partitions :<code>lsblk -fe7</code>(colonnes ''FSTYPE'' et ''FSVER'') 
- +  * partition quelconque (nécessite que le paquet ''[[apt>parted]]'' soit installé et que le disque ''/dev/sda'' existe) :<code>sudo parted /dev/sda print all</code>
-       df -h +
- +
-   * partition quelconque (nécessite que le paquet **parted** soit installé et que le disque /dev/sda existe) +
- +
-       sudo parted /dev/sda print all   +
  
-===== Plus d'informations =====+===== Voir aussi =====
  
-  * [[wp>Comparison_of_file_systems|Wikipedia : Comparison of File Systems]] (en) +  * **(//en//)** [[wp>Comparison_of_file_systems|Wikipedia : Comparison of File Systems]]  
-  * [[wpfr>Système de fichiers]] (fr) +  * [[wpfr>Système de fichiers]] 
-  * [[wpfr>Ext2]][[wpfr>Ext3]], [[wpfr>Ext4]], [[wpfr>ReiserFS]] (fr) +  * [[wpfr>Liste des systèmes de fichiers]] 
-  * [[http://linuxgazette.net/122/TWDT.html#piszcz| Comparaison de performance]] (en) +  * [[wpfr>ext2]], [[wpfr>ext3]], [[wpfr>ext4]]
-  * [[http://plfnicolarius.free.fr/tutoriel_logiciel_linux_verifier_systeme_de_fichiers.php|Vérifier son système de fichiers sous Linux]] +
-  * [[https://www.opendedup.org/|OpenDedup]] (SDFS) : système de fichier supportant la déduplication.+
   * [[:chemins|Les chemins d'accès sous Linux]]   * [[:chemins|Les chemins d'accès sous Linux]]
-  * [[partition_d_echange_de_fichiers_entre_ubuntu_mac_et_windows|Gérer une partition d'échange de fichier entre Ubuntu / Mac / Windows]]+  * [[:partition_d_echange_de_fichiers_entre_ubuntu_mac_et_windows|Gérer une partition d'échange de fichier entre Ubuntu / macOS / Windows]]
  
------- +---- 
-//Contributeurs: [[utilisateurs:AlexandreP]],[[utilisateurs:fnx]] \\ +//[[:Contributeurs]] : [[:utilisateurs:AlexandreP]], [[:utilisateurs:fnx]][[:utilisateurs:krodelabestiole]].//
-Basé sur [[http://plfnicolarius.free.fr/tutoriel_logiciel_linux_verifier_systeme_de_fichiers.php|Linux Filesystems Explained]]//+