从Linux整理NTFS分区的碎片


Answers:


12

是的,您可以使用晃动。首先,您需要向系统中添加自定义存储库:

sudo add-apt-repository ppa:un-brice/ppa
sudo apt-get update
sudo apt-get install shake-fs

那你可以做

sudo shake /some/dir

10
Shake并不是一个完整的碎片整理程序,它只是复制每个文件,以期减少副本的碎片。当然,这与实际的碎片整理程序的工作方式相去甚远。
rustyx 2014年

9

据我所知,周围没有这样的工具。

一些站点报告以下命令

# WARNING - does not work
fsck -t ntfs --kerneldefrag /dev/hdX

但这是行不通的,目前尚不清楚他们在哪里得到它。


7
-1为什么在答案毫无用处时添加答案?
Wolfer'3

1
@Wolfer很好,所以当我们在其他地方找到它时,我们知道它不起作用
krispy

6

更新:适用于Linux的UltraDefrag:

UltraDefrag是用于Windows平台的功能强大的开源碎片整理工具。它可以对任何系统文件进行碎片整理,包括注册表配置单元和页面文件。UltraDefrag的主要目标之一就是尽可能快且可靠地完成这项工作。它正在移植到Linux和NTFS-3G上,以对NTFS分区进行碎片整理。当前,只有控制台模式的测试版本可用。请阅读随附的文件README.linux进行编译和测试

http://jp-andre.pagesperso-orange.fr/advanced-ntfs-3g.html

[我还没有亲自使用过。通过Arch论坛上的一个帖子找到了它。进一步跟进该主题进入下一页,将导致更多有关该主题的信息。请您自担风险。—kevjonesin—]


1

对于所有认为仅通过复制文件(仅克隆文件)即可在Linux上对NFTS进行碎片整理的用户,这是一个警告。

  • 某些NTFS(文件/文件夹)可以具有激活的特殊属性,称为NTFS压缩

据我所知,无论何时Linux(cp,fsarchiver等)在NTFS上写入文件/文件夹,无论文件/文件夹是否启用压缩,它总是在没有NTFS压缩的情况下写入文件/文件夹。

因此,您会遇到一种情况(我很难解决),在这种情况下,使用fsarchive(或cp等)进行恢复将使分区变满并且不够用。

某种数据可以达到大于3的NTFS压缩率,因此您可以拥有一个包含大量文件的X GiB分区,并且文件总和的大小接近3 * X。

我给出警告是因为它并不为人所知,有时会造成很大的麻烦。例如,在还原克隆文件时,需要比已克隆的整个分区更多的空间,这是因为Linux上NTFS压缩丢失了。

另外,使用非常特殊的数据(NTFS比率大于5),我会遇到这种情况:

  • X GiB的NTFS分区大小
  • 存放克隆文件的文件(工具认为压缩最好,我认为是GZip)花了2 * X GiB

哦,是的,克隆被压缩,占用了两倍的分区大小。

这是因为克隆工具先读取文件(以明文方式(未压缩),然后压缩),然后再压缩数据(比率实际上比NTFS差)。

当然,还原该数据将不适合该分区,因为还原的数据将在没有NTFS压缩的情况下放入。

希望清楚不使用NFTS压缩的另一个原因是什么?好吧,一点也不,我过去经常使用NTFS压缩。VDI(虚拟盒子)文件的比例非常好。

现在,我发现了Pismo文件挂载(它也可以在Linux上运行)。它可以创建充当容器(作为文件夹)的文件,并且可以进行压缩(比NFTS更好的比率)并同时进行加密。

为什么我提到它。因为任何克隆工具都将此类容器视为文件(未安装为文件夹时),并且读取/转储/备份压缩的数据流,而不是普通的未压缩数据(如NTFS压缩)。因此还原与其他任何文件一样。

我没有使用NTFS压缩属性压缩NTFS文件夹,而是放置了一个Pismo文件Mount虚拟文件夹。获得更好的压缩等

我还必须警告所有对这种免费工具感兴趣的人。它没有收缩(至少尚未收缩),因此,如果文件夹内容发生很大变化,则不是一个好主意。

但是对于不可变的虚拟磁盘,ISO和不会改变的事物,它获得的比率非常接近LZMA2的比率(7-Zip),并且可以即时读写。

它是跨平台的。

请注意NTFS压缩的坏家伙在谈论碎片。当您将文件写入具有NTFS压缩功能的NTFS时,它是通过这种方式进行的(是可怕的设计,我认为这样做是为了确保以故意的方式更大程度地分散文件,最坏的事情无法完成):

  1. 开始写入位置已预先计算为64K * N,其中N是将尝试压缩的64K块的数量
  2. 保留64K的缓冲区
  3. 该缓冲区充满64K,然后压缩
  4. 仅写入所需的4K块,其余作为空闲空间

因此,它会在文件中间创建很多GAP,并且仅在对文件进行碎片整理后,GAP会消失,但是直到用户订购它(contig.exe,defrag.exe等)后,碎片整理才会发生。

是的,它将第N个64K块写入64K的倍数位置,无论是否可以压缩以前的数据,它都会在每个64K块之间留一个间隙(如果可以压缩)。

Pismo File Mount虚拟文件夹压缩的行为就像应该以管道模式进行的任何常规压缩一样,因此没有任何间隙。至少直到您删除某些内容为止。

另一个警告是,不要将VHD / VHDX文件放入其中,Windows将无法附加它们!Windows使用内核技巧来挂载此类内容,它不使用文件系统级别,而是在较低级别上工作。

