Bagaimana saya bisa sepenuhnya menghapus semua data pada kartu SD (mikro)?

16

Saya baru saja mendapat kartu micro sd yang saya rencanakan untuk digunakan dengan Raspberry Pi.

Saya menggunakan manajer partisi KDE untuk menghapus partisi asli pada kartu dan untuk menulis partisi ext4 12GiB baru. Setelah melakukan ini, kartu masih mengatakan bahwa 6% darinya, 30,02 MiB, sedang digunakan.

Pada dasarnya, saya ingin sepenuhnya menghapus kartu dari semua konten sehingga mempersiapkannya untuk OS baru. Apakah perintah suka shredatau ddmelakukan trik atau akankah itu menghancurkan partisi juga?

pengguna3211355
sumber
Saya bias, tetapi jika Anda ingin kontrol penuh dari partisi, jangan gunakan partisi grafis, gunakan yang lama fdisk. (Kecuali Anda tidak bisa karena GPT atau batasan teknis lainnya.)
CijcoSistems
Ngomong-ngomong ... apakah RaspberryPi mendukung memuat kernel dari ext4 secara langsung? Saya ingat menggunakan FAT untuk proses boot awal (kernel, cmdline, konfigurasi SoC dan memori split), dan kemudian memiliki sistem file root pada partisi lain (atau NFS jika Anda suka)
CijcoSistems
[Hapus disk dengan aman - archlinux.org] "Menyeka disk dilakukan dengan menulis data baru di setiap bit." wiki.archlinux.org/index.php/Securely_wipe_disk

Jawaban:

24

Tebakan Anda ddbenar. Anda dapat menghapus kartu SD dengan perintah berikut (anggap saja, bahwa kartu SD Anda /dev/sdd):

Jangan menginterupsi perintah ini atau mungkin bisa merusak kartu SD.

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

Catatan: Jika perintah ini tidak berhasil diselesaikan dan Anda harus membatalkannya, maka kemungkinan besar dapat dipulihkan dengan program pemulihan partisi disk yang dicakup dalam posting lain.

Ini bisa memakan waktu tergantung pada ukuran dan kecepatan kartu SD. Jika Anda yakin, bahwa CIA ingin memulihkan file Anda, maka timpa kartu SD dengan urandomalih - alih zero:

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

ddperintah dari contoh di atas akan menghapus seluruh kartu SD, membiarkannya tanpa partisi, bahkan tanpa tabel partisi. Jadi, Anda harus membuat ulang partisi pada kartu SD. Anda dapat melakukan ini dengan alat pemartisi seperti cfdisk, parted(rekomendasi saya) atau gparted.

Dan satu hal lagi: berhati-hatilah saat memanggil ddperintah . Nilai of=argumen salah ketik dapat menyebabkan bencana.

david6
sumber
2
Jika Anda khawatir tentang CIA, Anda harus menggunakan /dev/randomdan melakukannya seperti 5 hingga 10 kali ... belum lagi Anda juga harus membakarnya dalam oven, terbakar dan menguburnya jauh di laut: P
CijcoSistems
3
@CijcoSistems: Saran untuk membakar, menyalakan, atau mengubur bisa berfungsi. Namun, metode penulisan data acak (5 hingga 10 kali) TIDAK akan.
david6
1
@ david6 Bisakah Anda menjelaskan mengapa menulis data berkali-kali melalui overwrite mungkin tidak berfungsi?
Denis
7
Memori solid-state non-volatile modern menggunakan leveling keausan untuk menghentikan baca / tulis berulang menggunakan bagian memori tertentu secara berlebihan. (Lihat: searchsolidstatestorage.techtarget.com/definition/wear-leveling ) Ini berarti bahwa data yang ingin ditulis 'ditimpa' sebenarnya dapat disimpan di tempat lain. Ini juga berarti bahwa kapasitas memori sebenarnya adalah 100 kali lebih banyak daripada yang disebutkan, untuk memungkinkan realokasi yang sedang berlangsung. Seperti yang disebutkan dalam jawaban saya, Anda harus menjalankan fungsi penghapus aman pabrikan , untuk mem-bypass efek 'tingkat pemakaian apa pun'.
david6
1
Saya tidak berpikir memakai leveling adalah masalah ketika Anda mengisi drive dengan nol sepenuhnya. Masalah sebenarnya adalah sektor buruk yang menurun dan tidak ditimpa.
HilarieAK
4

Jika Anda baru saja membuat partisi baru, seharusnya tidak ada file aktual di dalamnya. 30MB itu mungkin hanya sistem file itu sendiri. Partisi membutuhkan beberapa tabel berbeda dan yang lainnya harus benar-benar melacak file.

Anda dapat mengecek bahwa sebenarnya tidak ada apa-apa di sana dengan mencari file tersembunyi ls -alphdari baris perintah atau mengaktifkan file tersembunyi di menu "View" dari Nautilus.

Bergantung pada bagaimana Anda menjalankan perintah, kemungkinan menggunakan shredatau ddmemang akan menimpa tabel partisi dan / atau sistem file.

TheSchwa
sumber
4

Apa yang ingin Anda capai?


(A.) Hapus semua partisi saat ini, untuk menggunakan kembali kartu:

Untuk menghapus partisi dan / atau memformat ulang kartu SD (mikro), cukup gunakan gnome-disk-utility (alias 'Disk').

ATAU

(B.) Hapus konten saat ini (atau sebelumnya) pada kartu, sehingga TIDAK dapat dipulihkan:

Untuk menghapus kartu dengan aman , Anda perlu EITHER menghancurkan kartu secara fisik (render menjadi partikel sub-2mm²) ATAU menggunakan utilitas (dari vendor) untuk memicu fungsi hapus aman .

Beberapa penulisan (data acak), atau format ulang TIDAK harus menghapus data.

david6
sumber
The sfillalat dapat digunakan untuk tujuan ini. Lihat superuser.com/questions/319262/...
Jim Garrison
1
@ Jim Garrison : Itu tidak membahas leveling keausan (lihat komentar saya sebelumnya), dan pemetaan ulang blok data, yang dilakukan oleh pengontrol memori flash bawaan. Data itu masih berpotensi dipulihkan.
david6
2

Anda dapat merobek-robek file sebelum menghapusnya:

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

shred params berarti: Verbose, penghapusan paksa file yang tidak dapat ditulis, jangan menulis byte acak (mempercepat), menulis nol (lebih cepat), memotong dan menghapus file setelah menulis nol.

Ini akan membuang data sedemikian rupa sehingga tidak akan dipulihkan oleh aplikasi seperti photorec.

Lihat /unix/27027/how-do-i-recursively-shred-an-entire-directory-tree

Ondra Žižka
sumber
1
Sayangnya ini tidak akan berfungsi pada kartu SD. Jika Anda menimpa file pada mereka, Anda menulis ke sektor lain dari SD. Jadi, agar efektif, Anda harus menulis di seluruh kartu SD, seperti pada jawabannya.
luca76