stu*_*uck 32 linux filesystems ext4
在 Windows 中,使用 NTFS 格式化非常快。我有一台低功耗的 Linux 机器,内存很少。将 2TB 卷格式化为 ext4 需要很长时间。
我可以做些什么来加快格式?我无法想象什么需要这么长时间?(什么需要这么长时间)
小智 20
添加标志 -E lazy_itable_init
这是手册页的内容:
如果启用并且启用了 uninit_bg 功能,则 mke2fs 将不会完全初始化 inode 表。这会显着加快文件系统的初始化速度,但它需要内核在首次挂载文件系统时在后台完成文件系统的初始化。如果省略该选项值,则默认为 1 以启用惰性 inode 表初始化。
Sté*_*hon 17
类似的解决方案-E lazy_itable_init
不会改变结果,只会加速过程。这是明确要求的,但在许多情况下人们需要更多。
在大多数情况下,您实际上需要一些与您的使用模式相匹配的选项,不仅可以加快文件系统的创建速度,还可以允许更快的使用和更多的可用空间。
我刚刚做了一个测试。即使不使用-E lazy_itable_init
,以下选项也会将 2TB 文件系统的创建时间从 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
通常包含以下内容:
inode_ratio = 4194304
blocksize = -1
Run Code Online (Sandbox Code Playgroud)
执行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.
Run Code Online (Sandbox Code Playgroud)
-m 0
只说不要为 root 保留 5%,这对于数据(不是引导/root)文件系统来说是可以的。2TB 磁盘的 5% 意味着 100Gb。这是一个非常显着的差异。
默认为快速格式;设置 ext* 卷的结构比 NTFS 卷的结构要长得多,因为它们更多。您可以减少超级块的数量,但即使如此也仅此而已。