Bagaimana cara menghapus ruang disk kosong di Linux?

145

Ketika file dihapus, isinya mungkin masih tersisa di sistem file, kecuali secara eksplisit ditimpa dengan sesuatu yang lain. The wipeperintah aman dapat menghapus file, tetapi tampaknya tidak memungkinkan menghapus ruang disk tidak digunakan oleh file.

Apa yang harus saya gunakan untuk mencapai ini?

Alex B
sumber
Satu-satunya solusi yang aman adalah menyimpan file Anda di tempat lain, menghapus seluruh partisi, membuat ulang sistem file, dan kemudian mengembalikan file Anda. Saya sudah menjalankan photorec dan terkejut dengan berapa banyak barang yang bisa diambil bahkan setelah 'menyeka' ruang kosong. Solusi kompromi adalah memindahkan batas kiri partisi Anda sebesar 6% dari ukurannya setelah menghapus ruang kosong yang tampaknya.
user39559

Jawaban:

107

Peringatan: Perangkat keras disk / SSD modern dan sistem file modern mungkin membuang data di tempat-tempat di mana Anda tidak dapat menghapusnya, sehingga proses ini mungkin masih meninggalkan data pada disk. Satu-satunya cara aman untuk menghapus data adalah perintah ATA Secure Erase (jika diterapkan dengan benar), atau penghancuran fisik. Lihat juga Bagaimana saya dapat menghapus semua informasi pada hard drive dengan andal?

Anda dapat menggunakan seperangkat alat yang disebut secure-delete.

sudo apt-get install secure-delete

Ini memiliki empat alat:

srm- menghapus file yang ada
smemdengan aman - menghapus jejak file dari ram dengan aman
sfill- menghapus semua ruang yang ditandai kosong pada hard drive Anda
sswap- menghapus semua data dari ruang swap Anda.

Dari halaman manual srm

srm dirancang untuk menghapus data pada media dengan cara aman yang tidak dapat dipulihkan oleh pencuri, penegak hukum atau ancaman lainnya. Algoritme penghapusan didasarkan pada kertas "Penghapusan Aman Data dari Memori Magnetik dan Solid-State" disajikan pada Simposium Keamanan Usenix ke-6 oleh Peter Gutmann, salah satu kriptografi sipil terkemuka.

Proses penghapusan data aman srm berjalan seperti ini:

  • 1 lulus dengan 0xff
  • 5 operan acak. /dev/urandomdigunakan untuk RNG aman jika tersedia.
  • 27 berlalu dengan nilai-nilai khusus yang didefinisikan oleh Peter Gutmann.
  • 5 operan acak. /dev/urandomdigunakan untuk RNG aman jika tersedia.
  • Ubah nama file menjadi nilai acak
  • Pangkas file

Sebagai ukuran keamanan tambahan, file dibuka dalam mode O_SYNC dan setelah setiap fsync()panggilan dilewati . srmmenulis 32k blok untuk tujuan kecepatan, mengisi buffer cache disk untuk memaksa mereka mem-flush dan menimpa data lama milik file tersebut.

fnord_ix
sumber
5
Sulit untuk menemukan beranda "resmi" saat ini dari penghapusan aman. Mungkin versi yang lebih lama mengklaim tidak ada laporan bug, tetapi pada saat yang sama tidak ada sistem bugtracking terbuka di mana saya dapat melaporkan bug yang saya temukan. Beranda hapus aman juga menunjukkan bahwa itu mungkin tidak menghapus semua blok data yang tidak digunakan, tergantung pada sistem file yang Anda gunakan, yang benar.
user39559
12
Dengan hard disk modern (lebih besar dari sekitar 20 GB), sama sekali tidak berguna untuk melakukan beberapa lintasan dan menunggu lama. Jadi menginstal alat khusus juga menjadi tidak berguna (yang dapat menjelaskan mengapa penghapusan aman tidak memiliki lagi beranda). Hanya melakukan ini dari partisi yang sesuai: cat /dev/zero >nosuchfile; rm nosuchfile.
mivk
1
@mivk: Mengapa tidak berguna untuk melakukan lebih dari satu pass? Dan mengapa menggunakan / dev / zero bukannya / dev / random? Apakah itu karena masalah kecepatan?
nucky101
5
Menggunakan / dev / nol jauh lebih cepat. Jika Anda menulis ruang kosong dari / dev / random, kernel harus membuat semua data acak dengan cepat. Ini cara yang menghibur untuk menyaksikan rata-rata muatan Anda melonjak hingga maksimum ...
dafydd
71

