Плохо ли шред для стирания данных с твердотельных накопителей?

Быстрое и грязное решение — дать xargsвариант -L 2. Лучше просто сделать все это в awk; это очень мощно.

Вы понимаете, что строка поиска -e 10, заданная для grepможет легко соответствовать Ethernet-адресу или IPv6-адресу.

28
19.06.2020, 15:20
3 ответа

Я бы рекомендовал использовать безопасную очистку с помощью hdparm, если она вообще поддерживается:

https://ata.wiki.kernel.org/index.php/ATA_Secure_Erase

здесь есть пошаговые инструкции по удалению данных с твердотельных накопителей

10
18.03.2021, 23:27

Запись блока на SSD не перезаписывает старый блок. Это потому, что все последние SSD используют так называемое «выравнивание износа».

Чтобы записать блок на SSD, его нужно сначала стереть, а затем записать новые данные. Но стирание — это операция, которую можно выполнить только ограниченное количество раз; каждый раз, когда вы выполняете стирание, вы «ослабляете» аппаратное обеспечение до тех пор, пока блок больше не сможет быть стерт должным образом.

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

А если данные на старом блоке на месте, значит, их еще можно прочитать.

Итак, любая из команд, которые вы можете использовать для «перезаписи» файла (cp, dd, cat, shredи многие другие ), имеют эту слабость :. ] На самом деле он вообще не перезаписывает файл, вместо этого он записывает нули, случайные данные или что-то еще в новые блоки.

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

Все эти команды являются «плохими» для SSD в том смысле, что любая запись использует ограниченное количество операций записи SSD, что сокращает срок службы SSD. А shredособенно плох, потому что многократно перезаписывает файл. На HD это служит цели :Головка чтения -записи -никогда полностью не центрируется,таким образом, перезаписывая его несколько раз, можно убедиться (или попытаться убедиться ), что на границе дорожки не осталось остаточных магнитных данных, которые могли бы быть использованы знающими людьми для восстановления данных.


Что касается blkdiscard , это вызывает fstrim , который использует бит обрезки ATAPI, чтобы сообщить приводу, что блок больше не нужен. Более подробную информацию можно найти в спецификации ACS -4 .

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

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


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


Итак, каково решение для вашего варианта использования? Если это действительно

I'm not dealing with sensitive data here and don't need to protect the drive from a knowledgeable person going to great length to recover data

, тогда вы можете просто использовать rm. На самом деле требуется немало знаний и усилий, чтобы восстановить удаленный файл в файловой системе ext4, особенно если за это время в этой файловой системе произошло больше операций записи. Это выполнимо, но не кем-либо. И это, безусловно, самый быстрый вариант.

Следующим лучшим вариантом является blkdiscard(, который будет работать только с твердотельными накопителями, поддерживающими TRIM, но это должно быть верно и для современных твердотельных накопителей ). Хотя это не сделает его безопасным, как описано выше,теперь планка была поднята для того, кто может получить прямой доступ к SSD. Что не может сделать никто без специального оборудования, необходимого для этого.

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

33
18.03.2021, 23:27

This is the fastest way to securely erase a drive I know of.

Для твердотельных накопителей нет.

blkdiscard /dev/deviceв десятки раз быстрее и должен быть одинаково безопасным для вашего варианта использования.

Would cat /dev/zero > /dev/sdX be as fast?

Судя по всему, эти две команды должны быть одинаково быстрыми.

Fast is what I need while not decreasing the SSD's life span.

Вы сокращаете срок службы твердотельного накопителя, даже записывая на него нули. Нули по-прежнему являются данными.

29
18.03.2021, 23:27

Теги

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