Řešení 1:
Přidejte příznak -E lazy_itable_init
Zde je to, co říká manuálová stránka:
Pokud je povoleno a je povolena funkce uninit_bg, tabulka inodů nebude plně inicializována pomocí mke2fs. To výrazně zrychluje inicializaci souborového systému, ale vyžaduje, aby jádro dokončilo inicializaci souborového systému na pozadí při prvním připojení souborového systému. Pokud je hodnota volby vynechána, její výchozí hodnota je 1, aby byla povolena inicializace líné tabulky inodů.
Řešení 2:
Přísná odpověď
Řešení jako -E lazy_itable_init
neměňte výsledek, pouze urychlete proces. To je to, co bylo výslovně požádáno, ale v mnoha případech lidé potřebují více.
Extra bonus
Ve většině případů skutečně chcete nějaké možnosti, které odpovídají vašim zvyklostem používání a nejen urychlují vytváření souborového systému, ale také umožňují rychlejší použití a více využitelného prostoru.
Právě jsem udělal test. I bez použití -E lazy_itable_init
, níže uvedené možnosti zrychlují dobu vytvoření 2TB souborového systému ze 16 minut 2 sekundy na 1 minutu 21 sekund (kernel 3.5.0 64bit na Intel i7 2,2 GHz, 2TB disk na připojení USB2 – SATA by pravděpodobně bylo rychlejší).
Pro souborový systém, který pojme velké soubory, používám tuto kombinaci:
mkfs.ext3 /dev/sdXX -O sparse_super,large_file -m 0 -T largefile4
kde -T largefile4
vybírá možnosti v /etc/mke2fs.conf
které obecně obsahují něco jako:
inode_ratio = 4194304
blocksize = -1
Proveďte man mke2fs
podrobnosti o každé z těchto možností.
Zde jsou relevantní úryvky:
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
pouze říká, že nevyhrazovat 5 % pro root, což je v pořádku pro datový (ne boot/root) souborový systém. 5 % 2TB disku znamená 100 Gb. To je docela podstatný rozdíl.
Řešení 3:
Výchozí je rychlý formát; nastavení struktur pro svazek ext* trvá mnohem déle než pro svazek NTFS, protože jich je více. Můžete snížit počet superbloků, ale i to jde jen tak daleko.
Řešení 4:
Pokud budete ukládat převážně větší soubory, můžete zvýšit počet bajtů na inod, a tím snížit počet vytvořených inodů. To může podstatně urychlit dobu vytváření.