Soluzione 1:
Aggiungi il contrassegno -E lazy_itable_init
Ecco cosa dice la pagina man:
Se abilitato e la funzione uninit_bg è abilitata, la tabella inode non sarà completamente inizializzata da mke2fs. Ciò accelera notevolmente l'inizializzazione del filesystem, ma richiede che il kernel finisca di inizializzare il filesystem in background quando il filesystem viene montato per la prima volta. Se il valore dell'opzione viene omesso, il valore predefinito è 1 per abilitare l'inizializzazione pigra della tabella degli inode.
Soluzione 2:
Risposta rigorosa
Soluzioni come -E lazy_itable_init
non cambiare il risultato, accelera solo il processo. Questo è ciò che è stato chiesto esplicitamente, ma in molti casi le persone hanno bisogno di più.
Bonus extra
Nella maggior parte dei casi, desideri effettivamente alcune opzioni che corrispondano ai tuoi modelli di utilizzo e non solo accelerino la creazione del filesystem, ma consentano anche un utilizzo più rapido e più spazio utilizzabile.
Ho appena fatto una prova. Anche senza usare -E lazy_itable_init
, le opzioni seguenti velocizzano il tempo di creazione di un file system da 2 TB da 16 minuti e 2 secondi a 1 minuto e 21 secondi (kernel 3.5.0 64 bit su Intel i7 2,2 GHz, disco da 2 TB su connessione USB2 -- SATA sarebbe probabilmente più veloce).
Per un filesystem che conterrà file di grandi dimensioni, utilizzo questa combinazione:
mkfs.ext3 /dev/sdXX -O sparse_super,large_file -m 0 -T largefile4
dove -T largefile4
sceglie le opzioni in /etc/mke2fs.conf
che generalmente contengono qualcosa come:
inode_ratio = 4194304
blocksize = -1
Fai un man mke2fs
per i dettagli su ciascuna di queste opzioni.
Ecco alcuni estratti rilevanti:
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
dice solo di non riservare il 5% per root, il che va bene per un filesystem di dati (non boot/root). Il 5% di un disco da 2 TB significa 100 GB. Questa è una differenza piuttosto significativa.
Soluzione 3:
L'impostazione predefinita è un formato rapido; l'impostazione delle strutture per un volume ext* richiede molto più tempo che per un volume NTFS, poiché ce ne sono di più. Puoi ridurre il numero di superblocchi, ma anche questo va solo così lontano.
Soluzione 4:
Se archivierai per lo più file più grandi, puoi aumentare il numero di byte per inode, diminuendo così il numero di inode creati. Questo può velocizzare notevolmente il tempo di creazione.