c’t 08-09/2026
Vibe coding voor developers
Cover van
Cover voor Overzicht van partitionering van harde schijven maken

Overzicht van partitionering van harde schijven maken

In Verkenner verschijnt Windows op schijf C:, maar er zijn meer schijven die daar niet te zien zijn. Een script laat zien hoe je schijven daadwerkelijk zijn ingedeeld.

Volledig overzicht van je schijfindeling

Om iets op een fysieke schijf te kunnen opslaan, moet die eerst goed zijn ingesteld. Dat hoef je overigens zelden handmatig te doen, want bij het installeren van Windows regelt het installatieprogramma alles wat nodig is en bij USB-schijven doet de maker dat al in de fabriek.

Maar als je niet tevreden bent met de standaardconfiguratie, bijvoorbeeld omdat je een aparte plek voor je gegevens wilt, dan moet je het zelf doen. Dan geldt het oude adagium: configureer de indeling van een schijf altijd alleen met de tools die bij het besturingssysteem horen dat erop geïnstalleerd is.

Windows heeft er twee: Schijfbeheer en Diskpart. Maar ga vooral niet aan de slag voordat je precies weet hoe de schijf tot nu toe ingedeeld is, want verkeerde aannames kunnen in het ergste geval leiden tot gegevensverlies. Dat kan bijvoorbeeld gebeuren bij het gebruik van Schijfbeheer (inleiding in [1]).

Schijfbeheer is makkelijk te bereiken (druk op Windows+X, selecteer in het menu) en biedt een grafische gebruikersinterface. Die ziet er op het eerste gezicht zelfs overzichtelijk uit: een lijst met stations bovenaan en daaronder een grafische weergave. Schijfbeheer laat echter niet de hele waarheid zien – er ontbreekt veel.

Voor simpele handelingen zoals het wijzigen van een stationsletter is Schijfbeheer voldoende, maar zelfs dat niet altijd: bij sommige logische stations ontbreekt de optie.

De tweede tool heet Diskpart (introductie in [2]). Dat is een commandlineprogramma waarvan de bediening – zeg maar – even wennen is. Daar staat tegenover dat het veel krachtigere functies biedt dan Schijfbeheer. Het is betrouwbaar en kan via een script worden aangestuurd.

Als je onder Windows dus iets aan de configuratie van de schijven wilt wijzigen, gebruik dan Diskpart. Dan kun je ervan uitgaan dat de configuratie precies zo verloopt als je hebt ingetypt.

Het addertje onder het gras: de tool vertelt je wel alles over de huidige indeling, maar je moet die informatie met veel commando’s bij elkaar sprokkelen voordat je aan de slag kunt.

Een script!

Ook wij stoorden ons aan het ontbrekende overzicht, en hebben daarom een script geschreven in PowerShell. Het draait op alle huidige versies en edities van Windows 10 en 11. Het maakt niet uit of er een x86- of een ARM-processor in het apparaat zit.

Lees dit artikel verder

Lees over tech-trends en achtergronden, nieuwe apparatuur, software en toepassingen voor professioneel gebruik. Met c’t heb je altijd de juiste tech-informatie. Word abonnee en lees onbeperkt alle artikelen.
Bekijk abonnementen Al abonnee? Log in

Het script haalt allerlei informatie uit Windows en zet die in één tabel. Die toont de volledige configuratie van alle aangesloten schijven. Dan kun je zien wat je met Schijfbeheer en Verkenner niet te zien krijgt, bijvoorbeeld ongebruikte gebieden of waar de bootloader zich bevindt.

Je krijgt ook de nummers te zien die je voor Diskpart nodig hebt bij het intypen van de commando’s, zodat je die niet elke keer opnieuw hoeft op te zoeken.

Toegegeven: de tabel is behoorlijk uitgebreid, en als er veel fysieke schijven op je pc zijn aangesloten, kan hij het scherm helemaal vullen. Maar geen paniek: we leggen hier uit wat de informatie in de verschillende rijen en kolommen allemaal betekent. Om teleurstellingen te voorkomen: het script dient echt uitsluitend voor het weergeven van informatie. Er zitten geen functies in om tijdelijk of zelfs permanent iets aan de instellingen van de opslagmedia te veranderen.

