当系统在 Sdelete 过程中崩溃时,如何恢复“已用”的空间?

当系统在 Sdelete 过程中崩溃时,如何恢复“已用”的空间?

我正在尝试优化 Windows 7 虚拟机磁盘映像。磁盘映像是稀疏分配的映像,会根据需要增长。通过将曾经占用部分空间的已删除文件所留下的可用磁盘空间(在客户机中)的字节清零,我可以告诉虚拟机管理程序重新缩小虚拟机磁盘映像。

为此,我运行删除工具来自Windows SysInternals 套件,在来宾中:

sdelete -z c:

运行 SDelete 时,当它显示已完成 99% 时,我的虚拟机挂起了,完全没有响应。重新启动虚拟机后,客户机的 C: 驱动器报告已使用 98%,只有 1.5 GiB 可用空间。

我尝试在常用位置(c:\Windows\Temp%TEMP%等)搜索常规文件和隐藏文件,但没有找到。

SDelete 在哪里存储用于吞噬可用空间并将其清零的临时文件?我的直觉是,通过删除该文件,我将看到我的可用空间骤降至预期大小约 20 GiB。

如果该文件不存在,我该如何回收该空间?

编辑:我正在使用 SDelete v2.0。

答案1

我在 Server 2012 VM 上遇到了同样的问题,之后无法登录该机器。

我将 RAM 从 12GB 减少到 4GB,以减少页面文件大小。我运行了 windirtstat,并在运行该程序的用户中找到了该文件

C:\Users\Administrator.XXX\AppData\Local\Temp\1\SDELTEMP

PS:如果配置精简,请确保主机硬盘可以容纳整个虚拟机硬盘大小

答案2

(这并没有回答我关于查找 SDelete 留下的临时文件的问题,但它确实解释了问题是如何产生的)

SDelete v2.0 似乎需要很多需要更长的时间才能完成可用空间的归零。根据 sysinternals.com 上的讨论,一位用户发现完成所需的时间增加了 28 倍。在花了几个小时清零我的 60 GiB 虚拟硬盘后,我退出了,以为 SDelete 挂了。

当我回到SDelete v.1.6.1(archive.org),它在 45 分钟内完成。

答案3

虽然不确定您是否仍然遇到该问题,但我确信所有变体中的 sdelete 都会将临时文件留在驱动器的根目录中。

只需确保启用隐藏文件和文件夹以及显示系统文件。

它应该说一些类似于 sdeletetemp 的内容。

然后您应该能够删除临时文件。

我在虚拟机上遇到了同样的问题,导致大量硬盘使用。1.4TB。但文件位于驱动器的根目录中。

答案4

Linux 解决方案:

http://utils.kde.org/projects/filelight- 应该可以帮助您找到大文件。

或者

http://www.cyberciti.biz/faq/how-do-i-find-the-largest-filesdirectories-on-a-linuxunixbsd-filesystem/

将来我建议使用 linux dd 将驱动器清零,需要安装该分区。

dd if=/dev/zero of=/mounted-windows-partition/deletefile.file && rm /mounted-windows-partition/deletefile.file

相关内容