disk sonunda dd komutu bs seçeneği


10

ddKomutu aşağıdaki gibi kullanacak olsaydım :

dd if=/dev/zero of=/dev/sdX bs=16M

16M'nin tam katı değilse diskin sonunda ne olur? Bu, diskin kalan son bölümünün sıfırlanmadığı anlamına mı geliyor?

Https://www.marksanborn.net/howto/wiping-a-hard-drive-with-dd/ adresinde fark ettim , ABD hükümetinin

dd if=/dev/urandom of=/dev/sda bs=8b conv=notrunc

conv=notruncseçenek sildi her geçen byte sağlamak için yol?

dd 

Yanıtlar:


12

Tüm çıkış cihazı, boyutu geçtiğiniz blok boyutunun katı olsun veya olmasın silinir dd.

notruncBir aygıt dosyası kesiliyor hiçbir etkisi yoktur çünkü çıktı, bir aygıt dosyası olduğunda bayrak etkisi yoktur. Çıktı normal bir dosya olsaydı, çıktı dosyasının yazılmadan önce kısaltılmaması etkisi olurdu, bu da bazı dosya sistemlerinde eski verilerin üzerine yazıldığı anlamına gelir (yeni veri blokları yazmak ve geri kalanını ekli bırakmamak yerine), ancak bu özellik tüm dosya sistemleri tarafından garanti edilmediğinden ve ayrıca komut sadece dosyanın üzerine yazmaz, aynı zamanda çıktı diski doldurulana kadar yazmaya devam eder (veya başka bir hata oluşursa).

ddDoğru olarak kullanıp kullanmadığınızı kullanmak ve endişe etmek yerine (olduğu gibi, bu özel durumda çalışır, ancak karmaşıktır ve bazen işe yaramaz ), sadece kullanıncat .

cat /dev/zero >/dev/sdX

Web üzerindeki yaygın inanca rağmen, ddbir diske yazmak için bir şekilde daha uygun hale getiren kesinlikle sihir yoktur . Sihir /devdosyalarda. Böyle herhangi bir modern olarak ikili veri ile başa çıkabilir Herhangi alet catveya headaynı işi yapabilir, ddaşağıdaki gibi bayraklarını geçen sürece seekveya skip.

Paylaşılan ddve catbaşarılı bir işlem sırasında oluşan bir sorunun "Aygıtta yer kalmadı" (ENOSPC) hatasıyla karşılaşacaklarını unutmayın. Bunu bir komut dosyasına koyarsanız, hatanın ENOSPC olup olmadığını kontrol etmeniz veya farklı bir yöntem kullanmanız gerekir. Daha güvenilir bir yöntem önce cihazın boyutunu belirlemek (örneğin /proc/partitionsLinux altında kullanmak ), daha sonra gibi bir araçla tam olarak doğru bayt sayısını yazmaktır head.

size=$(</proc/partitions awk '$4 == "sdX" {print $3}')
head -c "${size}k" /dev/zero >/dev/sdX

8

Sorun yok - giriş ddbitmediği No space left on devicesürece, sonuna kadar yazmaz ( ) count=x, ya da başka bir hata oluşursa (örneğin, kötü sektörler, berbat kablo vb.).

Bir bloğun tamamının üzerine yazmak hedefinizse, shredkullanımı daha kolaydır.

shred -v -n 1 /dev/deleteme     # pseudorandom data
shred -v -n 0 -z /dev/deleteme  # zeroes

Veya cryptsetupbir doğrulama adımına sahip rastgele veriler için (sıfırlar rastgele verilere şifrelenir; rastgele veriler tekrar sıfıra döner).

Veya blkdiscardSSD'ler için.

Ya wipefsda sadece sıfırdan başlamak üzereyse, bir sürücüde sakladığınız her şeyden zorla kurtulmak değil.

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.