Linux'ta boş disk alanı nasıl silinir?


145

Bir dosya silindiğinde, başka bir şeyle açıkça yazılı olmadıkça içeriği dosya sisteminde kalabilir. wipeKomut güvenli dosyaları silebilir, ancak herhangi bir dosya tarafından kullanılmayan boş disk alanı silme izin vermiyor.

Bunu başarmak için ne kullanmalıyım?


Tek güvenli çözüm, dosyalarınızı başka bir yere kaydetmek, tüm bölümü silmek, dosya sistemini yeniden oluşturmak ve ardından dosyalarınızı geri yüklemek olabilir. Photorec'i çalıştırdım ve boş alanı sildikten sonra bile ne kadar şey alınabileceği konusunda şok oldum . Uzlaşmacı bir çözüm, görünüşte boş alanı sildikten sonra bölümünüzün sol sınırını boyutunun% 6 oranında taşımaktır.
user39559 7:10

Yanıtlar:


107

Uyarı: Modern disk / SSD donanımı ve modern dosya sistemleri, verileri silemediğiniz yerlerde verileri susturabilir, bu nedenle bu işlem diskte veri bırakabilir. Verileri silmenin tek güvenli yolu, ATA Güvenli Silme komutu (doğru şekilde uygulanırsa) veya fiziksel imhadır. Ayrıca bkz. Sabit sürücüdeki tüm bilgileri nasıl güvenle silebilirim?

Secure-delete adlı bir takım araçlar kullanabilirsiniz.

sudo apt-get install secure-delete

Bunun dört aracı var:

srm- güvenli bir şekilde mevcut bir dosyayı
smemsilin - bir dosyanın izlerini ramdan güvenli bir şekilde silin
sfill- sabit sürücünüzde boş olarak işaretlenmiş tüm alanları silin - alandaki
sswaptüm verileri silin.

Man sayfasından srm

srm, hırsızlar, kolluk kuvvetleri veya diğer tehditler tarafından kurtarılamayan ortamlardaki verileri güvenli bir şekilde silmek için tasarlanmıştır. Silme algoritması, önde gelen sivil kriptografilerlerden Peter Gutmann tarafından 6. Usenix Güvenlik Sempozyumu'nda sunulan "Manyetik ve Katı Hal Belleğinden Verilerin Güvenli Silinmesi" adlı bir kağıda dayanmaktadır.

Srm'nin güvenli veri silme işlemi şöyle devam eder:

  • 0xff ile 1 geçiş
  • 5 rastgele geçer. /dev/urandomVarsa güvenli bir RNG için kullanılır.
  • 27 Peter Gutmann tarafından belirlenen özel değerlerle geçti.
  • 5 rastgele geçer. /dev/urandomVarsa güvenli bir RNG için kullanılır.
  • Dosyayı rastgele bir değere yeniden adlandır
  • Dosyayı kes

Ek bir güvenlik önlemi olarak, dosya O_SYNC modunda açılır ve her geçişten sonra bir fsync()çağrı yapılır. srmhız amacıyla 32k blok yazar, bunları disk önbelleklerinin dolgusunu dosyaya ait eski verileri temizlemeye ve üzerine yazmaya zorlar.


5
Güvenli silme işleminin "resmi" anasayfasını bulmak zor. Belki de eski bir sürümde hata bildirimi olmadığı, ancak aynı zamanda bulduğum bir hatayı bildirebileceğim açık bir hata izleme sistemi bulunmadığı iddia ediliyor. Güvenli-silme sayfası da olabileceğini işaret değil doğrudur kullandığınız dosya sistemi, bağlı tüm verilerin kullanılmayan blokları silin.
user39559 7:10

