有没有ext4的“快速”格式?

在Windows中,使用NTFS进行格式化非常快速。 我有一个低功耗的Linux机器,只有很less的RAM。 格式化一个2TB的卷到ext4需要很长的时间

有什么我可以做的加快格式? 我无法想象需要这么久? (花了那么久)

严格的答案

-E lazy_itable_init这样的解决scheme不会改变结果,只会加速进程。 这是在很多情况下人们需要更多的明确要求。

额外奖励

在大多数情况下,您实际上需要一些与您的使用模式相匹配的选项,不仅可以加快文件系统的创build速度,还可以提高使用速度和可用空间。

我只是做了一个testing。 即使没有使用-E lazy_itable_init ,下面的选项-E lazy_itable_init将2TB文件系统的创build时间从16分2秒增加到1分21秒(在Intel i7 2.2GHz上内核3.5.0 64位,USB2连接上2TB磁盘 – SATA可能更快)。

对于将容纳大文件的文件系统,我使用这个组合:

mkfs.ext3 /dev/sdXX -O sparse_super,large_file -m 0 -T largefile4

其中-T largefile4/etc/mke2fs.conf中select通常包含如下内容的选项:

  inode_ratio = 4194304 blocksize = -1 

做一个man mke2fs每个这些选项的细节。

这里是相关的摘录:

  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只表示不为root保留5%,这对于数据(不是引导/ root)文件系统是可以的。 2TB磁盘的5%是指100Gb。 这是一个非常显着的差异。

添加标志-E lazy_itable_init

以下是手册页的内容:

如果启用并启用了uninit_bgfunction,则inode表将不会被mke2fs完全初始化。 这明显加速了文件系统的初始化,但是它要求内核在第一次挂载文件系统时在后台完成文件系统的初始化。 如果省略选项值,则默认为1以启用懒惰的inode表初始化。

默认快速格式; build立一个ext *卷的结构比NTFS卷需要更长的时间,因为它们的数量更多。 你可以减less超级块的数量,但是即使那样做也是如此。

如果您要存储大部分较大的文件,则可以增加每个inode的字节数,从而减less创build的inode数量。 这可以大大加快创作时间。