当前位置:首页 > 免费资源

备忘录27,如何快速将磁盘写满之用微软自己家的工具

不详2020-05-14596人围观

备忘录27,如何快速将磁盘写满之用微软自己家的工具

用 windows 自家的 sdelete 可以安全删除文件到无法恢复的级别。

https://docs.microsoft.com/en-us/sysinternals/downloads/sdelete


介绍
Windows NT / 2000(Win2K)C2兼容性的一项功能是它实现了对象重用保护。这意味着当应用程序分配文件空间或虚拟内存时,它无法查看Windows NT / 2K为其分配的资源中先前存储的数据。Windows NT在向应用程序提供任何一种资源之前,将内存零填充并将文件放置在磁盘上的扇区清零。但是,对象重用并不意味着将文件在删除之前所占用的空间清零。这是因为Windows NT / 2K的设计假设是操作系统控制对系统资源的访问。但是,当操作系统处于非活动状态时,可以使用原始磁盘编辑器和恢复工具来查看和恢复操作系统已重新分配的数据。

确保已删除文件以及使用EFS加密的文件可以安全地进行恢复的唯一方法是使用安全的删除应用程序。安全删除应用程序使用显示出使磁盘数据无法恢复的技术来覆盖已删除文件的磁盘数据,即使使用可以读取磁性介质中显示弱删除文件模式的恢复技术,安全删除应用程序也可以使磁盘数据不可恢复。SDelete(安全删除)就是这样的应用程序。您可以使用SDelete来安全地删除现有文件,以及安全地擦除磁盘的未分配部分中存在的任何文件数据(包括已经删除或加密的文件)。SDelete实施国防部清除和消毒标准DOD 5220.22-M,使您确信,一旦使用SDelete删除,文件数据将永远消失。请注意,SDelete安全删除文件数据,但不会删除可用磁盘空间中的文件名。

使用SDelete
SDelete是一个命令行实用程序,具有许多选项。在任何给定的用途中,它都允许您删除一个或多个文件和/或目录,或者清除逻辑磁盘上的可用空间。SDelete 接受通配符作为目录或文件说明符的一部分。

用法:sdelete [-p传递] [-s] [-q] <文件或目录> ... 
sdelete [-p传递] [-z | -c] [驱动器号] ...

表格1
参数 描述
-一个 删除只读属性。
-C 清理可用空间。
-p通过 指定覆盖次数(默认为1)。
-q 不要打印错误(安静)。
-s或-r 递归子目录。
-z 零可用空间(适用于虚拟磁盘优化)。


批处理

@echo off
echo 注意!彻底删除! ①取消?请按Ctrl+c   ②确认?请按任意键
pause >nul
"F:\SDelete\sdelete64.exe" -p 26 -q -s %1
echo 结果如上,按任意键退出
pause >nul


SDelete如何运作
安全删除没有特殊属性的文件相对简单:安全删除程序仅使用安全删除模式覆盖文件。更棘手的是安全删除Windows NT / 2K压缩,加密和稀疏文件,并安全清理磁盘可用空间。

压缩,加密和稀疏由NTFS在16个群集块中管理。如果程序写入该文件的现有部分,则NTFS会在磁盘上分配新的空间来存储新数据,并且在写入新数据后,会释放该文件先前占用的群集。NTFS出于与数据完整性有关的原因而采用这种保守方法,并且在压缩和稀疏文件的情况下,如果新分配大于现有分配(新压缩数据大于旧压缩数据)。因此,覆盖此类文件将无法成功从磁盘删除文件的内容。

为了处理这些类型的文件,SDelete依赖碎片整理API。使用碎片整理API,SDelete可以精确确定磁盘上的哪些群集被属于压缩,稀疏和加密文件的数据占用。一旦SDelete知道哪些群集包含文件的数据,就可以打开磁盘进行原始访问并覆盖这些群集。

