Самый быстрый способ очистить SSD от всех его разделов для перераспределения в Linux?

21

Я хочу стереть SSD со всех его разделов и данных, чтобы я мог перераспределить его (это не в целях безопасности).

Я посмотрел, sudo dd if=/dev/zero of=/dev/sdb bs=1Mно если это просто заполняет каждый раздел нулями, я не уверен, что это то, что я хочу сделать.

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

IgDV
источник
1
Изучите это: ATA Secure Erase . У меня нет опыта в этом процессе, так что это не ответ, а подсказка. Любой может написать свой ответ на этот вопрос, если вы знаете, что это правильный путь.
Камиль Мачоровски
18
В целях безопасности или просто потому, что вам нужно переделить?
user1686
в основном только для передела
IgDV
14
Насос 12-го действия. И вы знали, что кто-то скажет это рано или поздно!
ssimm
1
@ssimm - Я предпочитаю барбекю на углях.
Даниэль Р Хикс

Ответы:

41

На SSD: вы можете TRIM целые диски или разделы, используя blkdiscard. Это не очень безопасно, но практически мгновенно (диск просто помечает все ячейки как неиспользуемые).

Для безопасности: используйте полное шифрование диска. Не беспокойтесь о том, чтобы стереть весь диск, если он зашифрован - вам нужно только стереть область, содержащую ваши ключи (например, первые 1–2 МБ каждого зашифрованного раздела).

Для перераспределения: опять же, не беспокойтесь о стирании всех данных. Вам нужно только уничтожить файловые системы, используя wipefs, а затем очистить первые 1 МБ вашего диска, чтобы очистить оставшиеся загрузчики. После того, как вы отформатируете раздел с помощью mkfs, ОС просто предположит, что он полностью пуст.

(На самом деле, в Linux mkfs.ext4 будет автоматически TRIM весь раздел перед его форматированием.)

user1686
источник
6
Для перераспределения, почему бы просто не удалить старые разделы и создать новые?
el.pescado
5
Потому что, если вы создадите новые разделы в том же месте (начальная позиция), вы просто найдете в них те же самые старые данные! (Конечно, это обычно не проблема, потому что переформатирование с mkfsбудет громить его в любом случае Но различные нечетные ситуации. Действительно бывает - wipefsсуществует потому , что это было необходимо.)
user1686
4
@IgDV - что man wipefsговорит? (Подсказка: посмотрите на первый пример в разделе примеров на странице руководства)
Тимо
2
«вам нужно только стереть область, содержащую ваши ключи» - на SSD ключи также могут быть восстановлены. TPM или надежные ключи защиты паролем могут быть лучшим вариантом. blkdiscardбыло бы неплохо, так как это создало бы загадку из остальной части диска, даже если злоумышленник знал ключ (предполагая, что старое сопоставление также не может быть восстановлено). «затем очистите первые 1 МБ вашего диска, чтобы очистить оставшиеся загрузчики» - дополнительный раздел используется только как переполнение первых 512B. Если вы протрите первый 512B, вы не пострадаете от остальных 1M.
Мацей Пехотка
1
@MaciejPiechotka: К сожалению, некоторые загрузчики (в частности, grub) также используют пробел после MBR.
user1686
14

Как упоминает Камиль Макиоровский , лучший способ удаления диска целиком с наименьшим износом при записи - использовать команду ATA «безопасное стирание». Это даст команду оборудованию выполнить одну полную очистку, а не многократно перезаписывать ячейки, как с помощью подобных инструментов shred. Это может быть сделано только для всего диска, если вам нужно выборочно стереть разделы, см . Ответ grawity ( blkdiscard)

Точная реализация команды зависит от аппаратного обеспечения.

  • Большинство твердотельных накопителей будут использовать объемный электрический сигнал, чтобы стирать целые микросхемы в режиме «все или ничего». Это приводит к (нормальному) износу при записи, но только в минимально возможной степени (~ один цикл записи).

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

  • Жесткие диски Spinning-Rust будут выполнять аппаратную нулевую запись всех секторов, что эквивалентно (и требует много времени) dd if=/dev/zero.

Этот процесс довольно хорошо описан здесь: https://www.thomas-krenn.com/en/wiki/SSD_Secure_Erase (лично я неоднократно использовал этот процесс на своих собственных SSD при переустановке ОС)

Изменить: если вас интересуют последствия для безопасности: проверьте этот вопрос Security.SE

Жюль Керсемакерс
источник
Поддерживается ли безопасное стирание большинством дисков ATA? У меня сложилось впечатление, что его поддержка необычна.
Руслан
1
Я еще не нашел (современный, SATA) диск, который бы не поддерживал его, но я признаю, что мой опыт ограничен жесткими дисками, которыми я лично владею. Кажется также , что существует разница между «безопасным стиранием» и «улучшенным безопасным стиранием», причем последнее менее поддерживается.
Жюль Керсемакерс
3
@ Руслан Я никогда не видел (или не слышал) о диске со спецификацией SATA-2, который бы его не поддерживал. Почти любой SATA-диск, созданный за последние 10 лет или около того, должен иметь его.
Тонни
Означает ли это также, что на самошифрующихся твердотельных накопителях команда TRIM запрещена? (В противном случае это не всегда шифрование, верно?)
Mehrdad
1
@Mehrdad: Да, использование TRIM на зашифрованном SSD приводит к утечке информации о том, какие блоки свободны. Приемлемо ли это, зависит от ваших потребностей безопасности. См. Например, askubuntu.com/questions/399211/… для обсуждения.
слеське
4

Помня о том, что вы попросили найти решение о том, как быстро очистить диски. Замените / dev / sdx на ваш диск, чаще всего / dev / sda

Это сотрет таблицу разделов.

dd if=/dev/zero of=/dev/sdx bs=1024 count=50

Это сотрет весь диск, это займет некоторое время.

cat /dev/zero > /dev/sdx
Джаррод Чесни
источник
4
Не используйте cat. Используйте ddдля улучшения производительности.
Майкл Джонсон
6
@Micheal Вы так говорите, но по умолчанию ddиспользуются 512-байтовые буферы, которые снижают производительность ... Coreutils ( cpи, вероятно, также cat) имеют более разумный размер буфера. ddВо всяком случае, в этом нет ничего, что делает это как-то быстрее.
user1686
3
@grawity Вы можете изменить размер буфера с помощью dd. В прошлый раз, когда я пытался использовать catдля записи изображения на диск, это было значительно медленнее, чем при использовании ddсоответствующего размера буфера.
Майкл Джонсон