Harde schijven verspillen weer ruimte

Herbert Blankesteijn

 

Van de week was ik goedgehumeurd bezig een aantal archief-cd's te kopiëren naar de harde schijf van een nieuwe pc. Een schijf met zeeën van ruimte: 40 GB - dacht ik. Terwijl ik aan het kopiëren was, gaf Windows Me weer, hoeveel MB ik had gekopieerd, en hoeveel ruimte op de schijf dit kostte. Mooi nieuw snufje van Microsoft. Maar mijn mond viel open: voor elke MB die ik kopieerde raakte ik bijna 2 MB aan schijfruimte kwijt!

 

Het was een van de grootste problemen van Windows 95: het feit dat zomaar een derde of meer van de schijfruimte op een computer werd verspild. Windows 98 heeft dat euvel verholpen, maar we zijn weer terug bij af. Wat zit hierachter?

 

Op harddisks tussen 1 en 2 GB, die een jaar of vier geleden ingang vonden, was de minimale ruimte die voor een bestand moest worden gereserveerd (de 'clustergrootte') 32 kB. Dus ook als je een bestand van één byte moest opslaan, kostte dat 32 kB. Dit had te maken met het aantal bits dat beschikbaar is voor de adressering. Windows 95 had het ouderwetse bestandsssysteem Fat-16, dat 16 bits heeft om de ruimte op een schijf te adresseren. De schijf, hoe groot ook, werd dus in ruim 64.000 (2 tot de macht 16) vakjes verdeeld.

 

In de begindagen der harde schijven was dat geen probleem: een schijf van 10 MB, nou ja, reken maar uit. De meeste bestanden hadden véél van die piepkleine clusters nodig, die dus bijna allemaal volledig werden gebruikt.

 

Hoe groter de schijven werden, hoe groter de clusters, want het aantal clusters waarin het bestandssysteem de schijf moest verdelen, bleef gelijk. Het kwam dus steeds vaker voor, dat een bestand kleiner was dan een cluster, zodat er ruimte verloren ging. De gemiddelde bestandsgrootte groeide óók: toen een harde schijf van 10 MB gangbaar was, had je geen mp3-tjes van 4 MB. Maar een tekst, een gif- of jpg-bestand, een midi-muziekje, zijn zelden groter dan enkele tientallen kB. Ergo: naarmate de schijven groter werden en de clustergrootte toenam, werd meer schijfruimte verspild.

 

Een belangrijke vernieuwing in Windows 98 was het bestandssysteem Fat-32. Dat heeft 32 bits voor de adressering van harddiskruimte. In 1998 schreef ik in een boek: 'De clustergrootte is minimaal 4 kB en komt daar bij de harde schijven van nu niet gauw bovenuit.' Sindsdien heb ik over een en ander niet meer nagedacht. Fout, fout.

 

De clustergrootte van Fat-32 is 4 kB tot aan een schijfgrootte van 8 GB. Tussen 8 en 16 GB is het 8 kB, tussen 16 en 32 GB zijn de clusters 16 kB groot, en bij 40 GB dus 32 kB. Zulke schijven liggen allang in de winkel.

 

Als je dan cd's vol webpagina's wegschrijft, met kleine html-bestanden, gif's en jpg's, gaat het hard. Dan verlies je vele gigabytes. Hoe hard het gaat, zie je bijvoorbeeld aan de mappen met favorieten en cookies. In Netscape staan alle bookmarks in één bestand, en alle cookies ook. Dit kost enkele tientallen kB; niets aan de hand. Microsoft heeft de geniale ingeving gehad om elke favoriet en elk cookie als een apart tekstbestandje weg te schrijven. Mijn map Favorieten bevat 566 bestanden die samen 69 kB groot zijn. Maar op een harddisk van 40 GB nemen ze gezamenlijk ruim 18 megabyte in beslag! Mijn cookies, duizend in getal, zijn samen 370 kB, maar ze maken 36 MB van de schijf onbruikbaar.

 

Dit toont voor de zoveelste keer aan hoe sullig Microsoft programmeert. Maar aan die vaststelling heb je niks. Wat doe je eraan? Het handigst is, om de harddisk in aparte schijven te partitioneren, met een programma als PartitionMagic. Lees de documentatie goed, zodat je weet wat je doet. Zo kun je de pc laten denken dat er een aantal schijven is van 8 GB in plaats van één van 40, en het probleem is weg.