Обнаружил странное. du -b показывает правильный размер, с другими размерами блока (и даже -B 1, эквивалентным -b) показывает примерно вдвое меньше.
$ du -b vmlinux
15612456 vmlinux
du -B 1 vmlinux
7786496
$ du -k vmlinux
7604 vmlinux
$ du -B 1K vmlinux
7604 vmlinux
$ du -m vmlinux
8 vmlinux
$ du -B 1M vmlinux
8 vmlinux
Поиск по «du coreutils half size bug» ничего подходящего не дал.