March 6, 2019

Filling up a disk politely

blocksize=32 # MiB
disksize=$((128 * 1024)) # MiB
for ((i = 0; i < $(((disksize + blocksize - 1) / blocksize)); ++ i)); do
  tr '\000' '\345' < /dev/zero |
  sudo dd of=/dev/sdb bs=1M count=$blocksize seek=$((i * blocksize)) iflag=fullblock
  totalspace=$(((i + 1) * blocksize))
  echo $((totalspace / 1024)) GiB + $((totalspace % 1024)) MiB
  echo
  sync
done