| Les deux révisions précédentesRévision précédenteProchaine révision | Révision précédente |
| ext4 [Le 29/11/2009, 21:12] – wido | ext4 [Le 14/04/2026, 22:59] (Version actuelle) – màj lien fstab krodelabestiole |
|---|
| {{tag>systeme_de_fichiers}} | {{tag>système partitions}} |
| ---- | |
| ====== Le système de fichiers ext4 ====== | ====== Le système de fichiers ext4 ====== |
| |
| Ext4 est une évolution du système de fichier ext3, qui est actuellement le système de fichier le plus utilisé sous Linux. Il présente de nombreux avantages et optimisations par rapport à l'ancienne version, tout en assurant une rétro-compatibilité. Ext4 vient d'être déclaré "stable", il est possible de l'utiliser dans la 9.04 et est le système de fichier par défaut sous 9.10 . | Le [[:système de fichiers]] **[[wpfr>ext4]]** est le système de fichiers le plus utilisé sous Linux, et le [[:système de fichiers]] par défaut d'Ubuntu. |
| |
| Voir [[benchmark#systeme_de_fichier_ext_contre_les_autres|le benchmark des systèmes de fichier ext]]. | Voir [[:benchmark#systeme_de_fichier_ext_contre_les_autres|le benchmark des systèmes de fichiers ext]]. |
| |
| <note help> | Outre le fait qu'il puisse gérer les volumes d'une taille allant jusqu'à un exbioctet (2<sup>60</sup> octets), la fonctionnalité majeure de **ext4** est l'allocation par //extent// qui permettent la pré-allocation d'une zone contiguë pour un fichier, pour minimiser la fragmentation. L'option //extent// est active par défaut depuis le noyau Linux 2.6.23 ; avant cela, elle devait être explicitement indiquée lors du montage de la partition. |
| Si vous souhaitez tout de même l'utiliser sur une version plus ancienne, il vous faudra [[kernel_2.6.29|installer un autre kernel manuellement]] ou [[tutoriel/comment_compiler_un_kernel_de_kernel.org|compiler votre noyau vous même !]] (déconseillé pour l'utilisateur lambda) | |
| </note> | |
| |
| ===== Nouveautés ===== | Le système de fichiers **ext4** a une compatibilité ascendante avec **ext3**. C'est-à-dire qu'une partition **ext3** peut toujours être montée comme **ext4** (en utilisant le type de système de fichiers **ext4** lors du montage). L'inverse est possible, à condition que la partition **ext4** n'ait jamais utilisé l'allocation par //extents// pour enregistrer des fichiers, mais l'allocation binaire comprise par **ext3**. Cette capacité de **ext4** d'utiliser les formats de **ext3** existe pour faciliter la conversion des partitions **ext3** vers **ext4**. |
| |
| * Ext4 a une option : **extents** qui permet de limiter grandement et automatiquement la fragmentation du système de fichiers. | * **ext4** a une option **//extents//** qui permet de limiter grandement et automatiquement la fragmentation du système de fichiers. |
| * Ext4 défragmente les fichiers en arrière-plan en utilisant les ressources disponibles. | * **ext4** présente de meilleure performances que **ext4**, **ReiserFS** et **XFS**. |
| * Ext4 est nativement présent depuis la distribution Fedora 9 et son utilisation est considérée comme stable depuis la version 2.6.28 du noyau Linux. | * **ext4** peut se transformer en système de fichiers non journalisé, comme **ext2**. |
| * Ext4 présente des performances en hausse par rapport à Ext3, ReiserFS 3 et XFS comme en témoigne ce bench de Phoronix [[http://www.phoronix.com/scan.php?page=article&item=ext4_benchmarks&num=1 | |
| ]] | |
| |
| ===== Prérequis pour migrer vers l'ext4 ===== | ===== Accessibilité depuis Windows ===== |
| |
| * Avoir le support de l'ext4 dans le noyau (Ubuntu Jaunty ou noyau compilé à la main) | <note>Voir le tutoriel //[[:tutoriel:|Comment accéder à ses partitions d'Ubuntu sous Windows]]//. |
| * e2fsprogs 1.41.x (Ubuntu Intrepid) | |
| * Grub2 SVN au moins daté du 13 Juillet 2008 (à moins que votre /boot ne soit en ext3) ou le grub de Ubuntu Jaunty | |
| * **Avoir fait une sauvegarde!** | |
| * Avoir déjà une partition ext3 avec une taille d'inodes de 256 octets (pour vérifier utilisez la commande **sudo tune2fs -l /dev/sda1|grep "Inode size"** ) (pensez à remplacer sda1 par la partition ext3 correspondante le cas échéant, dans la commande précédente) | |
| |
| //Dans mon cas, mon disk de données (/mount/disk/) avait des inodes de 128 octets, la conversion en ext4 avec la commande ci-dessous n'a pas posé de problème.// | Voir aussi 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> |
| Mais => | |
| |
| http://ext4.wiki.kernel.org/index.php/Considerations_when_creating_ext3_filesystems#Inode_Size | ===== Désactiver la journalisation ===== |
| |
| | Pour désactiver le journal d'**ext4** entrez : |
| | <code>sudo tune2fs -O^has_journal /dev/sdXX |
| | sudo e2fsck -f -v -C0 /dev/sdXX</code> |
| | en remplaçant ''sdXX'' par la [[:partitions#designation_des_partitions_dans_ubuntu|partition concernée]]. |
| |
| ===== Convertir une partition ext3 en ext4 ===== | Il est également possible d'uniquement désactiver la mise à jour de la journalisation en modifiant la configuration sur ''[[:fstab|/etc/fstab]]'', en ajoutant des options aux partitions : voir [[https://lea-linux.org/documentations/Fstab|Fstab]] sur Lea Linux. |
| |
| Si vous avez tout ceci de prêt, vous pouvez lancer un LiveCD style Ubuntu, PartedMagic ou démarrer en recovery mode et choisir l'option shell root sans réseau. Ensuite tapez la commande: | ===== Récupérer de l'espace disque ===== |
| |
| <code>tune2fs -O extents,uninit_bg,dir_index /dev/sda1 | Par défaut une partition **ext4** va se réserver 5% d'espace pour ''[[:utilisateur#comptes_des_usagers_compte_superutilisateur_et_comptes_systemes|root]]'' afin d'éviter que le système ne tombe en panne parce qu'un utilisateur a consommé toute la place. Si votre stockage est restreint cela ne comporte guère d'inconvénient, mais si vous avez une partition de plusieurs To, la perte de place peut être importante.\\ |
| fsck -pf /dev/sda1</code> | [[:partitions#remedier_a_l_erreur_indiquant_qu_il_n_y_a_plus_assez_d_espace_sur_le_disque|Récupérer de l'espace disque]] |
| | |
| En remplaçant **/dev/sda1** par votre partition ext3. N'oubliez pas de modifier le fichier **/etc/fstab** et de changer **ext3** par **ext4**. Notez que vous pouvez tout à fait le faire avant de convertir votre partition, le pilote **ext4** est compatible avec l'ext3. | |
| N'oubliez pas de faire des sauvegardes! On ne vous le répétera jamais assez! | |
| Une fois la partition root "/" convertie **réinstaller grub** : | |
| <code>grub-install /dev/sda</code> | |
| | |
| | |
| <note warning>Pour les **ordinateurs tatoués** et/ou qui s'[[http://doc.ubuntu-fr.org/tutoriel/comment_amorcer_ubuntu_avec_ntldr|amorcent en utilisant le ntldr]] : | |
| | |
| Réinstaller le grub sur la partition où a été installé Ubuntu (par exemple, /dev/sda2), sinon, vous risquez de perdre le mbr. | |
| | |
| Ne pas oublier de **recopier** le fichier d'amorce dans la partition windows avant de faire le reboot : | |
| <code>sudo dd if=/dev/sdxY of=~/grub.bs bs=512 count=1</code> | |
| où sdxY est la partition sur laquelle est installé Ubuntu. | |
| <code>mkdir /media/windows | |
| mount -t ntfs-3g /dev/sdwZ /media/windows</code> | |
| où sdwZ est la partition sur laquelle est installée Windows. | |
| <code>cp /media/windows/grub.bs /media/windows/grub.bs.bak | |
| cp ~/grub.bs /media/windows/grub.bs | |
| umount /dev/sdwZ</code> | |
| </note> | |
| | |
| ==== Grub Error 13 / Grub Error 24 ==== | |
| |
| | ===== Problèmes courants ===== |
| |
| | ==== GRUB ==== |
| |
| Si lors d'un futur redémarrage une de ces erreurs apparaît : | Si lors d'un futur redémarrage une de ces erreurs apparaît : |
| | Error 13: Invalid or unsupported executable format |
| <code>Error 13: Invalid or unsupported executable format</code> | |
| ou | ou |
| | Error 24: Cannot boot without kernel loaded |
| |
| <code>Error 24: Cannot boot without kernel loaded</code> | Cela signifie que [[:GRUB]] ne reconnaît pas votre partition **ext4**. Redémarrez avec un //[[:live USB]]// et utilisez ''[[:chroot]]'' : |
| | |
| Cela signifie que vous n'avez pas réinstallé grub après une conversion, ou que vous avez installé grub depuis une installation d'Intrepid qui a été ensuite mise à jour vers Jaunty. Dans les deux cas, grub ne reconnaît pas votre partition ext4. Redémarrez avec un Live CD de Jaunty et entrez ces commandes : | |
| <code>mkdir /media/ubuntu | <code>mkdir /media/ubuntu |
| mount -t ext4 /dev/sda1 /media/ubuntu | mount -t ext4 /dev/sda1 /media/ubuntu |
| grub-install /dev/sda | grub-install /dev/sda |
| </code> | </code> |
| | en adaptant si nécessaire ''[[:partitions#designation_des_partitions_dans_ubuntu|/dev/sda]]''. |
| | ===== Voir aussi ===== |
| |
| | * **(//en//)** la [[https://docs.kernel.org/admin-guide/ext4.html|documentation officielle]] du système **ext4** |
| <note tip>A faire aussi si vous avez des messages d'erreur lors de l'installation du grub.</note> | * [[:système de fichiers]] |
| | * [[wpfr>ext4]] sur Wikipédia |
| <note tip>Utilisez bien un Live CD de Jaunty, les versions de grub livrées avec les distributions antérieures ne gèrent pas l'ext4.</note> | |
| | |
| ===== Jaunty et problèmes ===== | |
| | |
| <note warning>A noter qu'il subsiste encore des bugs concernant **ext4 dans ubuntu 9.04 - Jaunty avec le kernel 2.6.28**, un connaisseur de 'linux' s'en sortira, mais pour l'instant il est déconseillé pour un 'user basic' de passer d'ext3 à ext4 avec les bugs mentionnés. Il est possible [[kernel_2.6.29|de passer au kernel 2.6.29 (suivre l'aide)]].( Bug : 2.6.28 Voir la [[http://www.ubuntu.com/getubuntu/releasenotes/904#Other%20known%20issues|Liste des bugs de Jaunty]], dont le [[https://bugs.launchpad.net/ubuntu/+source/linux/+bug/330824|freeze de l'interface quand suppression de plusieurs fichiers]] dans des conditions spécifiques )</note> | |
| | |
| | |
| ===== Liens ===== | |
| | |
| * La page officielle du projet ext4: [[http://ext4.wiki.kernel.org/index.php/Main_Page]] | |
| * Page wikipedia: [[wpfr>ext4]] | |
| |
| ---- | ---- |
| //Contributeurs: [[utilisateurs:Fabien26]] [[utilisateurs:Nicolarius]].// | //Contributeurs: [[:utilisateurs:Fabien26]], [[:utilisateurs:Nicolarius]], [[:utilisateurs:Vincent85]], [[:utilisateurs:krodelabestiole]].// |