Cara tercepat, jika Anda hanya memerlukan satu pass dan hanya ingin mengganti semuanya dengan nol, adalah:

cat /dev/zero > zero.file
sync
rm zero.file

(dijalankan dari direktori pada sistem file yang ingin Anda hapus)
( syncperintahnya adalah ukuran paranoia yang memastikan semua data ditulis ke disk - manajer cache yang cerdas mungkin berhasil sehingga dapat membatalkan penulisan untuk semua blok yang tertunda saat file tersebut tidak ditautkan )

Akan ada waktu selama operasi ini ketika tidak akan ada ruang kosong sama sekali pada sistem file, yang bisa menjadi puluhan detik jika file yang dihasilkan besar dan terfragmentasi sehingga perlu beberapa saat untuk menghapus. Untuk mengurangi waktu ketika freespace benar-benar nol:

dd if=/dev/zero of=zero.small.file bs=1024 count=102400
cat /dev/zero > zero.file
sync
rm zero.small.file
rm zero.file

Ini harus cukup untuk menghentikan seseorang membaca konten file lama tanpa operasi forensik yang mahal. Untuk varian yang sedikit lebih aman, tetapi lebih lambat, ganti /dev/zerodengan /dev/urandom. Untuk lebih banyak paranoia, jalankan beberapa langkah /dev/urandom, meskipun jika Anda membutuhkan banyak upaya, shredutilitas dari paket coreutils adalah cara yang harus dilakukan:

dd if=/dev/zero of=zero.small.file bs=1024 count=102400
shred -z zero.small.file
cat /dev/zero > zero.file
sync
rm zero.small.file
shred -z zero.file
sync
rm zero.file

Perhatikan bahwa di atas file kecil diparut sebelum membuat yang lebih besar, sehingga dapat dihapus segera setelah yang lebih besar selesai daripada harus menunggu untuk diparut meninggalkan sistem file dengan nol ruang kosong untuk waktu yang diperlukan. Proses rusak dengan memakan waktu lama di atas file besar dan kecuali Anda mencoba menyembunyikan sesuatu dari NSA tidak benar-benar diperlukan IMO.

Semua hal di atas harus bekerja pada sistem file apa pun.

Batas Ukuran File:

Seperti DanMoulding tunjukkan dalam komentar di bawah, ini mungkin memiliki masalah dengan batasan ukuran file pada beberapa sistem file.

Untuk FAT32 pasti akan menjadi perhatian karena batas file 2GiB: sebagian besar volume lebih besar dari ini hari ini (8TiB adalah batas ukuran volume IIRC). Anda dapat mengatasi ini dengan menyalurkan cat /dev/zerooutput output besar splituntuk menghasilkan beberapa file yang lebih kecil dan menyesuaikan rusak dan menghapus tahapan yang sesuai.

Dengan ext2 / 3/4 itu kurang menjadi perhatian: dengan blok standar / umum 4K batas ukuran file adalah 2TiB sehingga Anda harus memiliki volume besar untuk ini menjadi masalah (ukuran volume maksimum dalam kondisi ini adalah 16TiB).

Dengan (masih eksperimental) btrf baik ukuran file dan volume maksimum adalah 16EiB besar.

Di bawah NTFS panjang file maks lebih besar dari panjang volume maks dalam beberapa kasus bahkan.

Titik awal untuk info lebih lanjut:
http://en.wikipedia.org/wiki/Ext3#Size_limits
http://en.wikipedia.org/wiki/Btrfs
http://en.wikipedia.org/wiki/Ntfs#Scalability

Perangkat Virtual