我还想获得Linux NTFS碎片整理程序,这肯定比在Windows上运行的所有碎片整理程序快。整理自由空间完全是疯狂的。或更好地交谈。为一个新的大文件创建一个足够大的整体。

我的记忆也更好,这也很棒。过去,我在Windows上使用的工具(命令行,抱歉)可以以无碎片的方式复制/移动文件。在获取所需文件的同时将所需文件移走,而不是将文件分割成碎片。它仅在无法找到放置文件的方式(不可能打孔)时发出消息,或者在需要分割另一个文件的情况下(要求用户授权)发出不同的警告,等等。我不记得这个名字了(也许它不适用于现代Windows,这是Win2000的名字)。


0

否。这些是Windows文件系统,因此您将需要使用Windows对其进行碎片整理。


Wine没有标准的Windows碎片整理应用程序吗????
胡安

2
@Juan,不,那是Windows的一部分。WINE只允许运行为Windows编写的第三方应用程序。它还利用了Windows上没有的Windows文件系统驱动程序特定的ioctl。
psusi

0

归档NTFS碎片整理(包括可用空间)有一个非常棘手的作弊技巧...可以使用像SystemRescueCD这样的Live Linux来完成...

但是,您必须具有第二个HDD或至少51%的可用空间(如果不使用压缩,则必须具有该空间)。

诀窍(非常棘手)是使用工具“克隆”分区,而不是典型的...有一种工具可以“克隆” NTFS分区但不执行精确的“克隆” ...让我解释一下...

该工具是fsarchive(如果我不记得不好的话)。

就像“克隆”工具一样,它使所有文件(当心NTFS特殊的文件元数据,我认为它们被调用的流)(包括克隆工具所做的那样)都非常大。

但是,棘手的部分是还原时出现的……它不会将文件放在任何地方,而是将文件完全没有碎片。

我已经将它用于Windows系统分区以及NTFS数据分区...成功了...不是很容易使用/理解(仔细阅读文档)...但是可以解决问题。

记住...它创建的这么大的文件可以压缩,因此并不需要51%的空闲空间。

但是无论如何,首先您必须缩小NTFS分区...使用GParted(如果我不记得不好的话)。

步骤如下:

  1. 最坏的情况:HDD只有一个BIG NTFS分区,具有足够的可用空间
  2. 引导SystemRescuCD(如果要使用向导命令启动X窗口)
  3. 使用GParted将NTFS分区缩小到最小大小(无论如何,NTFS文件的碎片都会更多)
  4. 使用GParted在可用空间上创建另一个分区,如果使用ext4类型则更好(期刊)
  5. 挂载这样的新分区,但不要挂载NTFS
  6. 使用fsarchiver创建NTFS分区的“克隆”,使用压缩并将bif文件存储在创建的分区上
  7. 从现在开始,这是非常危险的:使用GParted删除NTFS分区并重新创建它
  8. 使用fsarchiver还原“克隆”,NTFS分区上的所有文件均为1个片段(一个或两个除外,因为$ MFT可以放在分区的中间而不是分区的末尾)
  9. 必要时使用Gparted缩小NTFS分区
  10. 检查NFTS是否正确,可以安装,读取/写入和卸下
  11. 卸载新创建的ext4分区
  12. 使用Gparted扩展ext4(或者更好的方法是删除并重新创建)

就是这样,伙计们……正如我所说的那样,非常棘手和冒险。

当心要点:

  • NFTS收缩让足够的可用空间来容纳NTFS分区的压缩映像(HDD上51%的可用空间将确保有足够的空间)
  • fsarchiver是否不保存NTFS流?
  • fsarchiver restore不会将文件放在任何地方,而是将它们保持无碎片(如副本)
  • 删除并重新创建NTFS分区后,没有退路

这些步骤适用于:使用LiveCD / LiveUSB linux对使用100%磁盘的NTFS分区进行碎片整理,而没有其他HDD连接到此类PC [必须具有足够的可用空间]。

重要:

  • 有人可能会认为,如果NTFS缩小后,如果HDD上有51%的可用空间,那么只需创建该ext4并将所有NTFS复制到其中,然后删除NTFS,重新创建并将其复制回来,可能会更安全...这样做会导致松动,例如NTFS安全权限等

只要我知道GParted / fsarchiver是最接近的解决方案(仅在Linux上使用LiveCD / LiveUSB),就不会很快,有一定风险,但可以满足发布问题的人提出的条件。

请注意:这是非常非常危险的……与使用任何“克隆”工具一样……现在我不知道任何其他最佳方法……它会丢失NTFS流(如果我不记得不好的话)

请:仔细阅读fsarchiver文档,然后再使用它。

我有任何责任(我曾在自己的数据上使用过它,但始终有一个外部BackUP-好的partice)。

实际上...我所拥有的所有信息,我都将它们放在至少三种不同的介质(HDD,DVD,闪存)上,每种介质至少有三份,所以我有9份...如果我松开了8份他们再休息一次以恢复数据...我有点偏执,我知道。


我不建议使用此方法,因为(就像您说的那样)它非常危险,并且由于进行碎片整理通常不值得。更好地使用Windows live系统执行此工作(或原始Windows系统-为什么不呢?)。
字节指挥官

fsarchive只是一个复杂的tar归档文件,它存储一些扩展属性。它不会对任何碎片进行整理。您的方法与将文件从一个分区简单复制到另一个干净文件系统一样好。
ZAB
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.