Seluruh perangkat keluaran dihapus apakah ukurannya merupakan kelipatan dari ukuran blok yang Anda lewati dd
atau tidak.
The notrunc
bendera tidak berpengaruh ketika output adalah file device, karena truncating file perangkat tidak berpengaruh. Jika output adalah file biasa, itu akan memiliki efek bahwa file output tidak terpotong sebelum menulis, yang pada beberapa sistem file berarti bahwa data lama ditimpa (bukan menulis blok data baru dan membiarkan sisanya tidak terpasang), namun ini tidak akan berguna karena properti ini tidak dijamin oleh semua sistem file dan lebih jauh lagi perintahnya tidak hanya akan menimpa file, tetapi juga terus menulis hingga memenuhi disk keluaran (atau beberapa kesalahan lain terjadi).
Alih-alih menggunakan dd
dan mengkhawatirkan apakah Anda menggunakannya dengan benar (seperti yang terjadi, ia berfungsi dalam kasus khusus ini, tetapi rumit dan terkadang tidak berfungsi ), gunakan sajacat
.
cat /dev/zero >/dev/sdX
Meskipun kepercayaan populer di web, sama sekali tidak ada keajaiban di dd
dalamnya yang membuatnya entah bagaimana lebih cocok untuk menulis ke disk. Keajaiban ada di /dev
file. Alat apa pun yang dapat mengatasi data biner, seperti yang modern cat
atau head
, dapat melakukan pekerjaan yang sama seperti dd
kecuali Anda melewati bendera seperti seek
atau skip
.
Perhatikan bahwa masalah dibagikan oleh dd
dan cat
adalah bahwa pada operasi yang berhasil, mereka akan melakukan kesalahan dengan “Tidak ada ruang tersisa di perangkat” (ENOSPC). Jika Anda memasukkan ini ke dalam skrip, Anda harus memeriksa apakah kesalahannya adalah ENOSPC atau menggunakan metode lain. Metode yang lebih andal adalah pertama-tama menentukan ukuran perangkat (misalnya menggunakan /proc/partitions
di Linux), kemudian menulis jumlah byte yang tepat dengan alat seperti head
.
size=$(</proc/partitions awk '$4 == "sdX" {print $3}')
head -c "${size}k" /dev/zero >/dev/sdX
Gilles 'SANGAT berhenti menjadi jahat'
sumber