我刚刚将 NTFS 分区转换为 ext4,但总空间似乎从 421G 减少到 415G。6G 去哪儿了?而且,ext4 中的保留空间增长到 199M,比 NTFS 中的 78M 大得多,为什么?
该分区主要用于电影/音乐,因此大多数文件都非常大(每个文件>10M)。我想使用 ext4 文件系统,有什么建议吗?
mkfs.ntfs:
/dev/sdb4 421G 78M 421G 1% /mnt/mmedia
mkfs.ext4:
/dev/sdb4 415G 199M 393G 1% /mnt/mmedia
(415G - 199M == 393G ?)
还有奇怪的是,ext4 剩余大小是 393G,不是应该有 415G 或者 414G 吗?消失的 22G 是怎么回事?相比 NTFS,ext4 占用了总空间的 6.6%,这可真是个大问题。
问题是:
- 6G主要用于什么,用于日志,用于冗余,还是用于索引?
- 剩余空间为什么是393G而不是415G呢?有22G的空洞,比较大。
- 如果用这个 ext4 分区来存储电影/音乐文件,你会建议使用什么参数?据说对于大分区来说,ext4 的性能比 ext3 更好,是真的吗?我不会再使用非日志式的 ext2 了。
答案1
6G主要用于什么,用于日志,用于冗余,还是用于索引?
(尚不清楚。)
剩余空间为什么是393G而不是415G呢?有22G的空洞,比较大。
5% 是为超级用户保留的块,用于避免碎片化。您可以通过 将其调整为 1% mkfs.ext4 -m 1
。
如果这个 ext4 分区用于存储电影/音乐文件,您建议使用哪些参数?
您可以为 mkfs.ext4 指定一个使用选项,例如mkfs.ext4 -T large_file
,这将让 mkfs.ext4 决定包含大文件的分区的参数。
答案2
- 6GB 是 inode。ext4 默认 inode 为 1/64(1.56%),每个 256B;因此可以填充 16KB 文件
- df 可用空间不包括为 root 保留的空间,默认为 5%,使用
tune2fs -m
mkfs.ext4 -m 0 -N 4000000 /dev/whatever # reformats
,0 保留,400 万个 inode 使用 1GB- ext4 fsck 比 ext3 快得多;除此之外你不会注意到任何差异
每个文件/目录需要 1 个 inode。创建 ext 文件系统后,您无法更改 inode 数量。如果您只将该分区用于电影和音乐,那么即使 1000000 个 inode 也足够了。
NTFS 主文件表 (MFT) 稍微灵活一些,因此 NTFS 默认可以塞入更多数据。
在 Linux 上使用 NTFS 的唯一好处是与 Windows 共享文件。它对于媒体来说还可以,但缺少各种 UNIX 功能,因此不适合在 Linux 上用于一般用途。不要在它上面编译!
答案3
是的,这是一个有趣的小话题。每个文件系统都以不同的方式实现其数据结构。您可以尝试使用各种文件系统格式化分区并进行比较。“可用”空间会有所不同。此外,当您填满它们时,存储开销会有所不同,因此从某种意义上说,存储同一文件所需的空间量可能会因文件系统而异。通常,当您格式化文件系统时,您还可以选择一些参数来确定如何排列它 - 这也会产生影响。
你的问题的答案是“视情况而定”。我认为,总体而言,6/400 GB 的差异并不大,但确实,这是显而易见的。存储空间仍然越来越便宜。但我认为文件系统可能会越来越重,因为我们想要其中有更多奇特的功能。我怀疑 ext2 比 ext4 要精简得多。我很想看看一些实际数字。当然,这种“效率”是有代价的(最大的代价是它没有日志记录,因此速度更快,也更容易损坏)。
至于为什么在这种情况下 ext4 占用更多空间,我假设您在 NTFS 上的存储集群设置为处理比 ext4 参数要求的更大的块的存储空间。如果这是真的,那么如果您有很多相对较小的文件,您应该会获得更高效的存储使用。
可以说,整个主题没完没了。如果你想了解更多信息,我建议你查看各种 wikipedia 页面,比较现有的文件系统。以及查看你感兴趣的每个 FS 的手册页。
希望这对你有帮助。
答案4
我有一个(完整的)ntfs 文件系统,包含大约 1000 GB 的数据,但只有几百兆字节可用。即使 ext4 的格式化容量远小于 ntfs,我记得当我复制所有内容时,即使格式化容量较小,ext4 上仍有大约 70GB 的可用空间。(请记住,ntfs 已满)。我不能保证这种情况会发生在您身上,但至少对于我拥有的文件来说,ext4 确实是一个节省空间的工具!:)