Seperti disebutkan dalam komentar baru-baru ini, ada pertimbangan tambahan untuk perangkat virtual:

  • Untuk disk virtual yang jarang dialokasikan, metode lain seperti yang digunakan oleh zerofreeakan lebih cepat (meskipun tidak seperti ini catdan ddini bukan alat standar yang dapat Anda andalkan tersedia di hampir semua OS mirip unix).

  • Sadarilah bahwa mem-nolkan blok pada perangkat virtual yang jarang mungkin tidak menghapus blok pada perangkat fisik yang mendasarinya , sebenarnya saya akan mengatakan bahwa itu tidak mungkin - manajer disk virtual hanya akan membuat blok karena tidak lagi digunakan sehingga bisa dialokasikan untuk hal lain nanti.

  • Bahkan untuk perangkat virtual ukuran tetap, Anda mungkin tidak memiliki kontrol di mana perangkat hidup secara fisik sehingga dapat dipindahkan di sekitar lokasi saat ini atau ke set disk fisik baru kapan saja dan yang paling bisa Anda hapus adalah lokasi saat ini, bukan lokasi sebelumnya yang mungkin dihuni oleh blok tersebut.

  • Untuk masalah di atas pada perangkat virtual: kecuali Anda mengontrol host dan dapat melakukan penghapusan ruang yang tidak teralokasi dengan aman setelah itu menghapus disk di VM atau memindahkan perangkat virtual, tidak ada yang dapat Anda lakukan setelah ini. fakta. Satu-satunya jalan adalah dengan menggunakan enkripsi disk penuh sejak awaljadi tidak ada yang tidak terenkripsi setiap ditulis ke media fisik di tempat pertama. Mungkin masih ada panggilan untuk penghapusan ruang-bebas di dalam VM tentu saja. Perhatikan juga bahwa FDE dapat membuat perangkat virtual yang jarang sangat berguna karena lapisan virtualisasi tidak dapat benar-benar melihat blok mana yang tidak digunakan. Jika lapisan sistem file OS mengirimkan perintah trim ke perangkat virtual (seolah-olah itu adalah SSD), dan pengendali virtual mengartikan ini, maka itu mungkin menyelesaikan ini, tapi saya tidak tahu keadaan di mana ini benar-benar terjadi dan lebih luas diskusi tentang hal itu adalah masalah di tempat lain (kami sudah hampir tidak berada di luar topik untuk pertanyaan awal, jadi jika ini telah menarik minat Anda, beberapa pertanyaan percobaan dan / atau tindak lanjut mungkin perlu dilakukan).

David Spillett
sumber
4
Penekanan sederhana dapat juga dilakukan dengan secure-deletealat: menggunakan sfill -llzmengurangi seluruh prosedur menjadi satu pass yang hanya menulis '0's.
foraidt
Ini butuh waktu. Apakah ini cara tercepat? Saya kira menulis data GB akan selalu memakan waktu ...
endolith
2
@endolith: jika Anda ingin mengosongkan ruang kosong pada sistem file yang aktif maka Anda tidak dapat menyiasati kebutuhan untuk menulis sebanyak itu data melalui overhead sistem file. Alat hapus aman yang disarankan oleh fnord_ix mungkin lebih cepat, karena mereka dioptimalkan untuk jenis tugas ini.
David Spillett
2
@endolith: dari uraian di halaman manual, saya berharap varian zerofree hanya lebih cepat untuk disk virtual yang jarang dialokasikan, bahkan mungkin lebih lambat pada disk nyata atau ukuran-virtual jika sedang membaca-sebelum-tulis untuk mengonfirmasi bahwa blok tidak memiliki konten. Balon untuk disk virtual tidak boleh terjadi karena sebagian besar driver disk jarang mengambil semua-nol sebagai "jangan mengalokasikan blok ini". Juga, catdan ddtersedia pada hampir semua OS seperti unix karena dianggap sebagai alat standar di mana zerofreemungkin tidak kecuali telah ditambahkan secara eksplisit.
David Spillett
1
@endolith: setelah mengatakan hal di atas, zerofreetentu saja akan berhasil, "seluruh sistem file sementara penuh" yang disebutkan di halaman manual (hampir tetapi tidak cukup dimitigasi oleh pokery jiggery small.file dalam contoh saya) adalah perhatian asli jika Anda melakukan ini pada sistem yang sedang aktif, dan zerofreetentu saja akan lebih cepat dalam contoh spesifik dioptimalkan untuk: perangkat blok virtual yang jarang dialokasikan. Meskipun Anda tidak dapat mengandalkan penghapusan pada perangkat virtual untuk tujuan keamanan: satu-satunya jawaban yang benar dalam hal ini adalah untuk mengenkripsi perangkat lengkap sejak awal.
David Spillett
45

