L'intero dispositivo di output viene cancellato indipendentemente dal fatto che la sua dimensione sia un multiplo della dimensione del blocco a cui si passa ddo meno.
Il notruncflag non ha alcun effetto quando l'output è un file di dispositivo, poiché il troncamento di un file di dispositivo non ha alcun effetto. Se l'output fosse un file normale, avrebbe l'effetto di non troncare il file di output prima della scrittura, il che su alcuni filesystem significa che i vecchi dati vengono sovrascritti (invece di scrivere nuovi blocchi di dati e lasciare il resto non attaccato), tuttavia ciò non sarebbe utile poiché questa proprietà non è garantita da tutti i filesystem e inoltre il comando non solo sovrascriverà il file, ma continuerà anche a scrivere fino a quando non viene riempito il disco di output (o si verifica qualche altro errore).
Invece di usare dde preoccuparti se lo stai usando correttamente (come succede, funziona in questo caso particolare, ma è complicato e talvolta non funziona ), basta usarecat .
cat /dev/zero >/dev/sdX
Nonostante la credenza popolare sul web, non c'è assolutamente nulla di magico ddche lo rende in qualche modo più adatto alla scrittura su un disco. La magia è nei /devfile. Qualsiasi strumento in grado di far fronte a dati binari, come qualsiasi moderno cato head, può fare lo stesso lavoro, a ddmeno che non passi bandiere come seeko skip.
Si noti che un problema condiviso da dded catè che in caso di operazione riuscita, si risolveranno in "Nessuno spazio sul dispositivo" (ENOSPC). Se lo inserisci in uno script, dovrai verificare che l'errore sia ENOSPC o utilizzare un metodo diverso. Un metodo più affidabile consiste nel determinare innanzitutto le dimensioni del dispositivo (ad es. Utilizzando /proc/partitionssotto Linux), quindi scrivere esattamente il giusto numero di byte con uno strumento come head.
size=$(</proc/partitions awk '$4 == "sdX" {print $3}')
head -c "${size}k" /dev/zero >/dev/sdX