Клочок: не работает над Журналируемым FS?

Подобную интерполяцию лучше всего выполнять в HSL или HSV цветовых пространствах (а не YUV).

Причина, по которой цвета среднего диапазона выглядят «мутными», заключается в том, что если вы просто линейно увеличиваете красный (#ff0000) одновременно с уменьшением зеленого (#00ff00), средний цвет получается как #808000 вместо #ffff00.

Вместо этого найдите HSL (или HSV) эквивалент вашего начального цвета, и то же самое для конечного цвета. Интерполируйте в это цветовое пространство, а затем для каждой точки снова конвертируйте обратно в RGB.

Поскольку значения S и L (или V) одинаковы для полностью насыщенного красного и зеленого, изменится только переменная H (оттенок), что даст надлежащий эффект спектр цвета.

10
задан Dan 1 September 2014 в 16:15
поделиться

3 ответа

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

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

Файловые системы RAID (в зависимости от режима RAID) могут не перезаписывать все копии исходных блоков . Если есть избыточность, вы можете уничтожить один диск, но не другой (и), или вы можете обнаружить, что разные проходы повлияли на разные диски, так что каждый диск был частично измельчен.

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

Сжатые файловые системы могут не перезаписывать исходные блоки, потому что данные, с которыми перезаписи либо случайны, либо чрезвычайно сжимаемы на каждом проходе, и любой из них может привести к радикальному изменению сжатого размера файла и, следовательно, перемещению. NTFS хранит небольшие файлы в MFT, и когда shred округляет размер файла до кратного одного блока, его первая «перезапись» обычно приводит к перемещению файла в новое место, которое затем будет бессмысленно измельчено, оставляя небольшой слот MFT нетронутым.

Shred не может обнаружить ни одно из этих условий (если у вас нет специальной реализации, которая напрямую касается вашей fs и драйвер блока - я не знаю, существуют ли такие вещи на самом деле). Вот почему он более надежен при использовании на всем диске, чем в файловой системе.

Shred никогда не уничтожает «другие вещи» в смысле других файлов. В некоторых из описанных выше случаев он уничтожает ранее нераспределенные блоки вместо блоков, содержащих ваши данные. Он также не уничтожает метаданные в файловой системе (что, я думаю, именно то, что вы подразумеваете под «заголовком файла»). Параметр -u пытается перезаписать имя файла, путем переименования в новое имя той же длины и последующего сокращения этого символа до 1 символа перед удалением файла. Вы можете увидеть это в действии, если также укажете -v.

15
ответ дан 3 December 2019 в 18:35
поделиться

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

Например, класс System.String является неизменным, но я думаю, что было бы разрешено кэшировать хэш-код для экземпляра, поэтому хеш вычисляется только при первом вызове GetHashCode () . Обратите внимание, что, насколько мне известно, класс System.String не делает этого , а не , но я думаю, что он может и по-прежнему считаться неизменным. Конечно, любое из этих изменений должно быть обработано потокобезопасным способом (в соответствии с ненаблюдаемым аспектом изменений).

Если честно, я могу ' вы также должны учитывать, что многие приложения автоматически создают копии файловых данных:

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

Итак, если не считать проверки каждого отдельного двоичного файла, который вы используете для работы с вашими данными, он мог быть скопирован вправо, влево и по центру без вашего ведома. Единственный реальный способ - всегда уничтожать целые разделы (или диски).

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

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

4
ответ дан 3 December 2019 в 18:35
поделиться

Проблема заключается в том, что данные могут находиться более чем в одном месте на диске. Когда данные существуют ровно в одном месте, уничтожение может детерминированно «стереть» эту информацию. Однако файловые системы, которые ведут журнал, или другие расширенные файловые системы могут временно записывать данные вашего файла в нескольких местах на диске. Shred - постфактум - не имеет возможности узнать об этом и не может узнать, где данные могли быть временно записаны на диск. Таким образом, у него нет способа стереть или перезаписать эти сектора диска.

Представьте себе: вы записываете файл на диск в журналируемой файловой системе, которая ведет журнал не только метаданных, но и данных файла. Данные файла временно записываются в журнал, а затем записываются в его окончательное расположение. Теперь вы используете измельчение файла. Последнее место, где были записаны данные, можно безопасно перезаписать с помощью клочка. Однако shred должен иметь какой-то способ гарантировать, что сектора в журнале, которые временно содержали содержимое вашего файла, также будут перезаписаны, чтобы иметь возможность обещать, что ваш файл действительно не подлежит восстановлению. Представьте себе файловую систему, в которой журнал даже не находится в фиксированном месте и не имеет фиксированной длины.

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

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

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

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

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

2
ответ дан 3 December 2019 в 18:35
поделиться
Другие вопросы по тегам:

Похожие вопросы: