Tüm çıkış cihazı, boyutu geçtiğiniz blok boyutunun katı olsun veya olmasın silinir dd
.
notrunc
Bir 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).
dd
Doğ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, dd
bir diske yazmak için bir şekilde daha uygun hale getiren kesinlikle sihir yoktur . Sihir /dev
dosyalarda. Böyle herhangi bir modern olarak ikili veri ile başa çıkabilir Herhangi alet cat
veya head
aynı işi yapabilir, dd
aşağıdaki gibi bayraklarını geçen sürece seek
veya skip
.
Paylaşılan dd
ve cat
baş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/partitions
Linux 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