Aan de slag

Het gebruik van het script is simpel: download het zipbestand ct-partinfo.zip via de link bij dit artikel en pak het uit in een willekeurige map. Dat uitpakken is serieus bedoeld: als je het script rechtstreeks vanuit het ziparchief start, werkt het niet correct.

Na het uitpakken staan er drie bestanden in de doelmap. Klik met de rechtermuisknop op ct-partinfo.bat (als je de bestandsextensie niet ziet: het is het bestand met het pictogram met twee tandwielen). Kies in het contextmenu Als administrator uitvoeren. Wacht tot de tabel is opgebouwd – dat kan even duren.

De opbouw van het venster met de tabel is eenvoudig: er zijn kolomkoppen waarin staat wat er in de betreffende kolom staat, bijvoorbeeld grootte of label. Een klik op een kolomkop sorteert de tabel in die richting, nog een klik op dezelfde kop sorteert in de tegenovergestelde richting.

Als je weer het beginbeeld wilt, klik je linksboven op de knop Sortering terugzetten. De knop Opslaan rechtsboven exporteert de volledige tabel naar een tekstbestand, waarvan de bestandsnaam bestaat uit ct-partinfo-, de door Windows toegekende naam van de installatie (Computernaam) en de bestandsextensie .txt.

Je kunt het volledige script dan ook op een USB-stick zetten en daarmee van computer naar computer gaan, de tabel telkens met slechts één klik opslaan en alles later op je werkcomputer bekijken.

Als je op de knop Opslaan drukt terwijl er al een tekstbestand voor die computer bestaat, voegt het script de nieuwe tabel onderaan aan hetzelfde bestand toe.

Schijven

Onder de kolomkoppen somt de tabel de fysieke opslagmedia en hun eigenschappen op (harde schijven, USB-sticks …). Windows gebruikt intern voor een fysiek opslagmedium, ongeacht de opslagtechnologie, de Engelse term disk, en omdat die zo lekker kort is, houden we die in dit artikel ook aan.

Elke regel begint met een nummer, waarvan de telling bij schijven begint met 0. Daarna volgt de modelnaam. Die verzint het script niet zelf en het heeft ook geen bijbehorende database. Het is in plaats daarvan de naam die Windows uit de schijf leest. Als daar dus alleen iets onduidelijks staat, dien dan een klacht in bij de fabrikant van de schijf.

Op dezelfde regel volgt de grootte van de schijf tussen haakjes, daarna de aansluiting (NVMe, SATA, USB …). Als daar RAID staat, kan het gaan om Intel Rapid Storage (RST), een speciale modus voor SATA- en NVMe-SSD’s die de schijf met een speciale driver aansluit.

Bij virtuele machines kunnen nog andere aansluitingen voorkomen: in Hyper-V-machines van generatie 1 zijn de schijven aangesloten via ATA (en worden dus oude IDE-aansluitingen geëmuleerd), bij generatie 2 gaat dat daarentegen via SAS (Serial Attached SCSI).

Partitieschema

De laatste informatie op de schijfregel is GPT of MBR. Achter die afkortingen gaan twee verschillende beheerstructuren schuil voor de indeling van schijven, elk een soort inhoudsopgave.

In die inhoudsopgave staan allereerst de partities vermeld (van het Latijnse partitio, (in)delen). Die verdelen een schijf in delen. In de eenvoudigste vorm wordt de hele schijf in beslag genomen door één enkele partitie.

Op een Windows-computer zijn er echter bijna altijd meerdere per schijf. Partities liggen altijd volledig op één enkele schijf en kunnen zich dus niet over meerdere schijven uitstrekken.

Om het begin en einde van een partitie te kennen, moet een besturingssysteem die informatie ergens kunnen vinden. Daarvoor dient juist deze inhoudsopgave, de partitietabel. Het partitieschema bepaalt hoe de tabel is opgebouwd en waar die op de schijf is opgeslagen.