PERINGATAN

Saya terkejut dengan berapa banyak file yang dapat diambil photorec dari disk saya, bahkan setelah dihapus.

Apakah ada keamanan lebih dalam mengisi "ruang kosong" hanya 1 kali dengan 0x00 atau 38 kali dengan standar kabalistik yang berbeda lebih merupakan diskusi akademis. Penulis makalah seminal 1996 tentang merobek-robek menulis sendiri epilog yang mengatakan bahwa ini usang dan tidak perlu untuk perangkat keras modern. Tidak ada kasus data terdokumentasi yang secara fisik diganti nol dan dipulihkan sesudahnya.

Tautan rapuh sebenarnya dalam prosedur ini adalah sistem file . Beberapa filesystem cadangan ruang untuk penggunaan khusus, dan itu tidak tersedia sebagai "ruang kosong". Tetapi data Anda mungkin ada di sana . Itu termasuk foto, email teks biasa pribadi, apa pun. Saya baru saja googled reserved + space + ext4 dan mengetahui bahwa 5% dari homepartisi saya dicadangkan. Saya kira ini adalah tempat photorecditemukannya banyak barang saya. Kesimpulan: metode merobek-robek bukan yang paling penting, bahkan metode multi-pass masih meninggalkan data di tempat .

Anda dapat mencoba # tune2fs -m 0 /dev/sdn0sebelum memasangnya. (Jika ini akan menjadi partisi root setelah reboot, pastikan jalankan -m 5atau -m 1setelah melepasnya).

Tapi tetap saja, dengan satu atau lain cara, mungkin masih ada ruang tersisa.

Satu-satunya cara yang benar-benar aman adalah menghapus seluruh partisi, membuat sistem file lagi, dan kemudian mengembalikan file Anda dari cadangan.


Cara cepat (disarankan)

Jalankan dari direktori pada sistem file yang ingin Anda hapus:

dd if=/dev/zero of=zero.small.file bs=1024 count=102400
dd if=/dev/zero of=zero.file bs=1024
sync ; sleep 60 ; sync
rm zero.small.file
rm zero.file

Catatan: tujuan dari file kecil adalah untuk mengurangi waktu ketika ruang kosong sama sekali nol; tujuan sinkronisasi adalah untuk memastikan data benar-benar ditulis.

Ini harus cukup baik bagi kebanyakan orang.

Cara lambat (paranoid)

Tidak ada kasus data yang didokumentasikan yang dipulihkan setelah pembersihan di atas. Akan mahal dan membutuhkan banyak sumber daya, jika mungkin sama sekali.

Namun, jika Anda memiliki alasan untuk berpikir bahwa agen rahasia akan menghabiskan banyak sumber daya untuk memulihkan file Anda, ini sudah cukup:

dd if=/dev/urandom of=random.small.file bs=1024 count=102400
dd if=/dev/urandom of=random.file bs=1024
sync ; sleep 60 ; sync
rm random.small.file
rm random.file

Butuh waktu lebih lama.

Peringatan. Jika Anda telah memilih cara paranoid, setelah ini Anda masih ingin melakukan penghapusan cepat, dan itu bukan paranoia. Kehadiran data acak murni mudah dan murah untuk dideteksi, dan menimbulkan kecurigaan bahwa itu sebenarnya data yang dienkripsi. Anda bisa mati di bawah siksaan karena tidak mengungkapkan kunci dekripsi.

Cara sangat lambat (paranoid gila)

