Есть ли причина, по которой шифр / w заполняет временные файлы вместо записи на сырой диск?

551
Hashim

Команду Windows cipher /wможно использовать для безопасного удаления свободного места на жестком диске без использования сторонних инструментов или графического интерфейса пользователя:

enter image description here

cipherработает путем создания папки с именем EFSTMPWPв корне целевого диска; внутри этой папки он последовательно заполняет три временных файла нулями, единицами и случайными числами, соответственно, один за другим, до размера свободного места, оставшегося на диске.

К тому времени, когда файл занимает все свободное место на диске, он фактически вынуждает файловую систему перезаписывать все данные, хранящиеся в его свободном пространстве, вновь записанными данными файла, делая любые ранее сохраненные данные без возможности восстановления.

enter image description here

Я понимаю, что Windows, как правило, не предоставляет пользователям доступ к необработанному диску, как это делает Linux, но я не совсем понимаю, почему собственные утилиты Windows решили косвенно записывать данные в файлы и подвергаться узким местам дискового ввода-вывода. в процессе, вместо простой записи на сам сырой диск.

Есть ли какая-то особая причина, по которой он стирает диски, используя файлы вместо записи на сырой диск, или это, скорее всего, просто недосмотр проекта?

1
Дайте мне знать, если вы действительно ищете логичный ответ или просто для того, чтобы тщательно изучить Microsoft и / или этот инструмент, разработанный их разработчиками, или что-то еще. Я могу сделать логический вывод, основываясь на том, какие подробности MS нам предлагает прочитать, и на простом старом здравом смысле. Pimp Juice IT 5 лет назад 1
@PimpJuiceIT Логический вывод из сочетания документации MS и технических знаний - это именно то, что я ищу, и ваш ответ вполне соответствует требованиям. Обратите внимание, что я откатил все внесенные вами изменения в вопрос, который отличался от первоначального вопроса, который я задавал. Если вопрос закрыт, пусть будет так, но я бы предпочел не радикально менять суть того, что я прошу, просто чтобы он оставался открытым. Если он закроется, я создам для него мета-поток, так как я видел вопросы с аналогичным форматом и убежден, что, согласно справочному центру, это по теме. Hashim 5 лет назад 1

1 ответ на вопрос

2
Pimp Juice IT

Глядя cipher /?из командной строки, я вижу, что cipherкоманда / приложение делает гораздо больше, чем просто операции, которые происходят при использовании /wопции. Как указано в справке, он используется для отображения и изменения шифрования каталогов и файлов на разделах NTFS .

Мне кажется, что /wпереключатель с этой командой - это просто простая функция, которая работает с файлами и папками только на разделах NTFS в соответствии с описанием его основных функций через chipher /?.

cipher /?

Displays or alters the encryption of directories [files] on NTFS partitions.  /W Removes data from available unused disk space on the entire volume. If this option is chosen, all other options are ignored. The directory specified can be anywhere in a local volume. If it is a mount point or points to a directory in another volume, the data on that volume will be removed. 

Несколько конкретных вещей, на которые следует обратить внимание в публикации Microsoft «Как использовать Cipher.exe для перезаписи удаленных данных в Windows ~» относительно специфических функций этого инструмента., ,

  1. Эта команда / приложение, очевидно, была разработана во времена Windows 2003 (возможно, она даже старше), поэтому рассмотрите возможность использования другого инструмента, если его недостаточно для ваших задач / задач.

  2. есть упомянутое затруднение с /wфункциональностью опции с файлами размером менее 1 КБ, поэтому, если для вас важны файлы размером менее 1 КБ, используйте другой инструмент.

  3. в нем говорится, что для завершения может потребоваться много времени, если необходимо перезаписать много свободного пространства, поэтому они не претендуют на то, что этот инструмент является эффективным зверьком ввода-вывода с необработанным диском - используйте другой инструмент, если это является проблемой для ваших нужд.


Зная все это, кажется, что дополнительные издержки ввода-вывода и риски узких мест, о которых вы упомянули, не имели никакого значения или беспокойства при разработке этой функциональности.

Этот инструмент не делает ничего особенного с этой функциональностью (работа с файлами и папками на разделах NTFS), чего не мог сделать другой собственный метод Windows; эта конкретная функциональность не является надежной.

См. Статью «Как обнулить свободное место на виртуальном диске в Windows для лучшего сжатия» и ответ на этот вопрос относительно fsutilдругого собственного метода Windows для обнуления свободного пространства.

  • FSUTIL

    fsutil volume diskfree f: 

    Который показал этот отчет:

    Total # of free bytes : 249899469856 Total # of bytes : 249997291520 Total # of avail free bytes : 249899469856 

    Я использовал общее количество свободных байтов в следующих командах:

    fsutil file createnew F:\clear 249899469856 fsutil file setvaliddata F:\clear 249899469856 fsutil file setzerodata offset=0 length=249899469856 F:\clear del f:\clear 

    Потребовалось около 4 часов, чтобы написать 250 ГБ нулей.

    Источник


Дополнительные ресурсы

  • cipher.exe

    /w:PathName

     Remove data from unused portions of a volume. PathName can indicate any directory on the desired volume. Cipher does not obtain an exclusive lock on the drive. This option can take a long time to complete and should only be used when necessary. 
  • Как использовать Cipher.exe для перезаписи удаленных данных в Windows ~

    Примечание. Команда cipher / w не работает с файлами размером менее 1 КБ. Поэтому обязательно проверьте размер файла, чтобы убедиться, что он меньше 1 КБ. Эту проблему планируется исправить в Longhorn.

    Данные, которые не распределены по файлам или папкам, перезаписываются. Это навсегда удаляет данные. Это может занять много времени, если вы перезаписываете много места.