Tegenwoordig zijn MBR en GPT relevant. De afkorting MBR staat voor Master Boot Record, de eerste sector op de schijf. Daar staat ten eerste een opstartcode die door het BIOS wordt aangeroepen en die op zijn beurt wordt doorgegeven aan de bootloader van het besturingssysteem.

Ten tweede staat daar een partitietabel met maximaal vier vermeldingen voor evenveel partities. Dat zijn de zogeheten primaire partities, omdat ze in deze eerste partitietabel staan. Het is de eerste omdat er nog meer kunnen zijn: een van de primaire partities kan worden vervangen door een uitgebreide partitie, die dan een willekeurig aantal logische partities kan bevatten, die op hun beurt in extra partitietabellen vermeld staan.

Dat MBR niet meer als up-to-date wordt beschouwd, komt vooral doordat alle partities samen maximaal twee TB kunnen innemen. Grotere schijven kunnen wel worden ingesteld, maar de ruimte voorbij de grens van 2 TB is dan zelfs met trucs niet bruikbaar.

De opvolger GPT heeft de beperkingen van MBR niet. Die afkorting staat voor GUID Partition Table. Daarmee kun je onder Windows schijven opdelen in maximaal 128 partities, die samen meer dan een miljard TB groot mogen zijn.

Nummers: disk en partitie

In de tabel die door het script wordt weergegeven, staan de rijen na de schijf telkens voor een gebied daarop. De volgorde komt overeen met hoe alles op de betreffende schijf staat (gesorteerd op basis van de offset).

Elke rij bestaat uit meerdere kolommen. Het begint met kolommen die staan voor disk, partitie en volume (daarover straks meer). De getallen in die kolommen zijn dezelfde die Diskpart gebruikt (PowerShell geeft soms andere weer!).

In veel gevallen staat in de eerste kolom wel het schijfnummer 0, maar niets in de volgende kolommen Part., Vol. enzovoort, maar alleen een vermelding onder Size en als Type dan <Niet toegewezen>.

Zo’n vrije, heel kleine ruimte helemaal vooraan op de schijf dient voor de uitlijning (alignment): het begin van het volgende gebied begint daarmee op een adres dat een veelvoud is van de sectorgrootte – dat vermindert I/O-bewerkingen.

Dergelijke kleine, vrije gebieden zijn op veel schijven ook tussen partities te vinden. Als er in de kolom Part. een getal staat, is er een partitie in dat gebied aanwezig. Die worden voor elke schijf apart genummerd, telkens beginnend met 1.

Nummers: Volumes

De derde kolom benoemt de volumes. Dat zit zo: een partitie definieert wel een gebied op een schijf, maar Windows kan daar nog niets in opslaan. Dat kan pas als je er een volume in aanmaakt. Dat is een logisch station.

Die twee termen worden vaak als synoniemen gebruikt omdat ze meestal dezelfde plek op de schijf innemen. Maar dat is niet altijd zo: bij een schijfcluster kan een volume zich bijvoorbeeld over meerdere partities op meerdere schijven uitstrekken. Bovendien bevatten niet alle partities per se volumes.

Dat zal de tabel op andere computers waarschijnlijk ook laten zien: je zult er hoogstwaarschijnlijk regels vinden waarin wel een partitie- maar geen volumenummer staat. Dergelijke partities bevatten geen volume.

Stationsletters

De volgende kolom vermeldt de stationsletter waaronder een volume in Verkenner verschijnt. Schijven en partities hebben in principe geen letters – waarom zouden ze ook, je kunt er toch niets op opslaan.

Maar ook volumes hebben niet altijd een letter. Dat geldt bijvoorbeeld voor de volumes die de Windows-bootloader bevatten, en voor die met de herstelomgeving (Recovery Environment, RE).