11
Modern sabit disklerle (yaklaşık 20 GB'den büyük), birkaç geçiş yapmak ve yaşları beklemek tamamen işe yaramaz. Bu yüzden özel araçlar kurmak da işe yaramaz hale geldi (bu, güvenli silme işleminin neden ana sayfa olmadığını açıklayabilir). Sadece uygun bölümden yaparız: cat /dev/zero >nosuchfile; rm nosuchfile.
mivk

1
@mivk: Birden fazla geçiş yapmak neden işe yaramaz? Ve neden / dev / random yerine / dev / zero kullanın? Bu hız endişeleri nedeniyle mi?
naught101

5
/ Dev / zero kullanımı çok daha hızlıdır. / Dev / random'dan boş alan yazarsanız, çekirdeğin tüm bu rasgele verileri anında oluşturması gerekir. Yük ortalamanızı maksimum
seviyeye zıplamanızı

3
Birden fazla mendil gerekip gerekmediği sorusu burada cevaplanmaktadır: Neden bir hard diskte sıfır (veya rasgele veri) yazmak, bir kere yapmaktan çok daha iyidir?
sleske,

71

En hızlı yol, yalnızca tek bir geçişte ihtiyacınız varsa ve yalnızca her şeyi sıfırlarla değiştirmek istiyorsanız:

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

(silmek istediğiniz dosya sistemindeki bir dizinden çalıştırın)
( synckomut, tüm verilerin diske yazılmasını sağlayan bir paranoya ölçüsüdür - akıllı bir önbellek yöneticisi, dosya bağlantısız olduğunda bekleyen tüm bloklar için yazma işlemlerini iptal edebileceğini hesaplayabilir. )

Bu işlem sırasında, dosya sisteminde hiç boş alan kalmayacağı, sonuçta ortaya çıkan dosyanın büyük ve parçalanmış olması durumunda onlarca saniye alabilecek bir süre olacak, bu nedenle silinmesi biraz zaman alacaktır. Boş alanın tamamen sıfır olduğu süreyi azaltmak için:

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

Bu, pahalı bir adli işlem olmadan eski dosya içeriğini okuyan birisini durdurmak için yeterli olmalıdır. Biraz daha güvenli, ancak daha yavaş, varyant için değiştirin /dev/zeroile /dev/urandom. Daha fazla paranoya için birkaç adım uygulayın /dev/urandom, ancak çok fazla çaba harcamanız gerekirse shred, coreutils paketinden faydalanmanın yolu budur:

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

Yukarıda, küçük dosyanın daha büyük oluşturmadan önce parçalandığına dikkat edin, bu nedenle, sürenin uzadığı sırada boş bir alan bırakarak, parçalanmasını beklemek yerine, daha büyük tamamlandığında kaldırılabilir. Parçalama işlemi büyük bir dosya üzerinde uzun zaman alıyor ve NSA'dan bir şey saklamaya çalışmadığınız sürece IMO gerekli değil.

Yukarıdakilerin hepsi herhangi bir dosya sistemi üzerinde çalışmalıdır.

Dosya Boyutu Sınırları:

DanMoulding'in aşağıdaki açıklamada işaret ettiği gibi, bazı dosya sistemlerinde dosya boyutu sınırlamaları ile ilgili sorunlar olabilir.

FAT32 için 2GiB dosya limitinden dolayı kesinlikle bir endişe olacaktır : çoğu cilt bugünlerde bundan daha büyüktür (8TiB, IIRC cilt boyut sınırıdır). Bunun cat /dev/zeroüzerinde splitçok sayıda küçük dosya üretmek ve parçalama ve silme aşamalarını buna göre ayarlamak için büyük çıktı çıkışını yönlendirerek çalışabilirsiniz .

Ext2 / 3/4 ile daha az sorun çıkarır: varsayılan / yaygın 4K bloğunda dosya boyutu sınırı 2TiB'dir, bu nedenle bunun bir sorun olması için çok büyük bir hacme sahip olmanız gerekir (bu koşullar altında maksimum hacim boyutu) 16 TB'dir.

(Hala deneysel) btrfs ile hem maksimum dosya hem de cilt büyüklüğü 16EiB'dir.

NTFS'de, maksimum dosya uzunluğu, bazı durumlarda bile maksimum dosya uzunluğundan daha büyüktür.

Daha fazla bilgi için başlangıç ​​noktaları:
http://en.wikipedia.org/wiki/Ext3#Size_limits
http://en.wikipedia.org/wiki/Btrfs
http://en.wikipedia.org/wiki/Ntfs#Scalability

Sanal Cihazlar

Son zamanlarda yapılan yorumlarda belirtildiği gibi, sanal cihazlar için ekstra hususlar vardır:

  • Seyrek olarak tahsis edilen sanal diskler için, kullanılanlar gibi diğer yöntemler zerofreedaha hızlı olacaktır (bunun aksine catve ddbu, hemen hemen herhangi bir unix benzeri işletim sisteminde kullanmaya güvenebileceğiniz standart bir araç değildir).

  • Seyrek bir sanal cihazda bir bloğu sıfırlamanın, temel fiziksel cihazdaki bloğu silmeyebileceğini unutmayın, gerçekte muhtemel olmadığını söylemek kadar ileri giderdim - sanal disk yöneticisi artık bloğu artık kullanmayacak Böylece daha sonra başka bir şeye tahsis edilebilir.

  • Sabit boyutlu sanal cihazlar için bile, cihazın fiziksel olarak nerede yaşadığını kontrol edemeyebilirsiniz, böylece herhangi bir zamanda mevcut konumundan veya yeni bir fiziksel disk setine taşınabilir ve silebileceğiniz en fazla geçerli konumdur. önceki herhangi bir yer, blok geçmişte kalmış olabilir.

  • Sanal aygıtlardaki yukarıdaki sorunlar için: ana bilgisayarları kontrol edemezseniz ve daha sonra tahsis edilmemiş alanlarını güvenli bir şekilde silemezseniz, sanal diskteki diskleri silmeden veya sanal aygıtı hareket ettirmeden, bundan sonra yapabileceğiniz hiçbir şey yoktur. aslında. Tek başvuru, baştan itibaren tam disk şifrelemesi kullanmaktır.bu yüzden şifrelenmemiş hiçbir şey her şeyden önce fiziksel ortama yazılmaz. Tabii ki VM içinde hala bir boş alan silme çağrısı olabilir. Ayrıca, FDE'nin, sanallaştırma katmanı hangi blokların kullanılmadığını gerçekten göremediğinden seyrek sanal cihazları daha az kullanışlı hale getirebileceğini unutmayın. İşletim sisteminin dosya sistemi katmanı sanal aygıta (SSD gibi) trim komutları gönderirse ve sanal denetleyici bunları yorumlarsa, o zaman bunu çözebilir, ancak bunun gerçekte gerçekleştiği ve daha geniş olduğu durumları bilmiyorum bunun tartışılması başka bir konu için bir sorun (orijinal soru için konuya çoktan yaklaşmaya başladık, bu nedenle ilginizi çekerse bazı deneyler ve / veya takip eden sorular sırayla olabilir).


4
Basit sıfırlama görünüşte secure-deletealetlerle de yapılabilir : kullanma sfill -llzişlemi tüm prosedürü sadece '0' yazan bir pasa indirger.
foraidt

Bu biraz zaman alıyor. Gerçekten en hızlı yol bu mu? Sanırım GB veri yazma her zaman biraz zaman alacak ...
endolith

2
@ endolith: Eğer aktif bir dosya sistemindeki boş alanı boşaltmak istiyorsanız, o zaman bu kadar veriyi dosya ek yükü ile yazma gereğini çözemezsiniz. Fnord_ix tarafından önerilen güvenli silme araçları, bu tür görevler için optimize edildiklerinden daha hızlı olabilir.
David Spillett

2
@endolith: man sayfasındaki açıklamaya göre, sıfırın ücretsiz değişkeninin yalnızca seyrek olarak tahsis edilen sanal diskler için daha hızlı olmasını beklerdim, aslında okumadan önce bir okuma yapıyorsa, gerçek veya sabit boyutlu sanal disklerde daha yavaş olabilir bloğun içeriği olmadığını onaylamak için. Sanal bir diskin kullanımı, çoğu seyrek disk sürücüsünün "bu bloğu ayırma" olarak tamamen sıfır almasından kaynaklanmamalıdır. Ayrıca, catve ddnerede standart araçları olarak kabul edildiğinden hemen hemen herhangi bir unix benzerim OS üzerinde mevcuttur zerofreeaçıkça eklenmiştir sürece muhtemelen değil.
David Spillett

1
@endolith: yukarıdakileri söylerken, zerofreeelbette çalışacak, man sayfasında "geçici olarak dolu olan tüm dosya sistemi" (elbette, ancak örneklerimdeki small.file jiggery dürtüleri tarafından neredeyse tamamen azaltılmamış) söz konusu olacaktır. eğer şu anda aktif olan bir sistemde bunu yapıyorsanız zerofreeve belirli bir durumda gerçekten daha hızlı olacaksa, bunun için optimize edilmiştir: seyrek tahsis edilmiş sanal blok cihazları. Güvenlik nedeniyle herhangi bir sanal cihazdaki silme işlemine güvenemeseniz de: bu durumda tek doğru cevap baştan itibaren tam cihaz şifrelemektir.
David Spillett

45

UYARI

Photorec silindikten sonra bile, photorec'in diskimden kaç tane dosyayı alabileceği beni şok etti .

“Boş alanı” doldurmak için yalnızca 1 kez 0x00 ile sadece 1 kez mi, farklı kabalistik standartlarda ise 38 kez daha fazla güvenlik olup olmadığı daha çok akademik bir tartışmadır. 1996 senesinin parçalanmasına ilişkin makalenin yazarı, modern donanım için bunun modası geçmiş ve gereksiz olduğunu söyleyen bir epilog yazdı . Fiziksel olarak sıfırlarla değiştirilen ve daha sonra geri kazanılan hiçbir belgelenmiş veri durumu yoktur.

Bu prosedürdeki gerçek kırılgan bağlantı dosya sistemidir . Bazı dosya sistemleri özel kullanım için alan ayırır ve "boş alan" olarak kullanılmaz. Ancak verileriniz orada olabilir . Bu fotoğraflar, kişisel düz metin e-postaları, her neyse içerir. Sadece googled reserved + space + ext4'ü kullandım ve bölümümün% 5'inin ayrıldığını öğrendim home. Sanırım burası photorecbenim eşyalarımın çoğunda bulundu. Sonuç: Parçalama yöntemi en önemlisi değildir, çoklu geçiş yöntemi bile verileri yerinde tutar .

Takmadan # tune2fs -m 0 /dev/sdn0önce deneyebilirsiniz . (Bu, yeniden başlattıktan sonra kök bölüm olacaksa, çalıştırıldığından -m 5veya -m 1çıkarıldıktan sonra emin olun ).

Ancak yine de, bir şekilde veya başka bir yerde biraz boşluk kalmış olabilir.

Tek güvenli yol, tüm bölümü silmek, bir dosya sistemi yeniden oluşturmak ve ardından dosyalarınızı bir yedekten geri yüklemek.


Hızlı yol (önerilir)

Silmek istediğiniz dosya sistemindeki bir dizinden çalıştırın:

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

Notlar: küçük dosyanın amacı, boş alanın tamamen sıfır olduğu süreyi azaltmaktır; senkronizasyonun amacı, verilerin gerçekten yazıldığından emin olmaktır.

Bu çoğu insan için yeterince iyi olmalı.

Yavaş yol (paranoyak)

Yukarıdaki temizlikten sonra belgelenen veri durumu bulunmuyor. Mümkünse, pahalı ve kaynak zorlu olurdu.

Ancak, gizli kurumların dosyalarınızı kurtarmak için çok fazla kaynak harcayacağını düşünmek için bir nedeniniz varsa, bu yeterli olacaktır:

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

Çok daha uzun zaman alıyor.

Uyarı. Eğer paranoyak yolu seçtiyseniz, bundan sonra hala hızlı silme işlemini yapmak isterdiniz ve bu paranoya değil. Tamamen rastgele verilerin mevcudiyeti tespit edilmesi kolay ve ucuzdur ve aslında şifreli veri olduğu şüphesini doğurmaktadır. Şifre çözme anahtarını açığa vurmadığınız için işkence altında ölebilir.

Çok yavaş bir şekilde (çılgın paranoyak)

Hatta 1996 senesinde seminalleştirme üzerine yazılan makalenin yazarı bile bunun modern donanım için eski ve gereksiz olduğunu söyleyen bir epilog yazdı.

Ancak, çok fazla boş zamanınız varsa ve diskinizi çok fazla yazma işlemiyle boşa harcamazsanız, işte böyle:

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

Not: Bu aslında güvenli silme aracını kullanmaya eşdeğerdir.


Düzenlemeden önce bu yazı David Spillett'in bir yeniden yazmasıydı. "Cat" komutu bir hata mesajı veriyor, fakat diğer kişilerin yayınlarına yorum yazamıyorum.


Diğer kişilerin mesajlarına 50 itibarı ile yorum yapabilirsiniz .
Gnoupi

1
catKomut onun çalışma sonunda, benim örneklerde bir "boşluk bıraktı" hatası vermesi bekleniyor. /dev/nullBir sorun olup olmadığını stderr yönlendirerek bunu gizleyebilirsiniz . Yararlı ilerleme göstergesini almak için genellikle bu tür şeyler pvyerine catveya bunları kullanırım dd.
David Spillett

4
...raises the suspicion that it is actually encrypted data. You may die under torture for not revealing the decryption key.Heh, aynen öyle düşünüyordum. Sanırım bu paranoyak olduğum anlamına geliyor ...
Navin

2
Kök her zaman ayrılmış alanı kullanabilir. Böylece sıfır dolgunuzu kök olarak yaparsanız,% 5 ayrılmış alanı da doldurabilirsiniz; Tefler gereksiz. Dosya sisteminin diğer bölümlerinde veri olabileceği de düşünülebilir.
Nate Eldredge,

1
@NateEldredge ddKök olarak çalıştırılmasının, dosya sistemine köksüz olarak daha fazla erişim sağladığını gösteren bir kaynağınız var ddmı? Bunun doğru olduğuna inanmak istiyorum, ancak şu anda hiçbir neden göremiyorum.
Hashim

27

En azından Ubuntu'da sıfır içermeyen yardımcı program var:

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.

Ayrıca sıfır bağlantı hakkında bu bağlantıyı da kontrol edin: Dosya sistemi görüntülerini seyrek tutma - bu, yazarından - Ron Yorston (9 Ağustos 2012)


3
Sıfırsız çalışabilmesi için dosya sisteminin sökülmemesi veya salt okunur şekilde monte edilmesi gerekir.
AntonioK,

1
Kök dosya sisteminde bunun nasıl yapılacağı hakkında bazı bilgiler eklemek güzel olurdu. Benim düşüncem bunun işe yaramayacağıdır, çünkü aracı aynı anda dosya sisteminden çalıştırırken, dosya sistemini kaldırmak zorunda kalacaksınız.
Ant6n

Bu aynı zamanda CentOS ile birlikte geliyor
davidgo

3

İşte bir GUI ile nasıl yapılır.

  1. BleachBit'i yükleyin
  2. Uygulamalar - Sistem Araçları - BleachBit'i Yönetici olarak tıklatarak root olarak çalıştırın.
  3. Tercihlerde, hangi yolları istediğinizi söyleyin. Genellikle onları iyi tahmin eder. Her bölüm için bir tane yazılabilir yol eklemek istersiniz. Genelde bu / home / username ve / tmp, eğer aynı bölüm olmadıkça, sadece bir tane seç.
  4. Sistem kutusunu işaretleyin - Boş Disk Alanı Silin.
  5. Sil'e tıklayın.

BleachBit’in dd üzerinden ilerletilmesi (ki bu çok hoş bir durumdur), disk nihayet doluysa, BleachBit inode'ları silmek için küçük dosyalar oluşturur (dosya isimleri gibi meta veri içerenler vs.).


Kontrol kendiniz için bir sürücüden FreeSpace Silinme BleachBit en opensource piton kodunu.
shadowbq

2

Kullandığım ddsonra, boş alan doldurmak güvenli bir silme programı kullanmak için bir veya daha fazla büyük dosyaları tahsis etmek.

Dd ile dosyaları tahsis etmek için şunu deneyin:

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

Bu delete_me, 100 MB boyutunda bir dosya oluşturacaktır . (Burada bs"blok boyutu" 1k olarak ayarlanmıştır ve countayrılacak blok sayısıdır.)

Ardından shred, oluşturduğunuz dosyalar üzerinde en sevdiğiniz güvenli silme yardımcı programını kullanın (kullanıyorum ).

Ancak bu NOT: tamponlama tüm diski bile yapsanız, kesinlikle her şeyi alamayabilirsiniz demektir!


Bu bağlantıscrub boş alan silme için önerir . Denemedim.


Eğer hafıza bana hizmet ederse, bir scrubkere denedim ve tüm dosya sistemini bozdu. Neyse ki, gerçek verilerim üzerinde değil, ilk önce bir deneme dosya sistemi üzerinde deney yapma fikrine sahiptim.
landroni

2

Bir sürücüyü en yüksek hızda silin.

Günümüzde bir sürücüyü şifrelemekle ilgili tipik talimatlar size önce sürücüyü SİLMEYİNİ söyleyecektir.

Aşağıdaki komut sürücünüzü AES şifreli metin ile doldurur.

Ana önyükleme sürücünüzü silmeniz gerekirse, canlı bir CD kullanın.

Bir terminal açın ve ayrıcalıklarınızı yükseltin:

sudo bash

Güvenliğimiz için sistemdeki tüm sürücüleri listeleyelim:

cat /proc/partitions

NOT: Silmek /dev/sd{x}istediğiniz cihazla değiştirin .

UYARI: Bu amatörler için değil! Sisteminizi açılmaz hale getirebilirsiniz !!!

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}

Bunun ne kadar hızlı olduğuna çok şaşırdım.



2

Güvenli silme paketini kullanarak boş alanınızı silebilirsiniz.

Bu pakette sfill, medyalardaki boş disk alanında yer alan verileri hırsızlar, kolluk kuvvetleri veya diğer tehditler tarafından kurtarılamayan güvenli bir şekilde silmek için tasarlanmış bir araç bulabilirsiniz .

Linux'ta güvenli silme paketini kurmak için (Ubuntu), aşağıdaki komutla yükleyin:

$ sudo apt-get install secure-delete

Ardından verilerinizi boş alan olmadan silmek için aşağıdaki komutu deneyin:

sfill -f -v -ll /YOUR_MOUNTPOINT/OR_DIRECTORY

/ YOUR_MOUNTPOINT / OR_DIRECTORY, boş alanı silmek için bağlama noktanız ( df -h, mount) veya dizininizdir.

Kılavuzu http://manpages.ubuntu.com/manpages/hardy/man1/sfill.1.html adresinde okuyun.


1

dd kullanın ve boş alanı sıfırlayın. bu bir efsane verinin birden fazla kez yazılması (sadece peter guntmann'a sorması) ve rastgele verinin, 1'lerin aksine 0 olması doğal olmayan faaliyet anlamına gelir. o zaman sonuç, yazma işlemine daha az zaman harcanan temiz bir sürücüdür. Ayrıca, güvenli silme programları, modern dosya sistemlerindeki (günlüklü) gerçek dosyanın üzerine bile yazma garantisi vermezler. Kendinize bir iyilik yapın ve fotoğraf çekimi yapın, karmaşayı görmek için sürücünüzü tarayın, 1'lerle silin ve dokunulmamış görünmesi için isteğe bağlı olarak sıfırlarla silin. photorec hala bir şeyler bulursa, mevcut olan her şeyi taradığını unutmayın, bu nedenle kök kullanıcı ile tekrar dikkatlice yapın.

unutmayın, cia / fbi / nsa, manyetik medya bitlerinizin gerçek durumunu okuyabilen bir makineye sahip değildir. Hepsi uzun zaman önce yazılmış bir bildiriydi. bir "eğer". sadece 1 kez silmeniz gerekir.


1
Söylediğin birkaç ilginç şey var, ama aslında bu bilgiyi destekleyen kaynakların var mı? Bütün bu yazmanın yararsız olduğuna inanmak zor. Ayrıca, lütfen gönderinizi geliştirin, bunun gibi noktalama işaretleriyle okumak zor.
gronostaj

@ gronostaj: Modern sürücülerin "bir efsane veriyi defalarca yazması gerekiyor" iddiası, en azından çoklu araştırmalarla kanıtlandı. Gutmann tarafından önerilen tüm 30+ pasolar, yazarın onayladığı gibi, artık gerekli değildir.
Karan

1

Kolay fırçalama kullanmaktır :

scrub -X dump

Bu dump, geçerli konumda bir klasör oluşturur ve disk dolana kadar dosya oluşturur. -p( nnsa|dod|bsi|old|fastold|gutmann) Seçeneğiyle bir desen seçebilirsiniz .

Çalıştırmayı yapmak kolay değil ( bu konuda Ubuntu Forumlarına bakın ), ancak kurulum tamamlandıktan sonra, elinizde gerçekten basit ve etkili bir araç var.


Eğer bellek bana hizmet ederse, bir scrubkere denedim ve tüm dosya sistemini bozdu. Neyse ki, gerçek verilerim üzerinde değil, ilk önce bir deneme dosya sistemi üzerinde deney yapma fikrine sahiptim.
landroni

Ne yaptığınızı veya ne olduğunu bilmiyorsunuz, ancak fırçalama, dosya sistemini dolduruncaya kadar temelde yeni bir dosya oluşturun. Mevcut dosyayla oynamaz, hiçbirini de silmez (en azından verdiğim komutu) ...
FMaz008 31:14

1
Aslında. Denedim scrub -X dump_dirve iyi çalıştı gibi görünüyor. BTW, Ubuntu 14.04 yükleme çok basittir: apt-get install scrub.
landroni

1

İşte kullandığım "sdelete.sh" betiği. Ayrıntılar için yorumlara bakınız.

# 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'

1

Linux ve MacOS'ta çalışan basit bir çözüm buldum. Diskinizin kök klasörüne gidin ve şu komutu çalıştırın:

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

// // DISKSPACE // sabit diskinizin GB cinsinden boyutu.


0

Bazen bu bash bir-liner'ı kullanıyorum:

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

Diskin dolu olduğunu söylemeye başladığında, sadece Ctrl+ tuşlarına basın Cve oluşturulan zero.*dosyaları kaldırın .

Dosya boyutu ne olursa olsun, herhangi bir sistemde çalışır.
Herhangi göz ardı cat: write error: File too largehataları.


0

Bu bir cevap değil! Sadece kullanmak isteyenler için bir yorum yapın pv... oy kullanmaktan çekinmeyin.

On LinuxMint 17.3 kullanabilirsiniz pv( boru görünümü yazma ilerleme almak için). Örneğin:

# 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

Buradaki avantaj, bir ilerleme çubuğu, ETA ve sürekli güncellenen veri hızı elde etmektir. Dezavantajı, bunun bir satırda yazılması ve disk dolu olduğunda (bir hata döndürerek) kaybolmasıdır. Bu, tam boyutun yaklaşık olması nedeniyle oluşur, çünkü OS çok uzun süren bu işlem sırasında özellikle OS biriminde disk kullanacaktır.

Çok eski bir HD, ben bir veri hızı yaklaşık almak 13 MB / s kullanarak /dev/urandomve yaklaşık 70 MB / sn kullanılarak /dev/zero. Bir çiğ kullanılırken bu muhtemelen daha da artıracak ddveya catdeğil pv.


-13

Dosya, dosya sisteminin kaydının dışına çıkarıldığında, sabit diskte kalan veriler 1 ve 0'ların anlamsız dizileridir. Bu anlamsız diziyi başka bir anlamsız diziyle değiştirmeyi düşünüyorsanız, arconis gibi sürücüleri güvenli bir şekilde silmek için bazı ticari ürünleri tavsiye edebilirim.


22
Eski dosya içeriğinin bitişik parçaları hala diskte kalır ve ham disk verileri doğrudan incelenirse anlamsızdır.
Alex B
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.