Cuando vemos las propiedades de un disco o de una carpeta observamos que el espacio ocupado en el disco nunca es igual al tamaño de los archivos que contiene
Lo que es peor, el espacio ocupado es siempre mayor que el tamaño de los archivos. Como si alguien estuviera llevándose trozos adicionales de disco por cada archivo que almacenamos.
¿Quien está ocupando este espacio en disco?
Vayamos por un momento al viejo símbolo del sistema, vamos a probar el comando chkdsk
en un disco extraible de 2Gb para ver qué nos dice:
Entre otras cosas el comando chkdsk
nos indica el tamaño de las 'unidades de asignación' del disco.
Una unidad de asignación es el espacio de disco más pequeño que va a utilizar el sistema de archivos para almacenar nuestros datos; cualquier archivo que grabemos en una unidad ocupará un número entero de unidades de asignación.
En la última de ellas siempre habrá un espacio sin utilizar, salvo en el caso excepcional de que el tamaño del archivo sea un múltiplo exacto del tamaño de la unidad de asignación cosa poco probable.
Esto quiere decir que en nuestro disco de ejemplo, un archivo cualquiera utilizará por lo menos una unidad de asignación, es decir, 32.768 bytes con independencia de su tamaño real. Si guardamos un archivo de 768 bytes y otro de 31.490 bytes utilizarán 32.768 bytes cada uno.
Si guardamos un archivo de 32.769 bytes se utilizarán dos unidades de asignación y el espacio ocupado será de 65.536 bytes.
Cuanto más pequeñas son las unidades de asignación menos espacio se desperdicia en cada archivo, la contrapartida es que como hay más unidades de asignación, vamos a necesitar más espacio para almacenar la tabla de asignación de archivos (la famosa FAT). La elección del mejor tamaño de la unidad de asignación para un disco no siempre va a resultar simple.
En general un disco en el que dejaremos pocos archivos grandes va a resultar más eficiente con un tamaño de la unidad de asignación grande, mientras que ese disco en el que queremos poner miles de archivos pequeños funcionará mejor con un tamaño pequeño de la unidad de asignacón.
Estamos acostumbrados a 'ver' los archivos como cosas que ocupan espacio pero nunca o casi nunca podemos ver el espacio que ocupan las carpetas o directorios.
Las carpetas o directorios necesitan también espacio en el disco para almacenar información. Como que el sistema operativo normalmente no nos informa de este espacio de vez en cuando nos olvidamos de que existe.
Para ver cómo afecta conjuntamente al uso del disco el tamaño de las unidades de asignación y el espacio que utilizan las carpetas vamos a hacer un experimento:
A una unidad de 16 Mb le damos formato con FAT12 con un tamaño de las unidades de asignación de 4.096 bytes (recordando lo ya dicho, el espacio mínimo de cada archivo será de 4.096 bytes), en este disco creamos 1.110 carpetas, el espacio ocupado es de algo más de 4Mb.
A continuación borramos el disco y le damos de nuevo formato FAT12 pero dejando el tamaño de las unidades de asignación en 16.384 bytes; ahora con tan solo 897 carpetas conseguimos llenar por completo el disco y provocar el tan temido error "disco lleno".
Queda claro que las carperas ocupan espacio y que el tamaño de la unidad de asignación afecta al uso del disco.
He aquí uno de esos casos en los que 'el tamaño importa'.
Resulta interesante que las 1.110 carpetas creadas podemos dejarlas almacenadas en un archivo comprimido de tan solo 100 Kb, dato que contrasta con el espacio que ocupan en el disco; la razón es que cada carpeta necesitará una unidad de asignación completa cuando está en el disco aunque no tenga apenas datos.
Viendo que uno de los métodos para aprovechar el espacio en discos consiste en utilizar unidades de asignación del tamaño más adecuado hagamos de nuevo el experimento.
En esta última variante del experimento damos formato a la unidad con FAT12 pero con unidades de asignación de 512 bytes; el resultado es que nuestras 1.110 carpetas ahora sí caben sin problemas y además ocupan poco más de medio 'mega'.
Sin embargo basta echar una ojeada para darnos cuenta de que la capacidad total de la unidad ha quedado reducida de los 14,0 Mb que teníamos en nuestras primeras pruebas a 13,9 Mb; un sacrificio que puede compensar si almacenamos archivos de pequeño tamaño.
Estas diferencias en la capacidad del disco se deben a que cuanto más reducimos el tamaño de la unidad de asignación, más espacio necesitamos para 'organizarlas'.
El sistema de archivos y el tamaño de las unidades de asignación y la presencia de carpetas no son las únicas causas de que el espacio ocupado en disco sea diferente del tamaño de los archivos almacenados.
Bueno, en realidad casi es así, pero además de los archivos y carpetas que están a la vista hay otras cosas en los discos que no pueden verse directamente.
Por poner algunos ejemplos los puntos de restauración del sistema y las cadenas de datos alternativos (ADS) que están presentes en algunos sistemas operativos ocupan espacio en el disco.
En discos con formato NTFS podemos ver una curiosa carpeta llamada 'System Volume Information', al ver sus propiedades se nos informa de que el espacio ocupado es de 0 bytes. ¿Será verdad?.
Si cambiamos 'un poco' los permisos de la carpeta 'System Volume Information' para que no solo esté autorizado SYSTEM, sino también nosotros, podemos ver una pequeña diferencia:
ANTES DE CAMBIAR LOS PERMISOS | DESPUES DE CAMBIAR PERMISOS |
---|---|
En esta carpeta se guardan los puntos de restauración del sistema y no es del todo malo que los permisos los tenga únicamente el sistema operativo. Para controlar el tamaño basta con ajustar el espacio o en caso extremo desactivar la restauración del sistema en las propiedades de 'Mi PC'.
Si has dado permisos a algún usuario para curiosear esta carpeta acuérdate de retirarlos antes de continuar, no vaya a ser que la curiosidad termine matando al gato.
ADS significa 'Alternate Data Streams', en castellano 'Cadenas de datos alternativos', y sirven para almacenar información adicional sobre un archivo. De la misma forma que pueden reforzar la seguridad, tambien sirven para comprometer la seguridad de un sistema, pero esa no es la cuestión que nos incumbre ahora.
Descargamos un archivo de Internet, lo guardamos en la carpeta C:\TEMP y echamos una ojeada:
C:\TEMP>dir El volumen de la unidad C es Disco local El número de serie del volumen es: NNNN-NNNN Directorio de C:\TEMP 26/10/2007 20:56 92.359 fsum.zip 1 archivos 92.359 bytes 2 dirs 24.385.347.584 bytes libres
El disco tiene ahora 24.385.347.584 bytes libres. Borramos el ADS que nos informa del origen (Internet) del archivo y...
C:\TEMP>dir El volumen de la unidad C es Disco local El número de serie del volumen es: NNNN-NNNN Directorio de C:\TEMP 26/10/2007 20:56 92.359 fsum.zip 1 archivos 92.359 bytes 2 dirs 24.385.351.680 bytes libres
En el disco aparecen 4.096 bytes libres, una unidad de asignación completa. En este espacio estaba la información sobre la zona de la que procedía el archivo.
El tamaño mínimo que utiliza cada 'ADS' es una unidad de asignación y el máximo no lo conozco pero supongo que podría ser cualquiera siempre que quepa en el disco.
La parte negativa de la noticia es que no es obvio el procedimiento para aligerar el equipo de los 'ADS' pero estoy seguro de que la Internet puede estar llena de buenas fuentes de información sobre este asunto.
Para saber más sobre los ADS:
Lads
Windows Alternate Data Streams
Practical Guide to Alternative Data Streams in NTFS
How To Use NTFS Alternate Data Streams
Páginas encontradas en microsoft.com por Google
Algunas de las características que hacen más cómoda la vida con los ordenadores utilizan espacio en el disco duro y deben asumirse.
Podemos influir en la cantidad de espacio utilizado por el sistema de archivos si analizamos con detenimiento el tamaño de los archivos que almacenamos y hacemos algunas cuentas.
En cualquier caso no existe una receta mágica que podamos aplicar a cualquier ordenador o a cualquier disco y en cualquier momento, pero sí es posible indagar en los espacios oscuros que van terminando con el espacio de disco.
Busca en Google evitando contenidos inadecuados desde esta página
La búsqueda segura en Google te ayuda a encontrar paginas con contenidos adecuados para toda la familia