¿Por qué el uso del disco es mayor que el tamaño de todos los archivos en él?

Tengo un disco duro de 3TB. En la pantalla de propiedades del HDD, dice que he usado 471.4GB, pero cuando selecciono todos los archivos en nautilus, dice que 321.0GB está seleccionado. Si solo tengo 321.0GB de archivos en el disco duro, ¿por qué usa 471.4GB?

La partición del disco duro está utilizando GUID y el sistema de archivos que se está utilizando en EXT4. Cuando selecciono el disco duro con la aplicación Disk Utility, aparece una advertencia que dice:

WARNING: The partition is misaligned by 3072 bytes. This may result in very poor performance. Repartitioning is suggested. 

¿Tiene eso algo que ver con los 150.4GB que faltan?

Los archivos en el disco tienen dos tamaños: el “tamaño aparente” y el “tamaño en el disco”. Varias razones pueden causar una gran discrepancia:

  • Una gran cantidad de archivos resultará en una gran cantidad de sobrecarga, debido a la fragmentación interna. Por ejemplo, Ext4 tiene un tamaño de bloque predeterminado de 4KiB; los archivos más pequeños que eso consumirán siempre 4KiB, y los tamaños anteriores se “redondearán” a esta alineación de bloque.
  • Los directorios también son archivos y la misma regla se aplica a ellos también. Además, si creara una gran cantidad de archivos en un directorio y los eliminara más tarde, el uso en el archivo de directorio no se puede reclamar (volver a crear el directorio ayuda).
  • Los archivos dispersos son archivos especiales, que parecen ser grandes, pero no “consumen” el espacio. Esto es común en la virtualización para imágenes de disco virtual; aparecerán grandes, pero el tamaño “real” puede ser mucho más pequeño. Muchas utilidades (y administradores de archivos) son incapaces de mostrar el uso real del disco.
  • El uso de enlaces duros. El contenido de un archivo puede existir en el disco mientras varias referencias lo apuntan. Algunos administradores de archivos pueden tener en cuenta el tamaño de cada referencia.

Yo sugeriría usar una herramienta de uso de disco que se sepa que es capaz de enumerar ambos tamaños para ver si este es el problema. Pruebe ncdu en un terminal y use una para alternar entre el uso real y el uso del disco.


Una breve demostración de la fragmentación interna debido a un sistema de archivos de tamaño de bloque de 4 KB que usa du :

 $ sudo tune2fs -l /dev/path-to-device | grep "Block size" Block size: 4096 $ echo blaataaap > myfile # creates a 10-byte file $ du --block-size=1 myfile # prints the usage on disk (filesystem) 4096 myfile $ du --apparent-size --block-size=1 myfile # prints the apparent size, ie 10 myfile # content length when seeking $ ls -al -rw-rw-r-- 1 gert gert 10 Jan 1 23:24 myfile # ls uses apparent sizes 

Esto significa que este archivo de 10 bytes es 4086 bytes más grande en el disco de lo que aparecería en una lista y sufre una fragmentación interna.


Una demostración breve sobre los enlaces duros y el uso del disco se muestra incorrectamente al enumerar archivos ( ls en este caso):

 $ dd if=/dev/zero of=1MBfile bs=1M count=1 # create a 1MB file $ ln 1MBfile a_hard_link # create a hard link to it $ ls -alht # ls will report 2MB total 2.1M drwxrwxr-x 2 gert gert 4.0K Jan 2 11:21 . -rw-rw-r-- 2 gert gert 1.0M Jan 2 11:21 1MBfile -rw-rw-r-- 2 gert gert 1.0M Jan 2 11:21 a_hard_link $ du -B 1024 . # du reports 1028K total for directory 1028 . $ du -B 1024 a_hard_link # and 1024K for each file individually 1024 a_hard_link $ du -B 1024 1MBfile 1024 1MBfile 

Esto sucede porque el uso total del disco nunca es igual a la sum de todos los archivos allí (que es lo que muestra Nautilius una vez que selecciona todos los archivos).

La razón de esto es que los sistemas de archivos tienden a ocupar algo de espacio en la partición. Lo más probable es que si borra todos los datos que almacena en ese disco duro, el uso del disco sería de unos 150 GB. Ese espacio está reservado para el sistema de archivos, es necesario, ya que el sistema de archivos necesita almacenar los datos sobre los archivos en algún lugar. ext4 asigna previamente este espacio de sobrecarga antes de que se creen los archivos, a diferencia de, por ejemplo, ext3, donde ese espacio crece a medida que se agregan más archivos a la partición.

Si considera que estos 150 GB son un problema, tenga en cuenta que solo representa el 5% del tamaño total de su HDD . Si necesita más del 95% en su disco duro, probablemente necesite comprar uno más grande, en lugar de preocuparse por estos 150 GB que están fuera de su scope.

Además, tenga en cuenta que en caso de ext4 este espacio no se desperdicia. La fragmentación de datos no es un problema aquí, pero el costo de esta ventaja es ese espacio extra ocupado. Hay formas de disminuirlo y forzar a ext4 a usar mucho menos espacio, pero eso no se recomienda, ya que, debido a las posibilidades de fragmentación y otras optimizaciones que no podrán suceder, es muy probable que la máquina funcione. mucho más lento, ya que el acceso a los datos no será tan suave.