运行 Linux/Unix 时(例如在 U 盘上)对 FAT 文件系统进行碎片整理的最佳方法是什么?
- 将所有内容复制到其他地方,格式化,然后再次复制回来?
- 使用FreeDOS 碎片整理实用程序,在 KVM 命令中?
- 启动时用分区逻辑?
- 其他?
答案1
您可以使用该实用程序检查文件是否存在碎片filefrag
。
这样您就可以过滤掉未碎片化的文件,并仅对已经碎片化的文件进行复制/复制回来。这应该可以节省你一些时间。但请注意,不能保证新的文件布局会比旧的更好。
最好的方法是完全忽略文件碎片。尤其是在 USB 记忆棒上,这几乎不重要,只会浪费写入周期,并且与 HDD 不同,它没有可移动部件,因此不会因碎片而造成太大损失。
仅当发生一些有趣的事情导致文件以非常极端的方式碎片化时才需要进行碎片整理。例如,Torrent 客户端以随机顺序下载文件内容,无需预先分配。但除非 FAT 在某个时刻开始支持稀疏文件,否则这根本就不是问题,因为在此类 FS 上预分配是强制性的。
答案2
有一个名为 的可用实用程序defragfs
,它与文件系统无关。因此,它可以在 Linux 发行版中用于对 FAT32 分区进行碎片整理:
https://sourceforge.net/projects/defragfs/
这是为了您的确切目的你打算并将帮助为 Easy2Boot 制作连续的图像文件。
defragfs
Easy2Boot的作者推荐并使用:
https://www.easy2boot.com/make-an-easy2boot-usb-drive/make-using-linux/
答案3
让我们从不同的角度来看这个问题,因为您给出了一个“例如在 USB 记忆棒上”的示例
坏榜样
USB 记忆棒是闪存,需要考虑两件事: 1) 由于闪存没有移动部件,因此进行碎片整理不会带来明显的性能提升。 Defrgs 用于清理文件系统或重新组织文件块以使它们彼此更靠近 - 以减少机械臂的物理移动(查找)和光盘旋转的等待时间(延迟)。 Flash没有这个功能。 2) 在闪存上写入、写入、写入会磨损它。现在,对于 100K 的写入寿命来说,您的 USB 记忆棒可能可以使用几年到 10 年,但您可以写入的次数是一个“有限”的数字。由于耐用性的限制,不断地对 USB 记忆棒进行碎片整理会缩短其使用寿命。
这不仅仅是您的 USB 记忆棒、SD 卡、紧凑型闪存甚至 SSD 驱动器。
我的观点是,不要仅仅为了它而进行碎片整理,了解文件系统下的底层技术是什么及其含义,即使它是磁性的而不是电子的,太多的碎片整理最终可能会损坏您的文件系统,并且您会丢失你的文件。