If the command like sudo du -ab /|sort -nr |head -n 50 shows that the / directory is occupying in total ca. 12 GB, but at the same time df shows that / is occupying in total 25 GB then it might be caused by some old-mounted device. It might be Samba FS or pendrive or something else that is using the same path as currently existing directory.

The device might then “cover” the place consumed by the OS (i.e. it has the same mount point).

To get rid of the weirdly occupied disk space, you can mount the root dir in different location and use du to check what consumes the space and get rid of it:

sudo mount -o bind / /mnt`
sudo du -ab /mnt|sort -nr |head -n 50

Ref: https://serverfault.com/questions/275206/disk-full-du-tells-different-how-to-further-investigate/275233#275233