Как полностью стереть все данные на (микро) SD-карте?

16

Я только что получил карту Micro SD, которую планирую использовать с Raspberry Pi.

Я использовал менеджер разделов KDE, чтобы удалить исходный раздел на карте и написать новый раздел 12GiB ext4. После этого карта все еще говорит, что используется 6%, 30,02 МБ.

По сути, я хочу полностью стереть с карты все содержимое, чтобы подготовить ее к новой ОС. Команде понравится, shredили ddона добьется цели, или это также разрушит раздел?

user3211355
источник
Я предвзят, но если вы хотите получить полный контроль над разделами, не используйте графическое разделение, используйте старый добрый fdisk. (Если вы не можете из-за GPT или других технических ограничений.)
CijcoSistems
Кстати ... RaspberryPi поддерживает загрузку ядра напрямую из ext4? Я помню, как использовал FAT для раннего процесса загрузки (ядро, cmdline, конфигурация SoC и разделение памяти), а затем имел корневую файловую систему в другом разделе (или NFS, если хотите)
CijcoSistems
[Надежно стереть диск - archlinux.org] «Очистка диска выполняется путем записи новых данных через каждый бит». wiki.archlinux.org/index.php/Securely_wipe_disk

Ответы:

24

Ваше предположение ddправильно. Вы можете стереть SD-карту с помощью следующей команды (предположим, что ваша SD-карта /dev/sdd):

Не прерывайте эту команду, иначе это может привести к повреждению SD-карты.

$ sudo dd if=/dev/zero of=/dev/sdd bs=8192

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

Это может занять некоторое время в зависимости от размера и скорости SD-карты. Если вы уверены, что ЦРУ захочет восстановить ваши файлы, перезапишите SD-карту urandomвместо zero:

$ sudo dd if=/dev/urandom of=/dev/sdd bs=8192

ddКоманда из приведенных выше примеров удалит всю SD-карту, оставив ее без разделов, даже без таблицы разделов. Поэтому вам нужно будет воссоздать раздел на SD-карте. Вы можете сделать это с помощью любого инструмента разбиения, например cfdisk, parted(моя рекомендация) или gparted.

И еще одна вещь: будьте предельно осторожны при вызове ddкоманды . Опечатка в of=значении аргумента может привести к катастрофе.

david6
источник
2
Если вы беспокоитесь о ЦРУ, вы должны использовать /dev/randomи делать это от 5 до 10 раз ... не говоря уже о том, что вы должны также сжечь его в духовке, загореться и похоронить его глубоко в океане: P
CijcoSistems
3
@CijcoSistems: предложение сжечь, зажечь или похоронить может работать. Однако метод записи случайных данных (от 5 до 10 раз) НЕ БУДЕТ.
Давид6
1
@ david6 Не могли бы вы объяснить, почему запись данных много раз с помощью перезаписи может не работать?
Денис
7
Современная энергонезависимая твердотельная память использует выравнивание износа, чтобы остановить повторные операции чтения / записи, чрезмерно использующие какой-либо конкретный раздел памяти. (См .: searchsolidstatestorage.techtarget.com/definition/wear-leveling ) Это означает, что записи данных, предназначенные для «перезаписи», могут фактически быть сохранены в другом месте. Это также означает, что реальная емкость памяти в несколько раз превышает заявленную, чтобы обеспечить текущее перераспределение. Как отмечено в моем ответе, вы должны вызвать функцию безопасного стирания производителя , чтобы обойти любые эффекты «выравнивания износа».
Давид6
1
Я не думаю, что выравнивание износа является проблемой, когда вы полностью заполняете диск нулями. Реальная проблема была бы в том, что плохие секторы падают и не перезаписываются.
HilarieAK
4

Если вы только что создали новый раздел, на нем не должно быть никаких реальных файлов. Эти 30 МБ, вероятно, просто сама файловая система. Разделу нужно несколько разных таблиц и еще много чего, чтобы фактически отслеживать файлы.

Вы можете дважды проверить, что на самом деле там ничего нет, ища скрытые файлы ls -alphиз командной строки или включив скрытые файлы в меню «Вид» Nautilus.

В зависимости от того, как именно вы вызываете команды, вполне вероятно, что использование shredили ddдействительно перезапишет таблицу разделов и / или файловую систему.

TheSchwa
источник
4

Чего ты пытаешься достичь?


(A.) Удалите все текущие разделы, чтобы повторно использовать карту:

Чтобы удалить разделы и / или переформатировать (микро) SD-карту, просто используйте утилиту gnome-disk (также называемая «Диски»).

ИЛИ

(B.) Удалите любой текущий (или предыдущий) контент с карты, чтобы его НЕ удалось восстановить:

Чтобы безопасно стереть карту, вам нужно ЛИБО физически уничтожить карту (визуализировать в частицы размером менее 2 мм²) ИЛИ использовать утилиту (от поставщика) для запуска функции безопасного стирания .

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

david6
источник
sfillИнструмент может быть использован для этой цели. См. Superuser.com/questions/319262/…
Джим Гаррисон
1
@Jim Garrison : Это не касается выравнивания износа (см. Мой предыдущий комментарий) и повторного отображения блоков данных, выполненных встроенным контроллером флэш-памяти. Эти данные еще потенциально могут быть восстановлены.
Давид6
1
Дальнейшее чтение: dslreports.com/forum/r27719820-Securedly-erase-memory-cards
david6
2

Вы можете уничтожить файлы перед их удалением:

find /media/user/SD32/ -type f -exec shred -v -f -n0 -z -u   {} \;

shred параметры означают: Verbose, принудительно удалять не записываемые файлы, не записывать случайные байты (ускоряется), записывать нули (намного быстрее), обрезать и удалять файл после записи нулей.

Это избавит данные таким образом, что они не будут восстановлены такими приложениями, как photorec.

См. Https://unix.stackexchange.com/questions/27027/how-do-i-recursively-shred-an-entire-directory-tree

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