Ceci est une ancienne révision du document !
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 .
Voir le benchmark des systèmes de fichier ext.
Nouveautés
- 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 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 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
- Avoir le support de l'ext4 dans le noyau (Ubuntu Jaunty ou noyau compilé à la main)
- 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. Mais ⇒
http://ext4.wiki.kernel.org/index.php/Considerations_when_creating_ext3_filesystems#Inode_Size
Convertir une partition ext3 en ext4
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:
# tune2fs -O extents,uninit_bg,dir_index /dev/sda1 # fsck -pf /dev/sda1
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 :
# grub-install /dev/sda
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 :
# sudo dd if=/dev/sdxY of=~/grub.bs bs=512 count=1
où sdxY est la partition sur laquelle est installé Ubuntu.
# mkdir /media/windows # mount -t ntfs-3g /dev/sdwZ /media/windows
où sdwZ est la partition sur laquelle est installée Windows.
# cp /media/windows/grub.bs /media/windows/grub.bs.bak # cp ~/grub.bs /media/windows/grub.bs # umount /dev/sdwZ
Grub Error 13 / Grub Error 24
Si lors d'un futur redémarrage une de ces erreurs apparaît :
Error 13: Invalid or unsupported executable format
ou
Error 24: Cannot boot without kernel loaded
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 :
# mkdir /media/ubuntu # mount -t ext4 /dev/sda1 /media/ubuntu # mount -t proc proc /media/ubuntu/proc # mount -t sysfs sys /media/ubuntu/sys # mount -o bind /dev /media/ubuntu/dev # chroot /media/ubuntu # grub-install /dev/sda
Jaunty et problèmes
Liens
- La page officielle du projet ext4: http://ext4.wiki.kernel.org/index.php/Main_Page
- Page wikipedia: ext4
Contributeurs: Fabien26 Nicolarius.