Subject: dd doesn't copy whole file when specifying units with bs
From: Jack Hill <[email-masked]>
To: [email-masked]
Date: Tue, 12 Nov 2019 15:47:19 -0500 (EST)
List-Id: <debbugs-submit.debbugs.gnu.org>

Hi Guix,

It seems that my version of dd from coreutils-8.31 does not seem to work 
correctly when using units with the bs option (e.g. bs=1M). In the 
terminal session below, I first use bs=1M. The output looks okay: dd 
appears to have copied the whole 2.3GiB file, but it has done so 
impossibly quickly. It turns out that went so quickly because the whole 
file has not been copied. If instead of using the units modifier, I 
specify the same number of bytes directly, everything seems to work as 
expected (notice the slower speed).

I have not determined whether this problem is specific to Guix.

```
$ sudo dd if=image.iso of=/dev/sda bs=1M
2349+1 records in
2349+1 records out
2463842304 bytes (2.5 GB, 2.3 GiB) copied, 1.0693 s, 2.3 GB/s
$ sudo dd if=image.iso of=/dev/sda bs=1048576
2349+1 records in
2349+1 records out
2463842304 bytes (2.5 GB, 2.3 GiB) copied, 3.03265 s, 812 MB/s
$ ls -l /run/current-system/profile/bin/dd
lrwxrwxrwx 18 root root 65 Dec 31  1969 /run/current-system/profile/bin/dd 
-> /gnu/store/9kzrrccpzl6i1sfwb0drb00gi2gwk0x0-coreutils-8.31/bin/dd
$ guix describe
Generation 42	Oct 28 2019 11:51:58	(current)
   guix 8c8d607
     repository URL: https://git.savannah.gnu.org/git/guix.git
     branch: master
     commit: 8c8d60752e1ad73d5bd87d8497b357f8a8a389ab
```

Best,
Jack