Great post, I learned stuff.
I just wanted to discuss a couple of things, for the sake of completeness:
- "The Linux Programming Interface", in chapter 13 on "File I/O Buffering", concludes that near optimal buffer size for I/O throughput is 4096 bytes. It probably doesn't make a lot of difference but for that reason I've taken to using bs=4M as argument.
- I've been using
ddoption:conv=fdatasyncinstead of doing a separate sync command, and I always neglected to runeject, did you ever see instances wheresyncwas not sufficient? Have you triedconv=fdatasync?
PS:
I always thought it was "DiskDestroyer", but that makes more sense. ^^