如何手动移动物理硬盘上的文件?我想将从未修改过、只读过的文件(如电影等)移动到分区末尾。
答案1
首先,如果我的英语不好,请原谅!
您可以使用以下方法定位视频或音乐等很少使用的文件碎片整理脚本语言。
通过使用其脚本语言,您可以创建区域(在具有 3 个区域的分区中,第三个区域是分区的末尾)并放置任何特定文件(选择像*.mp3
或 这样的模式*.avi
),然后通过将您的个性化脚本提供给 mydefrag 软件将它们移动到分区末尾。
答案2
有许多具有直接磁盘访问功能的工具可让您将原始数据写入磁盘。在基于 Unix 的系统上,dd
通常可以使用命令来实现这一点。在 Windows 上,您必须依赖第三方软件。您可以通过这种方式将电影写入硬盘的物理端,然后手动更新文件系统。除了最基本的文件系统之外,在所有文件系统上,这将是一项相当繁琐的工作,而且在数据恢复之外非常罕见。
这也是毫无意义的。碎片整理工具已经可以合理地移动文件以提高性能,并且可以轻松抵消您的手动努力。禁用它们可能会抵消您所期望的性能优势。
尽管如此,将不经常访问的文件存储在驱动器较慢的一端可能还是有好处的。实现此目的的最佳方法是创建单独的分区,从而限制文件的物理位置,类似于一种称为短行程。请注意,当同时访问两个分区上的文件时,例如将电影从同一驱动器上的一个分区复制到另一个分区时,由于磁头不断重新定位,性能实际上会受到严重影响。
答案3
尝试 Vopt 碎片整理工具,通过该工具分析驱动器后,您也可以手动将文件移动到驱动器末尾的任何位置。
答案4
笔记:如果您不想读完所有内容,请转至最后一部分,在那里我会说一些具有“移动到分区末尾”功能的工具...但是如果您想知道为什么有些人声称必须能够“移动到”我们想要的分区内的任何地方,请完整阅读。
在某些情况下,创建分区不是一个选项,比如所有磁盘都用 VeraCrypt 加密,而你又很偏执...解释是...
- 偏执 = 100% 加密,永远不会将未加密的内容放在上面
- VeraCrypt 系统分区加密不允许调整其大小(至少目前不允许)
为什么偏执狂永远不会执行以下步骤:
- 解密分区
- 调整分区大小
- 加密分区
答案是:未加密的数据已写入磁盘,因此是可恢复的(无论是否被覆盖或擦除等)。
哦,是的,有些公司可以恢复 HDD 以及 SDD、存储卡等的每个位最后 100 个状态...所以如果你的数据是纯文本(未加密)并且你将其覆盖 99 次,未加密的数据仍然可以恢复。
为此,他们拆开磁盘并使用低级原子分析仪和超级计算机来了解之前有什么......理解这一点的一种简单方法可能是(对于磁性表面,对于 SDD 和存储卡来说有点类似):
- 你要写入的位上有 0
- 你在那一点上写一个 1……材料会旋转,所以它读的是 1 而不是 0,但这种旋转并不完美
- 您再次在该位上写入 1... 材料会稍微旋转一点,所以它仍然读取 1,但是这样的旋转并不完美(它比之前的旋转更多一点)。
- 您分析这种旋转的程度,然后计算出它是 1,在此之前一定是一个 1(因为最后的一点旋转),在此之前一定是一个零(因为最终的角度)。
数字方面:
- 方向 = 水平 = 位为零
- 写入一个 1,导致旋转 60º = 位为 1(但不是 90º)
- 重写一个 1,导致旋转 75º = 位为 1(但不是 90º)
- 重写一个 1,导致旋转到 80º = 位为 1(但不是 90º)
- 重写一个 1,导致旋转到 83º = 位为 1(但不是 90º)
- 重写一个,......依此类推......它永远不会达到 90º
最后一个角度告诉我们“1”在这里被写了多少次。
现在想象一下混合价值观的书写......
- 方向 = 水平 = 位为零
- 写入一个 1,导致旋转 60º = 位为 1(但不是 90º)
- 重写一个零,导致旋转 30º = 位为零(但不是 0º)
- 重写一个 1,导致旋转到 82º = 位为 1(但不是 90º)
- 重写一个零,导致旋转 35º = 位为零(但不是 0º)
- 重写一个,......依此类推......它永远不会达到 90º 也不会再达到 0º
注意:这些角度数是虚构的,它们只是为了向您展示零和一可以拥有保存此类数据的材料的许多真实物理位置。
当然...偏执,真的很偏执...恢复最后 100 个状态的成本接近 10 亿美元,但可以做到...并且公司表示它可以恢复(在某些情况下,更多状态)...困难的部分是将这些变化配对...意味着...一个位可以比另一个位被覆盖更多次,因此如何知道哪一个是最后写入的,以前写入的,在那之前...这是公司不想透露的最高机密(我想是为了不损失钱财)。
现在糟糕的 NTFS 实现:NTFS 本机压缩...
- 每个 64KiB 块都写入 64KiB 位置的倍数,直到碎片整理开始起作用...因此,如果任何 64KiB 可以压缩到小于 60KiB+1B,就会出现漏洞
- NTFS 不会在 RAM 上压缩并连续存储...N*64KiB 放在 N*64KiB 位置上,无论 (N-1)*64KiB+1 到 N*64KiB-1 是否可以压缩
- 结果...一个几 GiB 的大文件,如果压缩到 50%,就会产生一万多个碎片。
我们都想要两件事:
- 将 ISO 以非碎片化方式放置
- 将一些文件放置在我们想要的任何位置(特别是使用非 SSD,使用普通旋转磁盘,最后一部分通常小于连续速度的一半)
所以...为了加快速度...我们都希望...这样:
- 重要文件(小文件、读取次数较多但写入次数较少的文件)应位于分区的快速部分
- 很少访问的文件和连续速度不重要的文件(大 ISO、电影、音乐等)位于分区末尾
- 写入和修改的文件位于分区中间
因此头部轨道最小化,而开始和结束部分将不再碎片化,所以下一次碎片整理将会更短。
在分区内部需要这样的另一个原因是:
- 一些程序在处理项目时会产生巨大的文件(视频编码等)(可能是几个月的渲染、后期制作、翻译等),并且还会有一长串的小片段/小文件(比如在流设计中注入的音效等)... 都在同一个文件夹中(没有子文件夹)
对于那些具有子文件夹的文件,可以使用硬/软链接(Junction/MKLink 工具)的技巧...但对于其他文件,所有文件都在同一个文件夹中...对每个文件执行一次 MKLINK 完全是浪费时间,而且...一些文件是动态创建和删除的,因此链接/连接不是一种选择。
哦,您还可以在任何 NTFS 文件夹上安装 VHD(XP 和 Vista 使用工具,Windows 7 及更高版本可以直接从磁盘管理器执行此操作)...因此文件夹实际上可以是 VHD 文件...但我们再次希望将这样的文件放在磁盘的开始或结束处...这次扩展名过滤器将无法知道我们想要它在哪里...两者的扩展名相同。
还有许多其他原因……我可能要写好几年也写不完。
我发现它确实完美运行的唯一方法是:
- 为此编写我自己的工具(我太懒了,我没有这样做,我保证如果我构建了它,我会免费提供给 OpenSourde)
仍在搜索:
- 找到一个工具/程序,让您以某种方式对分区进行碎片整理,它可以让您指定要在分区末尾部分放置的文件/文件夹列表以及在分区开头放置的文件/文件夹列表。
次佳:
- 找到一个工具/程序,它可以让您以某种方式对分区进行碎片整理,并允许您指定要在分区末尾部分的文件/文件夹列表。
对于最后一个选项我尝试过:WinUtilities DiskDefrag
。
它一点也不快,有时看起来像是粘在一个文件上(移动一个<1GiB的文件需要几个小时,而移动其他>25GiB的文件则需要的时间要少得多)...也许是编码不好。
我发现的另一个选项(它需要学习 LUA 编码语言)是:UltraDefrag
....(我仍在尝试学习如何使用 LUA 来实现,我对 LUA 还不是很了解)。