Bahkan penulis makalah seminal 1996 tentang merobek-robek menulis sebuah epilog yang mengatakan bahwa ini sudah usang dan tidak perlu untuk perangkat keras modern.

Tetapi jika Anda masih memiliki banyak waktu luang dan Anda tidak keberatan menghabiskan disk Anda dengan banyak overwritting, ini dia:

dd if=/dev/zero of=zero.small.file bs=1024 count=102400
sync ; sleep 60 ; sync
shred -z zero.small.file
dd if=/dev/zero of=zero.file bs=1024
sync ; sleep 60 ; sync
rm zero.small.file
shred -z zero.file
sync ; sleep 60 ; sync
rm zero.file

Catatan: ini pada dasarnya setara dengan menggunakan alat hapus-aman.


Sebelum diedit, postingan ini adalah penulisan ulang karya David Spillett. Perintah "cat" menghasilkan pesan kesalahan, tetapi saya tidak dapat menulis komentar di pos orang lain.

pengguna39559
sumber
Anda dapat berkomentar di bawah pos orang lain dengan 50 reputasi .
Gnoupi
1
The catperintah diharapkan untuk memberikan "tidak ada ruang yang tersisa" kesalahan dalam contoh saya, pada akhir menjalankan nya. Anda dapat menyembunyikan ini dengan mengarahkan stderr ke /dev/nulljika itu merupakan masalah. Saya biasanya menggunakan pvdaripada catatau dduntuk hal semacam ini, untuk mendapatkan indikasi kemajuan yang bermanfaat.
David Spillett
4
...raises the suspicion that it is actually encrypted data. You may die under torture for not revealing the decryption key.Heh, itulah yang saya pikirkan. Saya kira itu berarti saya paranoid ...
Navin
2
Root selalu dapat menggunakan ruang yang dipesan. Jadi, jika Anda melakukan zero-fill sebagai root, Anda akan dapat mengisi ruang cadangan 5% juga; tunef tidak diperlukan. Masih dapat dibayangkan bahwa mungkin ada data di bagian lain dari sistem file.
Nate Eldredge
1
@NateEldredge Apakah Anda memiliki sumber yang mengindikasikan bahwa ddjalankan sebagai root memberikan akses ke lebih banyak sistem file daripada ddtanpa root? Saya ingin percaya ini benar, tetapi tidak dapat melihat alasan untuk saat ini.
Hashim
27

Setidaknya ada utilitas zerofree di Ubuntu:

http://manpages.ubuntu.com/manpages/natty/man8/zerofree.8.html

   zerofree — zero free blocks from ext2/3 file-systems

   zerofree  finds  the  unallocated, non-zeroed blocks in an ext2 or ext3
   filesystem (e.g. /dev/hda1) and fills them with zeroes. This is  useful
   if  the  device  on  which this file-system resides is a disk image. In
   this case, depending on the type of disk image, a secondary utility may
   be  able  to  reduce the size of the disk image after zerofree has been
   run.

   The usual way to achieve  the  same  result  (zeroing  the  unallocated
   blocks)  is to run dd (1) to create a file full of zeroes that takes up
   the entire free space on the drive, and then delete this file. This has
   many disadvantages, which zerofree alleviates:

      ·  it is slow;

      ·  it makes the disk image (temporarily) grow to its maximal extent;

      ·  it  (temporarily)  uses  all  free  space  on  the disk, so other
         concurrent write actions may fail.

   filesystem has to be unmounted or mounted  read-only  for  zerofree  to
   work.  It  will exit with an error message if the filesystem is mounted
   writable. To remount the  root  file-system  readonly,  you  can  first
   switch to single user runlevel (telinit 1) then use mount -o remount,ro
   filesystem.

Juga periksa tautan ini tentang zerofree: Menyimpan gambar filesystem jarang - dari pembuatnya - Ron Yorston (9 Agustus 2012)

osgx
sumber
3
Adalah penting bahwa sistem file harus dilepas atau dipasang hanya-baca agar zerofree berfungsi.
AntonioK
1
Akan menyenangkan untuk memasukkan beberapa informasi tentang cara melakukan ini pada sistem file root. Perasaan saya adalah ini tidak akan berhasil, karena Anda harus meng-unmount sistem file, sementara menjalankan alat dari sistem file secara bersamaan.
Ant6n
Ini juga dilengkapi dengan CentOS
davidgo
3

