ext3 -> ext4

Après une migration vers Wheezy j’ai modifié le fichier /etc/fstab en remplaçant ext3 par ext4.
Je consulte /etc/mtab et là le /home est bien monté avec ext4 mais pas / qui est toujours monté avec ext3.
Je précise que je n’ai pas encore converti mes systèmes de fichiers (/home ou /) ext3 en ext4.
Juste pour savoir si vous avez le même comportement.

Je doute que le fait de modifier le système de fichiers seulement dans fstab soit suffisant ?

Non, en effet. En montant un système de fichiers ext2 ou ext3 en tant qu’ext4, on profite juste de certaines améliorations de performances du pilote ext4. D’autre part le système de fichiers racine est déjà monté en ext3 lors de la lecture de fstab, or on peut modifier les options d’un système de fichiers déjà monté mais je doute qu’on puisse modifier son type. Il faut par exemple ajouter l’option rootfstype=ext4 dans la ligne de commande passée au noyau passée par le chargeur d’amorçage (grub ou lilo).

Pour convertir le système de fichiers lui-même, il faut utiliser tune2fs, lorsque la partition n’est pas montée. Je ne détaille pas, on trouve facilement la procédure sur le web. Par contre les fichiers existants ne profiteront pas des nouvelles fonctionnalités d’ext4 comme les extents.

Si /boot est sur la racine il faudra aussi réinstaller le chargeur d’amorçage (avec grub-install, pour grub) afin que celui-ci installe le pilote approprié.

Éditer /etc/fstab en remplaçant ext3 par ext4 si tu n’as pas converti ou formaté les partitions est une opération vaine. L’édition de /etc/fstab n’ a pas pour effet de convertir ou formater les partitions.
Réussir à monter une partition ext3 bien que définie en tant qu’ext4 est normal.

$ cat /usr/src/linux-3*/fs/ext4/Kconfig

[code] config EXT4_FS
tristate "The Extended 4 (ext4) filesystem"
select JBD2
select CRC16
select CRYPTO
select CRYPTO_CRC32C
help
This is the next generation of the ext3 filesystem.

  Unlike the change from ext2 filesystem to ext3 filesystem,
  the on-disk format of ext4 is not forwards compatible with
  ext3; it is based on extent maps and it supports 48-bit
  physical block numbers.  The ext4 filesystem also supports delayed
  allocation, persistent preallocation, high resolution time stamps,
  and a number of other features to improve performance and speed
  up fsck time.  For more information, please see the web pages at
  http://ext4.wiki.kernel.org.

  The ext4 filesystem will support mounting an ext3
  filesystem; while there will be some performance gains from
  the delayed allocation and inode table readahead, the best
  performance gains will require enabling ext4 features in the
  filesystem, or formatting a new filesystem as an ext4
  filesystem initially.

  To compile this file system support as a module, choose M here. The
  module will be called ext4.

  If unsure, say N.

[/code]

Remarquons aussi l’option du noyau EXT4_USE_FOR_EXT23 qui permet de compiler le seul support du système de fichiers ext4 pour ext/ext3/ext4 au lieu de compiler le support d’ext2/ext3/ext4 séparément. Grâce à cette option, ext2/ext3/ext4 sont regroupés sous la coupe d’ext4.

config EXT4_USE_FOR_EXT23 bool "Use ext4 for ext2/ext3 file systems" depends on EXT4_FS depends on EXT3_FS=n || EXT2_FS=n default y help Allow the ext4 file system driver code to be used for ext2 or ext3 file system mounts. This allows users to reduce their compiled kernel size by using one file system driver for ext2, ext3, and ext4 file systems.

Merci pour vos réponses. Je ne savais pas qu’une fois le système converti (extents, …) il fallait réinstaller grub.