Je kunt echter zelf letters toewijzen of verwijderen. Let op: elke Windows-installatie beheert zijn eigen lijst met stationsletters. Daardoor beheert bijvoorbeeld een rescue-Windows dat vanaf een USB-stick wordt opgestart zijn eigen lijst. Het kan dus best zijn dat wat de Windows-installatie op de SSD als D: aanduidt, voor een rescue-Windows E: of F: of iets anders is – of helemaal geen letter heeft.

Wijzigingen in de letters in een rescue-Windows-installatie hebben geen invloed op de letters die Windows op een SSD gebruikt. Dat geldt ook voor parallelle installaties.

De volgende kolom vermeldt het label, dus de naam van het volume, die ook in Verkenner verschijnt. Als er geen toegewezen is, staat daar gewoon niets. In Verkenner heet zo’n schijf Lokale schijf.

Bestandssysteem

Pas als een volume met een bestandssysteem geformatteerd is, kun je er echt iets op opslaan. Dat is de eigenlijke organisatiestructuur die bepaalt hoe de bestanden op een schijf worden opgeslagen, beheerd en teruggevonden. Een volume kan trouwens ook zonder een bestandssysteem een stationsletter hebben.

Ook daar zijn er weer verschillende varianten. Onder Windows spelen vooral NTFS en FAT32 een rol. Er zijn ook bestandssystemen bekend zoals exFAT (voor externe schijven) of ReFS (bedoeld als opvolger van NTFS), maar Windows kan niet op exFAT worden geïnstalleerd en niet alle edities kunnen overweg met ReFS.

Het standaardbestandssysteem voor Windows is NTFS, wat staat voor New Technology File System. Daarmee kun je niet alleen bestanden inclusief diverse metadata (grootte, tijdstempel …) lezen en schrijven, maar bijvoorbeeld ook toegangsrechten toekennen, comprimeren en per bestand versleutelen. Bovendien kent NTFS verschillende soorten koppelingen (hardlinks en symbolische links).

Een bestand kan maximaal 16 TB groot zijn, een NTFS-volume 256 TB. Windows kan uitsluitend op NTFS-volumes worden geïnstalleerd.

Het FAT-bestandssysteem bestaat in verschillende varianten, zoals FAT12 en FAT16, maar onder Windows wordt vrijwel alleen nog FAT32 gebruikt. De getallen 12, 16 en 32 staan voor de bitbreedte van de vermeldingen in de File Allocation Table (FAT, vandaar de naam); hoe breder, des te grotere opslagmedia en bestanden het FAT-bestandssysteem ondersteunt.

Zelfs FAT32 heeft te kampen met flinke beperkingen: bestanden mogen daarbij maximaal 4 GB groot zijn. Onnodig genoeg weigert Windows volumes groter dan 32 GB met FAT32 te formatteren, hoewel het daar wel mee overweg kan. Die limiet zou jaren geleden al moeten verdwijnen, maar tot nu toe is dat nog niet gebeurd.

FAT32 – nog steeds?

NTFS heeft veel voordelen ten opzichte van FAT32, en toch vind je op moderne computers beide bestandssystemen. Dat komt door hoe de eerste stappen na het opstarten van een pc verlopen.

Eerst start het BIOS (Basic Input/Output System), wat ook geldt als het BIOS volgens de UEFI-standaard is. Zo’n UEFI-BIOS zit tegenwoordig in vrijwel elke pc. Het gebruikt de moderne UEFI-mechanismen om op te starten. Als er een Compatibility Support Module (CSM) is ingebouwd en geactiveerd, kan een UEFI-BIOS zich echter ook gedragen als een traditioneel Legacy-BIOS (of er een CSM aanwezig is, bepaalt de hardwarefabrikant).

Als een pc via een Legacy-BIOS opstart, zoekt hij direct in de MBR van de schijf naar de opstartcode en geeft die door. Die code zoekt pas in de partitietabel naar de eerste primaire partitie die als ‘actief’ is gemarkeerd en in wiens volume de bootloader dan staat.

Het BIOS is op dat moment al uitgeschakeld, hoeft dus geen toegang te hebben tot dat volume en heeft daarom ook geen stuurprogramma nodig voor het bestandssysteem ervan.