清洁可用空间提出了另一个挑战。由于FAT和NTFS无法为应用程序提供直接寻址可用空间的方法,因此 SDelete具有两个选项之一。首先,它可以像压缩,稀疏和加密文件一样打开磁盘以进行原始访问并覆盖可用空间。这种方法存在一个很大的问题:即使SDelete被编码为完全能够计算NTFS和FAT驱动器的可用空间部分(这并非微不足道),也可能会与在Windows上发生的活动文件操作发生冲突。系统。例如说SDelete确定群集是空闲的,并且在那一刻文件系统驱动程序(FAT,NTFS)决定为另一个应用程序正在修改的文件分配群集。文件系统驱动程序将新数据写入群集,然后SDelete出现并覆盖新写入的数据:文件的新数据不见了。如果将群集分配给文件系统元数据,则问题会更加严重,因为SDelete会破坏文件系统的磁盘结构。

SDelete采用的第二种方法是间接覆盖可用空间。首先,SDelete分配最大的文件。SDelete使用非缓存的文件I / O来执行此操作,这样NT文件系统缓存的内容将不会被丢弃,并被与SDelete的占用空间的文件相关联的无用数据代替。由于非缓存的文件I / O必须对齐扇区(512字节),因此即使SDelete无法进一步增长文件,也可能会为SDelete文件分配一些剩余空间。为了抢占所有剩余空间, SDelete接下来会分配最大的缓存文件。对于这两个文件,SDelete 执行安全覆盖,以确保安全地清除之前可用的所有磁盘空间。

在NTele驱动器上,SDelete的工作不一定是在分配并覆盖两个文件之后完成的。SDelete还必须用适合MFT记录的文件填充NTFS MFT(主文件表)的任何现有可用部分。一个MFT记录的大小通常为1KB,并且磁盘上的每个文件或目录至少需要一个MFT记录。小文件完全存储在其MFT记录中,而不合适的文件则在MFT之外分配簇。所有SDelete必须要做的事是分配可用的最大文件,以分配可用的MFT空间-当文件占用MFT记录中的所有可用空间时,NTFS将阻止文件变大,因为磁盘上没有剩余的可用群集(它们由先前分配的两个文件SDelete保存)。然后,SDelete重复该过程。当SDelete再也无法创建新文件时,它知道MFT中所有以前可用的记录已被安全覆盖的文件完全填充。

为了覆盖删除的文件的文件名,SDelete重命名该文件26次,每次用连续的字母字符替换文件名中的每个字符。例如,“ foo.txt”的第一个重命名将是“ AAA.AAA”。

SDelete在清理磁盘可用空间时不能安全删除文件名的原因是,删除它们将需要直接操纵目录结构。目录结构可以具有包含已删除文件名的可用空间,但是该可用目录空间不可用于分配给其他文件。因此,SDelete无法分配此可用空间,因此它可以安全地覆盖它。

 

    版权声明:

    博主在此发文(包括但不限于汉字、拼音、拉丁字母)均为随意敲击键盘所出,用于检验本人电脑键盘录入、屏幕显示的机械、光电性能,并不代表本人局部或全部同意、支持或者反对观点

    如需要详查请直接与键盘生产厂商法人代表联系。挖井挑水无水表,不会网购无快递。

    文章内容除非注明原创,否则来源于互联网,不代表本人的任何立场;涉及到的软件来源于互联网,仅供个人下载使用,请勿用于商业用途,版权归软件开发者所有,下载后请于24小时内删除,请支持正版!

    因下载本站任何资源造成的损失,全部责任由使用者本人承担!

    如果你是版权方,认为本文内容对您的权益有所侵犯,请联系博主,待博主进行严格地审查和背景调查后,情况属实的将在三天内将本文删除或修正。

    博主的文章没有高度、深度和广度,只是凑字数。由于博主的水平不高(其实是个菜B),不足和错误之处在所难免,希望大家能够批评指出。