Todavía puedes filtrar eso usando mountpoint (si está disponible en su sistema):
for a in /*; do mountpoint -q -- "$a" || du -s -h -x "$a"; done
Si mountpoint no está disponible pero stat es (mientras stat todavía no es POSIX, puede ser más común), tendrá que comparar el stat salida manual:
rootdevice="$(stat -c %D /)"
for a in /*; do [ "$rootdevice" = "$(stat -c %D -- "$a")" ] && du -s -h -x "$a"; done
Supongo que estas en lo correcto. En realidad estás diciendo du /dev , du /sys , du /usr , du /home por lo que la opción "-x" no tiene sentido.
¿Por qué no lo recorres? P.ej. find / -maxdepth 1 | egrep -v home|media listará todos los directorios excepto home y media. Luego puede canalizar la salida a un while bucle a du eso.
find / -maxdepth 1 | egrep -v home|media | while read f; do
du -s -h -x "$f";
done