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.