Solution 1 :
Ajouter le drapeau -E lazy_itable_init
Voici ce que dit la page de manuel :
Si elle est activée et que la fonctionnalité uninit_bg est activée, la table d'inodes ne sera pas entièrement initialisée par mke2fs. Cela accélère sensiblement l'initialisation du système de fichiers, mais cela nécessite que le noyau termine l'initialisation du système de fichiers en arrière-plan lorsque le système de fichiers est monté pour la première fois. Si la valeur de l'option est omise, la valeur par défaut est 1 pour activer l'initialisation différée de la table d'inodes.
Solution 2 :
Réponse stricte
Solutions comme -E lazy_itable_init
ne changez pas le résultat, accélérez seulement le processus. C'est ce qui a été explicitement demandé, mais dans de nombreux cas, les gens ont besoin de plus.
Bonus supplémentaire
Dans la plupart des cas, vous voulez en fait des options qui correspondent à vos habitudes d'utilisation et qui non seulement accélèrent la création du système de fichiers, mais permettent également une utilisation plus rapide et plus d'espace utilisable.
Je viens de faire un essai. Même sans utiliser -E lazy_itable_init
, les options ci-dessous accélèrent le temps de création d'un système de fichiers de 2 To de 16 minutes 2 secondes à 1 minute 21 secondes (noyau 3.5.0 64 bits sur Intel i7 2,2 GHz, disque de 2 To sur connexion USB2 -- SATA serait probablement plus rapide).
Pour un système de fichiers qui contiendra des fichiers volumineux, j'utilise cette combinaison :
mkfs.ext3 /dev/sdXX -O sparse_super,large_file -m 0 -T largefile4
où -T largefile4
sélectionne les options dans /etc/mke2fs.conf
qui contiennent généralement quelque chose comme :
inode_ratio = 4194304
blocksize = -1
Faites un man mke2fs
pour plus de détails sur chacune de ces options.
Voici des extraits pertinents :
sparse_super
Create a filesystem with fewer superblock backup copies (saves space on large filesystems).
large_file
Filesystem can contain files that are greater than 2GB. (Modern kernels set this feature automatically
when a file > 2GB is created.)
-i bytes-per-inode
Specify the bytes/inode ratio. mke2fs creates an inode for every bytes-per-inode bytes of space on the disk. The
larger the bytes-per-inode ratio, the fewer inodes will be created. This value generally shouldn't be smaller than
the blocksize of the filesystem, since in that case more inodes would be made than can ever be used. Be warned that
it is not possible to expand the number of inodes on a filesystem after it is created, so be careful deciding the
correct value for this parameter.
-m 0
dit seulement de ne pas réserver 5% pour root, ce qui est correct pour un système de fichiers de données (pas boot/root). 5% d'un disque de 2 To signifie 100 Go. C'est une différence assez importante.
Solution 3 :
La valeur par défaut est un formatage rapide ; la mise en place des structures pour un volume ext* prend beaucoup plus de temps que pour un volume NTFS, car il y en a plus. Vous pouvez réduire le nombre de superblocs, mais même cela ne va pas plus loin.
Solution 4 :
Si vous stockez principalement des fichiers plus volumineux, vous pouvez augmenter le nombre d'octets par inode, diminuant ainsi le nombre d'inodes créés. Cela peut considérablement accélérer le temps de création.