Inilah cara melakukannya dengan GUI.

  1. Instal BleachBit
  2. Jalankan sebagai root dengan mengklik Aplikasi - Alat Sistem - BleachBit sebagai Administrator.
  3. Dalam preferensi, beri tahu jalur mana yang Anda inginkan. Secara umum tebakan mereka dengan baik. Anda ingin menyertakan satu jalur yang dapat ditulisi untuk setiap partisi. Umumnya itu adalah / home / nama pengguna dan / tmp, kecuali mereka adalah partisi yang sama, dalam hal ini hanya memilih satu.
  4. Centang kotak System - Wipe Free Disk Space.
  5. Klik Hapus.

Kemajuan BleachBit lebih dari dd (yang sebaliknya sangat bagus) adalah ketika disk akhirnya penuh, BleachBit membuat file kecil untuk menghapus inode (yang berisi metadata seperti nama file, dll).


sumber
Periksa kode python opensource Bleachbit untuk menghapus freespace dari drive untuk diri Anda.
shadowbq
2

Saya gunakan dduntuk mengalokasikan satu atau lebih file besar untuk mengisi ruang kosong, kemudian menggunakan utilitas penghapusan yang aman.

Untuk mengalokasikan file dengan dd coba:

dd if=/dev/zero of=delete_me bs=1024 count=102400

Ini akan menghasilkan file bernama delete_meyang berukuran 100 MB. (Ini bsadalah "ukuran blok" yang diatur ke 1k, dan countjumlah blok yang akan dialokasikan.)

Kemudian gunakan utilitas penghapusan aman favorit Anda (saya telah menggunakan shred) pada file yang dibuat.

Tetapi PERHATIKAN INI: buffering berarti bahkan jika Anda melakukan seluruh disk, Anda mungkin tidak mendapatkan semuanya!


Tautan ini merekomendasikan scrubuntuk menyeka ruang bebas. Belum mencobanya.

dmckee
sumber
Oh, jika ingatanku, aku scrubpernah mencoba dan itu merusak seluruh sistem file. Untungnya saya memiliki perasaan yang baik untuk pertama kali bereksperimen pada sistem file pengujian, BUKAN pada data saya yang sebenarnya.
landroni
2

Bersihkan drive dengan kecepatan tinggi.

Instruksi umum untuk mengenkripsi drive saat ini akan memberitahu Anda untuk terlebih dahulu menghapus WIPE drive.

Perintah di bawah ini akan mengisi drive Anda dengan ciphertext AES.

Gunakan live CD jika Anda perlu menghapus drive boot utama Anda.

Buka terminal dan tingkatkan hak istimewa Anda:

sudo bash

Mari kita buat daftar semua drive di sistem agar aman:

cat /proc/partitions

CATATAN: Ganti /dev/sd{x}dengan perangkat yang ingin Anda hapus.

PERINGATAN: Ini bukan untuk amatir! Anda dapat membuat sistem Anda tidak dapat di-boot !!!

sudo openssl enc -aes-256-ctr -pass pass:"$(dd if=/dev/urandom bs=128 count=1 2>/dev/null | base64)" -nosalt < /dev/zero > /dev/sd{x}

Saya terkejut melihat seberapa cepat ini.

Roger Lawhorn
sumber
2

Anda mungkin sudah menginstal paket GNU coreutils di sistem Anda. Ini memberikan perintah rusak .

dkaylor
sumber
4
Rusak tidak akan membersihkan ruang disk yang tidak terpakai tanpa membuatnya menjadi file pertama ...
dmckee
2

Anda dapat menghapus ruang kosong Anda dengan menggunakan paket penghapusan aman.

Dalam paket itu Anda dapat menemukan sfillalat, yang dirancang untuk menghapus data yang terletak pada ruang disk yang tersedia pada media dengan cara aman yang tidak dapat dipulihkan oleh pencuri, penegak hukum atau ancaman lainnya.

