Esta página brinda una idea de por qué tienen valores diferentes, sin embargo, parece sugerir que su du
el tamaño debe ser el más pequeño de los dos.
df
usa el total de bloques asignados, mientras que du
solo mira los archivos en sí, excluyendo los metadatos como los inodos, que aún requieren bloques en el disco. Además, si se elimina un archivo mientras una aplicación lo tiene abierto, du
lo reportará como espacio libre pero df
no lo hace hasta que se cierra la aplicación.
Cuando du
es mayor que df
, la razón habitual es "bloques dispersos":si un programa en realidad no escribe en un bloque de disco, sino que lo busca, obtiene un puntero cero en el mapa de asignación de bloques del inodo y no se reserva espacio real en el disco para él. Si luego escribe en él, se asignará un bloque de disco real y el mapa se cambiará para apuntar al nuevo bloque.