Could you please give some information requested earlier. You can run df with no arguments, sanitize anything if necessary, then post it. Here is an OSX manual page for df. Duplicati gets sizes differently, through mono, and some testing shows a possible problem of mono filtering its drive info very heavily.
DriveInfo.GetDrives Method is an example program that you might compile with mcs or csc, then run:
(this is Linux but will likely work on OSX. if you do GetDrives please post that)
$ df
Filesystem 1K-blocks Used Available Use% Mounted on
udev 486300 0 486300 0% /dev
tmpfs 101596 4876 96720 5% /run
/dev/sda1 19478204 15325704 3140020 83% /
tmpfs 507960 36360 471600 8% /dev/shm
tmpfs 5120 4 5116 1% /run/lock
tmpfs 507960 0 507960 0% /sys/fs/cgroup
cgmfs 100 0 100 0% /run/cgmanager/fs
tmpfs 101596 16 101580 1% /run/user/1000
$ mcs GetDrives.cs
$ mono GetDrives.exe
Drive /
Drive type: Fixed
Volume label: /
File system: ext
Available space to current user: 3215380480 bytes
Total available space: 4252160000 bytes
Total size of drive: 19945680896 bytes
Drive /run/user/1000/gvfs
Drive type: Ram
Volume label: /run/user/1000/gvfs
File system: fuse
Available space to current user: 0 bytes
Total available space: 0 bytes
Total size of drive: 0 bytes
$