Untuk menginstal paket penghapusan aman di Linux (Ubuntu), instal dengan perintah berikut:

$ sudo apt-get install secure-delete

Kemudian untuk menghapus data Anda tanpa ruang kosong, coba perintah berikut:

sfill -f -v -ll /YOUR_MOUNTPOINT/OR_DIRECTORY

Di mana / YOUR_MOUNTPOINT / OR_DIRECTORY adalah titik pemasangan ( df -h, mount) atau direktori Anda untuk menghapus ruang kosong.

Baca manual di http://manpages.ubuntu.com/manpages/hardy/man1/sfill.1.html

kenorb
sumber
1

gunakan dd dan kosongkan ruang kosong. itu adalah data mitos yang harus ditulis berulang kali (tanyakan peter guntmann) dan data acak, berbeda dengan 1 lalu 0 berarti aktivitas yang tidak wajar. maka hasil akhirnya adalah drive bersih dengan cara yang lebih sedikit menghabiskan waktu menulis. selain itu, program penghapusan aman tidak dapat menjamin mereka bahkan menimpa file nyata pada sistem file modern (dijurnal). bantulah diri Anda sendiri dan dapatkan photorec, pindai drive Anda untuk melihat kekacauan, usap dengan angka 1 dan secara opsional dengan nol untuk membuatnya tampak tidak tersentuh. Jika photorec masih menemukan hal-hal, ingat itu memindai semua yang tersedia, jadi lakukan ini dengan hati-hati lagi dengan pengguna root.

ingat, cia / fbi / nsa tidak memiliki mesin mewah yang dapat membaca keadaan sebenarnya dari bit media magnetik Anda. itu semua hanya kertas yang sudah lama ditulis. a "bagaimana-jika". Anda hanya perlu menghapus 1 kali.

fred
sumber
1
Ada beberapa hal menarik yang Anda katakan, tetapi apakah Anda benar-benar memiliki sumber untuk mendukung informasi ini? Sulit dipercaya bahwa semua penulisan ulang itu tidak berguna. Selain itu, tolong perbaiki posting Anda, sulit dibaca dengan tanda baca seperti itu.
gronostaj
@gronostaj: Klaim "ini adalah mitos data harus ditulis berulang kali" untuk drive modern setidaknya telah dibuktikan oleh beberapa penelitian. Semua 30+ pass yang direkomendasikan oleh Gutmann tidak lagi diperlukan, seperti yang diakui oleh penulis sendiri.
Karan
1

Lebih mudah menggunakan scrub :

scrub -X dump

Ini akan membuat dumpfolder di lokasi saat ini dan membuat file hingga disk penuh. Anda dapat memilih pola dengan -popsi ( nnsa|dod|bsi|old|fastold|gutmann).

Memasang scrub tidak mudah ( lihat Forum Ubuntu tentang ini ), tetapi begitu instalasi selesai, Anda sudah memiliki alat yang SANGAT SEDERHANA dan efisien di tangan Anda.

FMaz008
sumber
Jika ingatanku, aku scrubpernah mencoba dan itu merusak seluruh sistem file. Untungnya saya memiliki perasaan yang baik untuk pertama kali bereksperimen pada sistem file pengujian, BUKAN pada data saya yang sebenarnya.
landroni
Tidak tahu apa yang Anda lakukan atau apa yang terjadi, tetapi gosok pada dasarnya buat file baru hingga memenuhi sistem file. Itu tidak bermain dengan file yang ada, juga tidak menghapus salah satu dari mereka (setidaknya bukan perintah yang saya berikan) ...
FMaz008
1
Memang. scrub -X dump_dirSudah mencoba dan tampaknya telah bekerja dengan baik. BTW, menginstal pada Ubuntu 14.04 sangat mudah: apt-get install scrub.
landroni
1

Berikut ini skrip "sdelete.sh" yang saya gunakan. Lihat komentar untuk detailnya.

# Install the secure-delete package (sfill command).

# To see progress type in new terminal:
# watch -n 1 df -hm

