wake-up-neo.com

ext4是否有一种“快速”格式?

在Windows中,使用NTFS格式化非常快。我有一台低功耗的Linux机器,几乎没有RAM。将2TB卷格式化为ext4需要很长时间。

我可以做些什么来加快格式吗?我无法想象需要这么长时间吗? (花了这么长时间)

28
stuck

严格答案

-E lazy_itable_init之类的解决方案不会更改结果,只会加快处理过程。这是明确提出的要求,但在许多情况下,人们需要更多。

额外奖励

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

我刚刚做了测试。即使不使用-E lazy_itable_init,下面的选项也可以将2TB文件系统的创建时间从16分钟2秒加快到1分钟21秒(Intel i7 2.2GHz上的内核3.5.0 64bit,USB2连接上的2TB磁盘-SATA)可能会更快)。

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

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

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

    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。那是一个相当大的差异。

16
Stéphane Gourichon

添加标志-E lazy_itable_init

手册页上的内容如下:

如果启用并且启用了uninit_bg功能,则mke2fs将不会完全初始化inode表。这样可以显着加快文件系统的初始化速度,但是在第一次安装文件系统时,它要求内核在后台完成文件系统的初始化。如果省略该选项值,则默认为1以启用惰性inode表初始化。

19
Alex Wheeler

默认is快速格式;为ext *卷设置结构要比为NTFS卷设置花费更多的时间,因为结构更多。您可以减少超级块的数量,但即使如此,到目前为止也是如此。

8
Ignacio Vazquez-Abrams

如果您将存储大部分较大的文件,则可以增加每个inode的字节数,从而减少创建的inode数。这样可以大大加快创建时间。

4
rnxrx