背景
我的 Ubuntu 18.04LTS 系统上连接了一个 NTFS 格式的外部驱动器,我用它来临时存放文件——一些视频文件、一些从客户那里收到的大型档案、很多个人物品。
这些都不重要,因为我总是可以获得上面的任何内容的另一份副本,但如果它被损坏了,就会带来严重的麻烦。
该驱动器被格式化为 NTFS,因为它曾经连接到我的 Windows 机器,但由于我现在使用 Ubuntu 作为我的“日常驱动程序”,所以我将它移过去,并且它运行良好。
上周,我同时运行了一些磁盘密集型的东西 - 我知道我正在推动驱动器,并且让它在各处进行单独的不相关的读写会给它带来压力并减慢每个进程的速度,但我整夜都在运行它们,所以我想我不在乎是否需要几个小时才能完成所有事情。
该驱动器在夜间的某个时候掉线了,并且第二天早上无法重新安装。
Ubuntu 帮不上忙,所以我在 Windows 上安装了该驱动器,并运行了 ChkDsk,修复了大量问题,第二次运行时没有发现任何问题,之后它在 Ubuntu 上重新安装成功。我还用 SpinRite 运行了一遍,报告没有问题,所以考虑到它目前的使用场景,我很乐意继续使用该驱动器。
问题
鉴于我无意再次将驱动器连接到 Windows(除非我需要运行 ChkDsk!):
将(单个)分区移至 EXT4 是否会获得(可靠性方面)好处?它会比 NTFS 更具“弹性”吗?
我搜索并找到了各种讨论,但似乎没有一个能给出这个问题的实际答案。这很接近,但贡献者似乎避开了 NTFS 与 EXT4 可靠性问题:
有可用空间,因此我可以轻松缩小 NTFS,创建 EXT4 分区,移动东西,然后删除 NTFS,并扩展 EXT4 以使用整个驱动器(可能必须分部分进行,因为驱动器已满约 75%) - 这个过程会很痛苦,而且耗时,但并不困难。
我只是不确定这样做是否会带来多大好处。
提前感谢您的想法和建议,
艾伦。
答案1
“鉴于我无意再次将驱动器连接到 Windows(除非我需要运行 ChkDsk!):” - 是这里的一个关键因素。在 Linux 系统上,ext4 是 NTFS 的更好解决方案 - 它在 Linux 上“成长”(就像 NTFS 在 Windows 上一样)。同样,它可以更好地处理 Unix 文件权限,并且本机理解 - 不像 NTFS 需要插件。
不管你对开源的看法如何,NTFS 不是开源,而 Ext4 是。这一点很重要,因为 NTFS 是经过逆向工程的,它不可能像有详尽文档并为此任务编写的解决方案那样好。
这两种文件系统都很强大且可扩展。与较新的文件系统(如 zfs 和 btrfs)相比,它们都不是特别出色或复杂的。对于 Windows 不是重要考虑因素的 Linux 系统,Ext4 是正确的选择。
答案2
您遇到的可靠性问题几乎肯定是由外部磁盘接口引起的 --- 我假设它是 USB 连接的磁盘?许多 USB/SATA 接口芯片存在错误,和/或不太符合标准,并且仅在 Windows 上进行测试。因此,无论您使用哪种文件系统,都可能遇到问题。
有时问题与工作负载有关,并且根据操作系统向驱动器发送的磁盘 I/O 请求类型,驱动器的可靠性(例如随机冻结、导致内核崩溃或无法正确读取或写入数据)可能会有所不同。因此,如果问题是“驱动器随机故障的频率会根据我使用的是 ext4 还是 ntfs 而增加或减少?”,答案将不得而知。您必须尝试找出答案。
Ext4 的文件系统一致性检查器几乎肯定比 Linux 上的 ntfs 更好,因为我们花了很多时间尝试这一点。因此,如果问题是“在我的文件系统内容被有缺陷的硬件烧毁后,哪个文件系统具有更好的文件系统一致性检查器/修复工具”,答案是 ext4。
当然,您可能要考虑更换外部磁盘是否是最好的选择。新外部磁盘要花多少钱?您在磁盘上存储的时间和数据值多少钱?