Het opstarten via UEFI werkt anders: dan zoekt het UEFI-BIOS naar een EFI System-partitie (ESP). Volgens de UEFI-specificatie moet die op een GPT-schijf staan, maar dat is geen verplichting. Windows dwingt de koppeling tussen UEFI en GPT bij interne schijven toch af.

De ESP is op zich een partitie zoals alle andere en bevat een volume met een bestandssysteem, en daarin is de bootloader opgeslagen in de vorm van een bestand. Om daar direct naar te kunnen doorverwijzen, moet het BIOS het kunnen lezen, waarvoor het een geschikt bestandssysteemstuurprogramma moet hebben.

De specificatie bepaalt dat een UEFI-BIOS op zijn minst FAT moet kunnen lezen, wat bij Windows altijd FAT32 betekent. Een UEFI-BIOS mag wel andere bestandssysteemstuurprogramma’s meeleveren, maar dat is niet verplicht. Daarom zijn ESP’s vrijwel altijd met FAT32 geformatteerd.

IsSystem, IsBoot

In de tabel van het script volgt na de kolom met het bestandssysteem de kolom voor de grootte. Dat is de grootte van het volume, tenzij er geen is. Dan is het de grootte van de partitie. Ontbreekt ook die, dan is het de grootte van de niet-toegewezen ruimte.

De volgende twee kolommen bevatten elk slechts bij één enkel volume een kruisje. Daarmee worden de twee belangrijkste volumes voor het opstarten van Windows gemarkeerd: ten eerste het volume waarop de bootloader staat, en ten tweede het volume waarop Windows geïnstalleerd is.

Houd er echter rekening mee dat je hier met Microsoft te maken hebt: het volume met de bootloader draagt de markering IsSystem, terwijl het volume met het besturingssysteem de naam IsBoot heeft.

Type en Type-ID

De laatste twee kolommen zijn heel belangrijk. Daar staat het type en de ID van elke partitie. Dat zijn identificatiecodes in de GPT- of MBR-partitietabel die het besturingssysteem laten weten welk soort gegevens er op die partitie te verwachten zijn en hoe het daarmee moet omgaan.

Ook Schijfbeheer richt zich daarop: afhankelijk van het type stelt het bepaalde functies beschikbaar of juist niet. Een overzicht van de typen en ID’s die je bij een standaard Windows-installatie kunt verwachten, staat in de twee kleine tabellen hieronder.

Overzicht en vooruitblik

Je hebt nu alle informatie bij elkaar om de indeling van de schijven te kunnen beoordelen. Standaard is de volgorde altijd hetzelfde: het begint met een niet-toegewezen ruimte voor de uitlijning, daarna volgt het volume met de bootloader.

Alleen op GPT-schijven zie je vervolgens een partitie van het type Microsoft Reserved (MSR), die geen volume bevat. Windows gebruikt die ruimte bij het omzetten van schijven naar dynamische schijven (voor RAID’s) en ‘voor toekomstige doeleinden’, die voor zover wij weten tot nu toe niet verder gedefinieerd zijn.

Daarna volgt het volume met Windows en tot slot het herstelvolume voor de herstelomgeving Windows RE. Op iedere computer kan dat er echter heel anders uitzien: de grootte van de volumes verschilt bijvoorbeeld per Windows-versie.

Als een pc met een vooraf geïnstalleerde Windows-versie geleverd is, hangt bovendien veel af van de ideeën en kennis van de verantwoordelijken bij de betreffende fabrikant.

Soms zorgt ook Microsoft zelf voor wat chaos: zo staat het herstelvolume soms voor en soms achter Windows, soms is het meerdere keren aanwezig of ontbreekt het helemaal. Dat komt doordat Windows RE bedoeld is als noodoplossing voor problemen, maar zelf vaak ook hulp nodig heeft – waar Microsoft weer een puinhoop van maakt. Dat uitpluizen gaat hier te ver.

We hebben een aantal details in twee artikelen beschreven [3, 4]. In het laatstgenoemde artikel introduceren we bovendien een script voor RE-analyse.