# Assuming that there is one partition (/dev/sda1). sfill writes to /.
# The second pass writes in current directory and synchronizes data.
# If you have a swap partition then disable it by editing /etc/fstab
# and use "sswap" or similar to wipe it out.

# Some filesystems such as ext4 reserve 5% of disk space
# for special use, for example for the /home directory.
# In such case sfill won't wipe out that free space. You
# can remove that reserved space with the tune2fs command.
# See http://superuser.com/a/150757
# and https://www.google.com/search?q=reserved+space+ext4+sfill

sudo tune2fs -m 0 /dev/sda1
sudo tune2fs -l /dev/sda1 | grep 'Reserved block count'

sudo sfill -vfllz /

# sfill with the -f (fast) option won't synchronize the data to
# make sure that all was actually written. Without the fast option
# it is way too slow, so doing another pass in some other way with
# synchronization. Unfortunately this does not seem to be perfect,
# as I've watched free space by running the "watch -n 1 df -hm"
# command and I could see that there was still some available space
# left (tested on a SSD drive).

dd if=/dev/zero of=zero.small.file bs=1024 count=102400
dd if=/dev/zero of=zero.file bs=1024
sync ; sleep 60 ; sync
rm zero.small.file
rm zero.file

sudo tune2fs -m 5 /dev/sda1
sudo tune2fs -l /dev/sda1 | grep 'Reserved block count'
Czarek Tomczak
sumber
1

Saya menemukan solusi sederhana yang berfungsi di Linux dan di MacOS. Pindahkan di folder root disk Anda dan luncurkan perintah ini:

for i in $(seq 1 //DISKSPACE//); do dd if=/dev/zero of=emptyfile${i} bs=1024 count=1048576; done; rm emptyfile*;

di mana // DISKSPACE // adalah ukuran dalam GB hard disk Anda.

Enrico
sumber
0

Saya terkadang menggunakan bash one-liner ini:

while :; do cat /dev/zero > zero.$RANDOM; done

Ketika mulai mengatakan bahwa disk sudah penuh, cukup tekan Ctrl+ Cdan hapus zero.*file yang dibuat .

Ia bekerja pada sistem apa pun, apa pun batas ukuran file.
Abaikan cat: write error: File too largekesalahan apa pun .

Nicolas Raoul
sumber
0

Ini bukan jawaban! Hanya komentar untuk mereka yang ingin menggunakan pv... jadi jangan repot-repot memilih.

Di Linux Mint 17.3 Anda dapat menggunakan pv( tampilan pipa ) untuk mendapatkan kemajuan penulisan. Sebagai contoh:

# Install pv (pipe view)
sudo apt-get install pv

# Write huge file of approximate size of /dev/sdb, using urandom data:
pv --timer --average-rate --progress --numeric --eta --interval 5 --size "$(blockdev --getsize64 /dev/sda )" /dev/urandom >rand.file

Keuntungan di sini adalah Anda mendapatkan bilah kemajuan, ETA, dan laju data yang terus diperbarui. Kerugiannya adalah ini ditulis pada satu baris dan ketika disk penuh (mengembalikan kesalahan), ia menghilang. Ini terjadi karena ukuran penuh merupakan perkiraan karena OS kemungkinan akan menggunakan disk saat operasi yang sangat lama ini berlangsung, terutama pada volume OS.

Pada HD yang sangat lama, saya mendapatkan data rate sekitar 13 MB / s menggunakan /dev/urandom, dan sekitar 70 MB / s , saat menggunakan /dev/zero. Ini mungkin akan meningkat lebih lanjut saat menggunakan mentah ddatau cat, dan tidak pv.

not2qubit
sumber
-13

Setelah file hilang dari catatan sistem file, data yang tersisa di hard disk adalah urutan tanpa arti dari 1 dan 0. Jika Anda ingin mengganti urutan yang tidak berarti itu dengan urutan lain yang tidak berarti, saya dapat menyarankan beberapa produk komersial untuk menghapus drive dengan aman, seperti arconis.

Ilya Biryukov
sumber
22
Potongan-potongan yang berdekatan dari konten file lama masih tetap pada disk, dan jauh dari tidak berarti jika data disk mentah diperiksa secara langsung.
Alex B