在Windows中,使用NTFS格式化非常快。我有一台低功耗的Linux机器,几乎没有RAM。将2TB卷格式化为ext4需要很长时间。
我可以做些什么来加快格式吗?我无法想象需要这么长时间?(花了这么长时间)
在Windows中,使用NTFS格式化非常快。我有一台低功耗的Linux机器,几乎没有RAM。将2TB卷格式化为ext4需要很长时间。
我可以做些什么来加快格式吗?我无法想象需要这么长时间?(花了这么长时间)
Answers:
诸如此类的解决方案-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
只说不为根保留5%,这对于数据(不是引导/根)文件系统是可以的。2TB磁盘的5%表示100Gb。那是一个相当大的差异。
inode_ratio = x
意味着如果卷上的平均文件大小小于x字节,那么在存储空间用完之前,您会先用尽inode。在那种情况下,您实际上可能浪费了成千上万的钱,比您预期节省的多。
-T huge
which inode_ratio = 65536
。如有疑问,请不要设置,-i
或-T
让ext2 / 3/4的智者为您选择。您将保留一小部分已知的空间用于内部整理,并且(除非您存储了数百万个非常小的文件)您可以确保不浪费任何实际百分比的存储空间。正如人们所写的那样,精美的软件很不错,但是好的文件系统一定很无聊并且可以正常工作。
mkfs.ext4
(time:)real 0m16.001s
比mkfs.ext3
(time :)更快real 2m10.336s
。
添加标志 -E lazy_itable_init
手册页上的内容如下:
如果启用并且启用了uninit_bg功能,则mke2fs将不会完全初始化inode表。这样可以显着加快文件系统的初始化速度,但是在第一次安装文件系统时,它要求内核在后台完成文件系统的初始化。如果省略该选项值,则默认为1以启用惰性inode表初始化。