AI schrijft PowerShell

Het script dat we in dit artikel beschrijven, hebben we met nog meer zorg gecontroleerd en getest dan we sowieso altijd al doen. Het is namelijk het resultaat van een experiment: we wilden weten in hoeverre een AI het schrijven van een script van ons kan overnemen.

Onze eerste pogingen deden we met ChatGPT 5.4, en om onze ervaringen samen te vatten: vergeet die AI als het om PowerShell gaat. ChatGPT weet er veel te weinig van en kan wel enkele regels code produceren, maar alles wat daarbuiten valt, levert vooral fouten op.

Die AI draaide bovendien snel in cirkels rond: als de eerste oplossing niet werkte (wat schrikbarend vaak gebeurde), presenteerde het wel een tweede of soms een derde, maar als die ook niet werkten, kregen we de eerste weer te zien.

We hadden aanzienlijk betere ervaringen met Claude Opus 4.6. Die AI slaagde er tijdens onze experimenten in om precies datgene in PowerShell te gieten wat we wilden. Diverse tests en intensieve controles toonden aan dat het script daadwerkelijk de juiste informatie weergeeft.

Maar wat ook gezegd moet worden: het kostte ons meer dan een week voordat Claude de versie van het script had geschreven die je hier nu kunt downloaden. De tussentijd hebben we besteed aan het laten doorvoeren van steeds nieuwe correcties, omdat oudere versies op de een of andere manier fouten vertoonden.

De conclusie: Claude beheerst wel PowerShell, maar zit net als de concurrentie toch vol met halve kennis en onzin. We hebben meerdere keren meegemaakt dat de AI zichzelf moest corrigeren toen we erop wezen dat een van de uitspraken onjuist was.

Kortom: ja, met Claude kun je PowerShell-scripts ontwikkelen, maar als je niet over voldoende vakkennis beschikt, zal wat het script doet in veel gevallen niet precies zijn wat je verwacht. Je moet dus in staat zijn om het voltooide script nauwkeurig te beoordelen. Bij twijfel kun je het beter helemaal of ten minste gedeeltelijk zelf schrijven – zeker als het script iets moet doen dat relevant is voor je bedrijf. Fouten kunnen dan duur uitvallen.

Nu we het toch over geld hebben: voor het gebruik van Claude is een licentie nodig en voor elke prompt moet er iets worden betaald. Chatten met Claude kost dus geld. In totaal heeft het ontwikkelen van ct-partinfo met Claude ons bijna 100 euro gekost, maar het heeft ons ook zoveel tijd bespaard dat het voor ons toch de moeite waard was.

We vermoeden dat het bij verdere scripts goedkoper en sneller gaat vanwege de ervaring die we dan al hebben opgedaan. Maar om dat ook duidelijk te zeggen: afgezien van de ramp met ChatGPT hebben onze ervaringen uitdrukkelijk alleen betrekking op Claude Opus 4.6 en uitdrukkelijk alleen op PowerShell. Ons experiment zegt dus niets over andere AI’s, script- en programmeertalen.

Axel Vahldiek en Noud van Kruysbergen

Literatuur

[1] Axel Vahldiek en Noud van Kruysbergen, Partitioneren met programma’s van Windows – deel 1: Schijfbeheer, c’t 5/2018, p.104
[2] Axel Vahldiek en Noud van Kruysbergen, Partitioneren met programma’s van Windows – deel 2: DiskPart, c’t 5/2018, p.108
[3] Axel Vahldiek en Marco den Teuling, Windows RE en de herstelpartitie, c’t 11/2021, p.123
[4] Axel Vahldiek en Daniel Dupré, Windows-herstelomgeving RE repareren, c’t 11/2024, p.112

Inspiratie in je mailbox

Blijf bij op IT-gebied en verbreed je expertise. Ontvang elke week artikelen over de laatste tech-ontwikkelingen, toepassingen, nieuwe hard- en software én ontvang tips en aanbiedingen.

Loginmenu afsluiten