Хорошо известна разница между свободным пространством, показанным df, и объемом пространства диска за вычетом пробела, используемого в du (из-за размеров блоков и накладных расходов и тому подобного), но это не то, что вы здесь спрашивается ...
du работает на смонтированных файловых системах. Вы пытаетесь заставить его работать на устройствах и разделах. Если вы хотите увидеть, какое пространство на свободном конкретном устройстве, прокрутите его разделы, смонтируйте их, а затем запустите du с его аргументом --one-file-system (aka -x).
Например: [ ! d2]
sudo mount /dev/sda1 /mnt
sudo du -shx /mnt/
sudo umount /mnt/
# repeat for sda2, sdb1, etc