使用内置工具安全地擦除 Win 3.1 / DOS 6.22 系统上的空闲磁盘空间

使用内置工具安全地擦除 Win 3.1 / DOS 6.22 系统上的空闲磁盘空间

我有一台 1994 年的复古笔记本电脑,IBM Thinkpad 340,我想把它赠送他人,但首先想安全地擦除其已删除的文件。

该系统包含 GUI 和 CLIundelete应用程序,其中列出了以前删除的文件及其根据完整的集群数量而相应的恢复机会。

我正在寻找一种类似于ciphersdelete在较新的 Windows 系统上的解决方案,使用内置于带有 DOS 6.22 的 Windows 3.1 中的工具,通过多次零/随机写入遍历覆盖空磁盘部分。

我想避免安装任何额外的东西或者从软盘启动维护操作系统,因为我手头没有简单的数据接口到那个复古设备:复古笔记本电脑上没有网络,我当前的任何设备上都没有软盘,而且我想避免购买 USB 软盘驱动器。

如果找不到软件解决方案或 USB 软盘驱动器,我将不得不求助于硬件解决方案:拆开复古笔记本电脑。取出硬盘驱动器。使用我选择的工具通过 USB-ATA/IDE 桥接器(适配器/转换器)将硬盘驱动器连接到主机。但我希望避免对那台幸运的仍能正常工作的复古笔记本电脑进行这种侵入性操作。

Google 没有提供关于这些旧式 WWW 前系统的任何有用软件实用程序信息。如果有任何使用过这些旧系统/设备的人能提供一些提示,我将不胜感激!


这就是我在实践中解决问题的方法

1)用随机数据覆盖:我使用文件管理器多次 将c:\windows\system内容复制到虚拟目录中,并添加一些剩余数据,直到显示。然后重复删除-复制-循环,总共完成约 7 次完全覆盖。最后删除了虚假目录。— 致谢c:\aaFile Manager0KB freec:\@KodyBrown

2)用零覆盖: 为我的笔记本电脑买了一个 USB 软盘(6 欧元,二手),并创建了一个可启动软盘,KillDisk for DOS v4.1(2008 年的最终版本,没有进一步开发)。启动 KillDisk 并用零擦除未使用的磁盘空间。这样,任何可能的未来数据恢复尝试都有更好的机会找到有效数据而不是虚假数据。为了确认,我查看了原始磁盘数据,空白部分确实被正确填充了空数据(0x00)。

尽管如此,我仍然对最初的理论问题感到好奇

对于没有软盘驱动器的极客和其他感兴趣的用户来说。我仍然希望有一个可以正常工作的 DOS 6.22 shell 脚本,它可以用几个随机数据传递和最后的空数据传递正确地填充磁盘剩余部分。我愿意测试它并提供反馈。在用例中,没有与复古设备的数据接口(没有网络,没有软盘),因此必须手动输入。让人想起 1980 年代微型计算机时代,当时计算机杂志上有源代码。迷人!;-)

答案1

实现此目的的一种简单方法是反复复制 Windows 目录,只需制作额外的副本,直到空间用完。删除刚刚创建的副本。然后根据需要重复执行多次(通过)。

这实际上会覆盖磁盘上的所有可用空间。

更新:

这是用于自动化该过程的批处理文件。我在 VMware 客户机中运行的旧版 FreeDOS 上对其进行了测试。我认为它应该可以在 DOS 5 及更新版本上运行。

将此文件放在 C: 驱动器的根目录(即C:\CLEAN.BAT:)并从那里运行它。

每次运行时,它都会“覆盖”一次。然后您必须删除目录中的所有文件C:\TMP以释放空间(C:\TMP>DEL *.*)。(我不希望批处理文件自行删除任何文件,以防万一。)

您可以根据需要多次运行它。每次运行它都是一次覆盖,因此为了安全起见,您可能需要运行它两三次。

清洁蝙蝠

@ECHO OFF

IF "%1"=="" GOTO :INIT

:PARSE
  SET ARG1=%1
  SET ARG2=%2
  SET ARG3=%3
  SET ARG4=%4

  IF NOT "%4"=="" GOTO :LAST
  IF NOT "%3"=="" GOTO :LOOP4
  IF NOT "%2"=="" GOTO :LOOP3
  IF NOT "%1"=="" GOTO :LOOP2

:INIT
  C:
  CD\
  IF NOT EXIST "C:\TMP\" MKDIR C:\TMP >NUL
  CHDIR C:\TMP

  COPY C:\WINDOWS\SETUP.EXE SETUP.EXE >NUL
  COPY SETUP.EXE+SETUP.EXE FILE.0 >NUL

:LOOP1
  FOR %%E IN (A B C D E F G H I J K L M N O P Q R S T U V W X Y Z 1 2 3 4 5 6 7 8 9 0) DO CALL C:\CLEAN.BAT %%E
  GOTO :END

:LOOP2
  FOR %%F IN (A B C D E F G H I J K L M N O P Q R S T U V W X Y Z 1 2 3 4 5 6 7 8 9 0) DO CALL C:\CLEAN.BAT %ARG1% %%F
  GOTO :END

:LOOP3
  FOR %%G IN (A B C D E F G H I J K L M N O P Q R S T U V W X Y Z 1 2 3 4 5 6 7 8 9 0) DO CALL C:\CLEAN.BAT %ARG1% %ARG2% %%G
  GOTO :END

:LOOP4
  FOR %%H IN (A B C D E F G H I J K L M N O P Q R S T U V W X Y Z 1 2 3 4 5 6 7 8 9 0) DO CALL C:\CLEAN.BAT %ARG1% %ARG2% %ARG3% %%H
  GOTO :END

:LAST
  COPY FILE.0 F%ARG1%%ARG2%%ARG3%%ARG4%.0
  IF NOT "%ERRORLEVEL%"=="0" EXIT
  GOTO :END

:END

我的 Windows 3.1 目录中的 SETUP.EXE 文件不到 500KB。为了加快进程,我将其(两次)复制到一个新文件并使用它,因此该过程将有效地清除驱动器中大约 950KB 以外的所有文件。您可以选择较小的文件以获得更精细的粒度,但您可能会遇到单个目录中文件过多的问题。

此外,FreeDOS 不会在errorlevel复制操作失败时更改。MSDOS 的响应一直很好errorlevel,因此您不应该遇到这种情况。如果它确实开始说由于磁盘空间不足而无法复制临时文件,您可以安全地停止 ( Ctrl+C) 该过程。

答案2

退出 Windows 进入 DOS,以减少副作用(虚拟内存、文件锁等)。然后运行SCANDISK并对所有修复和优化都说是,然后运行DEFRAG。这至少会稍微打乱您的数据。

我自己做了这件事,之后内部undelete命令就什么也找不到了。

专业的数据取证软件仍然可以找到一些东西,但是你的可能爱管闲事的天才朋友或二手买家undelete至少无法使用内部工具找到任何东西。

相关内容