Dit is een archief-pagina

Dit is een archief-pagina. Ik werk deze pagina niet meer actief bij.
Informatie kan verouderd zijn, en links lopen mogelijk dood.
Maar, misschien heeft iemand er nog wat aan.


Onder constructie Onder constructie Partities

Wat zijn partities?

Een van de mysteries van PC's zijn de zogeheten partition tables, partitietabellen. Dingen die je normaal nooit nodig hebt, maar als er iets in fout zit voor heel wat hoofdpijn kunnen zorgen. Wat is een partitietabel: een tabel aan het begin van je harde schijf die aangeeft hoe de schijf in partities is verdeeld, dus zeg maar in drives als C:, D: en E:. Dit is vooral van belang:

  • bij grote schijven (Windows ME heeft bijvoorbeeld problemen bij schijven groter dan 40 GByte)
  • als je meer operating systems naast elkaar op een schijf wilt zetten (bijvoorbeeld Windows en Linux)
  • als je je data en je programma's gescheiden wilt houden, bijvoorbeeld programma's op C: en data op D:

Iedere harde schijf begint met een 'Master Boot Record' (MBR), altijd opgeslagen in het allereerste blok van 512 bytes op de disk. Het eerste deel van de MBR (de eerste 446 bytes) bevat de boot code (boot loader): de eerste code die de computer uitvoert bij het booten van een harde schijf. Dit kan omdat deze informatie dus altijd op dezelfde plek staat, ongeacht hoe en met welk operating systeem de schijf verder is ingedeeld. Is dit deel beschadigd dan zal je computer niet meer booten (Windows users: zoek naar commando 'FDISK /MBR')

Het tweede onderdeel van deze MBR is de partitietabel; 4 groepen van 16 bytes waarin maximaal 4 partities kunnen staan (zogeheten primaire en/of extended partities, in Dos/Windows taal), met daarachter de bytes 55 AA om het einde van de tabel aan te geven. Normaal vind je hier primaire partities, in ieder geval minstens een (in geval van een niet opgesplitste disk). Enkele van deze partities kunnen ook 'extended partitions' zijn, een uitbreidingsmechanisme om meer dan vier partities aan te kunnen maken, waarvan de verdere informatie dan op een andere plek wordt opgeslagen. Hiertoe worden in een extended partitie een of meerdere 'logische partities' aangemaakt.

Een goede site met allerlei info over hard disks (formatteren, partities, FDISK, XXCOPY etc) is Archer's Hard Disk Management. Een Nederlandstalige site met informatie over de MBR (met uitgebreide uitleg, hex dumps en zo voort) is Opstarten, MBR, Layout eerste sector.

Ik splits zelf meestal eenmalig de harde schijf in vier 'partities':

  • twee van het type FAT32: een C: partitie voor Windows, en een kleine D: partitie (minimaal 2 Gbyte) die ik later gebruik om een reserve-kopie van een schoon systeem op op te slaan. Hiermee hoef ik later als ik weer met een schone lei wil beginnen niet Windows helemaal vanaf nul hoef te installeren, maar kan de zaak in een keer voorgeconfigureerd terug zetten. Heel handig, scheelt een paar uur voor een kaal Windows systeem, of meer voor een 'standaard' systeem.
  • Een 'ext3'  type partitie, dit is voor Linux (zie mijn Knoppix/Ubuntu pagina)
  • En een 'Linux-swap' partitie, waar Linux zijn swap-file kwijt kan (ook gebruikt door de CD versie van Knoppix, handig bij weinig intern geheugen).

Hoe maak je partities?

Als je een nieuwe schijf koopt, staat hier of helemaal geen, of een partitie op. Hoe kan je dit veranderen?

DOS/Windows FDISK

De ouderwetse methode is met FDISK (of freeware vervanger), vanaf een boot floppy. Heeft wel nadelen: je kan alleen standaard DOS/Windows partities aanmaken, en niet bijvoorbeeld Linux partities. Bovendien is het een command-line (DOS) interface, dus niet echt gebruiksvriendelijk. Boot vanaf floppy, bijvoorbeeld gemaakt met bijvoorbeeld de Ultimate Boot Disk voor Windows ME utility (hierop staat ook FDISK). Ultimate Boot Disk voor ME is niet meer op de originele site te vinden, maar probeer eens hier of hier. Of ga voor de Ultimate Boot CD, een meer up to date versie (ook voor andere Windows versies).

Start FDISK op (en kies voor support van grote schijven). Maak nu een primaire partitie aan. Maak deze niet te groot, bijvoorbeeld de Windows ME installer kan niet met partities van 80 GB of groter overweg, maar start met max zo'n 30 GB. Dit zal drive C: worden. Maak dit de actieve partitie, zodat er vanaf geboot kan worden.

Nu eerst het systeem resetten (anders ziet'ie de C: nog niet) met de boot floppy. Dan de partitie formatteren (commando's FORMAT C:)

Verdere partities maak ik aan met QTparted vanaf CD, zie de volgende paragraaf, maar je kunt ook met FDISK verder gaan (is wel langzaam...).

Knoppix QTparted

Met behulp van het grafische QTparted, bijvoorbeeld te vinden op de gratis Knoppix Linux distributie, gaat het allemaal wat makkelijker, en met behoud van de aanwezige data. Je kunt diverse types partities aanmaken, en ook Windows partities van grootte wijzigen, zonder verlies van data. Dit allemaal via een vriendelijke gebruikersinterface (al moet je hier ook een beetje weten wat je doet).

Toch raad ik aan om (als de disk nog helemaal leeg is) de eerste primaire partitie aan te maken met FDISK, en met Format te formatteren. Blijkt beter compatible te zijn met DOS/Windows, en later eventuele problemen te voorkomen. Gebruik vervolgens QTparted om extra partities aan te maken, partities te wijzigen en zo voort.

Partitietabel saven

Met Knoppix (of andere Linux systemen) kan je ook partitietabellen saven/restoren, dankzij het 'dd' commando (staat voor 'data dump', maar verkeert gebruikt kan je het ook lezen als 'disk destroyer': wees voorzichtig).

dd bs=512 count=1 if=/dev/hda of=drive.mbr # save master boot record in file drive.mbr

dd bs=512 count=1 if=/dev/hda1 of=hda1.mbr # save C: partition 1 boot record

dd if=/dev/hda1 of=hda1.bin # save complete C: partition (enough space?)

Kapotte partitietabel

Als de partitietabel beschadigd is, moet deze gerepareerd worden. Dit is een lastig iets... Handmatig is dit (zeker voor een beginner) eigenlijk nauwelijks te doen. Ik weet niet of er gratis tools voor zijn, er bestaan in ieder geval commerciële tools voor.

Het kan zelfs zijn dat de partition table zover beschadigd is dat zelfs FDISK van de slag raakt. Ik heb dit onlangs gehad: het leek allemaal goed te gaan, maar de twee partities die ik had aangemaakt waren samen groter dan de totale schijfgrootte... Leuk natuurlijk, maar toch vertrouw ik dat niet. Opnieuw indelen met FDISK loste dit probleem niet op...

Ik heb dit destijds opgelost door de partitie tabel volledig te overschrijven, met behulp van het commando 'Prepare Drive' in het Ultimate Boot Disk 4.3 menu (UBD 4.3 is een gratis Windows ME 'rescue disk', boot vanuit DOS). Dit overschrijft de hele partition table, waarna FDISK weer goed werkt. Dit gebeurt (voor zover ik kan zien) met behulp van eerst het commando FDISK /MBR om een eerste versie van de MBR te maken, en vervolgens het commando AEFDISK 1 /FORMATFAT /DELALL /PRI:0:C voor de schone FAT32 C: partitie. Ultimate Boot Disk voor ME is niet meer op de originele site te vinden, maar probeer eens hier of hier. Of ga voor de Ultimate Boot CD, een meer up to date versie (ook voor andere Windows versies).

Als alternatief: tegenwoordig gebruik ik voor dit soort nood-acties meestal een Linux Live CD, bijvoorbeeld Ubuntu. Met behulp van testdisk van cgsecurity.org kan je ook het een en ander repareren, en anders in ieder geval nog proberen je files te redden (met hun Photorec)... Installeren in een root terminal: apt-get install testdisk, en dan het programma testdisk starten.

Hoe ziet een partition table er uit?

Sectoren?

Een 'harde disk' bestaat uit verschillende schijven. Iedere schijf is opgedeeld in meerdere sporen, de zogeheten cylinders. Iedere cylinder is weer opgedeeld in sectoren van 512 bytes. Ook heeft iedere schijf een eigen leeskop (head). De positie op een disk wordt dus vastgelegd door drie getallen: de kop (head), de cylinder, en de sector.

Overigens is bij moderne schijven dit vaak 'nep', en hebben ze intern een heel andere indeling dan dat ze naar de computer doen denken. Dit omdat vanwege beperkingen in de codering van BIOS er bijvoorbeeld een beperking is in het aantal heads dat gespecificeerd kan worden.

Zoals eerder gezegd, de partitie tabel is te vinden in de MBR (Master Boot Record) op de allereerste sector van de harde schijf. Op deze eerste sector vanaf byte 0x1BE zijn 4 groepjes van 16 bytes te vinden, met de volgende info (met dank aan onder andere de Partition Table Doctor site):

Start

Lengte

Beschrijving

0 1 Active vlag (boot label). Vertelt de computer van deze partitie te booten (normaal alleen eerste partitie)
1 3 Beginpositie van de partitie op disk:
Byte 1: Starting head
Byte 2: Lower 6 bits (bit 0 to bit 5) is starting sector.
Higher 2 bits (bit 6 to bit 7) is the higher bits of starting cylinder
Byte 3: The lower 8 bits of starting cylinder
4 1 Partition type, veel voorkomende types zijn:
01: Primary DOS 0-15MB 12-bit FAT MS-DOS 2.0
04: Primary DOS 16-32MB 16-bit FAT MS-DOS 3.0
05: Extended DOS 0-2GB MS-DOS 3.3
06: Primary DOS 32MB-2GB 16-bit FAT MS-DOS 4.0
07: Windows NT NFTS; of OS/2 HPFS
0B: Windows'95 FAT32 0-2GB
0C: Windows'95 FAT32, LBA-mapped
0E: Primary DOS 32MB 16-bit FAT Windows 95
0F: Extended DOS 0-2GB Windows 95 (LBA)
83: Linux native partition (meerdere interpretaties, bv ext2, ext3, reiserfs, ...)
83: Linux swap partition
Voor meer gedetailleerde beschrijving zie de 'List of partition identifiers for PCs'
5 3 Eindpositie van de partitie op disk (zelfde codering als de beginpositie op offset 1)
8 4 Aantal sectoren voor deze partitie (partitie start op dit sectornummer, als je vanaf 0 begint te tellen)
12 4 Aantal sectoren in deze partitie (dus de grootte van de partitie is (aantal sectors)*512/1048576 MB

Partities Saven/Kopiëren

Ik ben bezig een oude computer opnieuw tot leven te brengen. Een van de zaken die ik daarbij wilde kunnen is een snapshot van de Windows installatie maken, om in geval van problemen snel de zaak weer terug te zetten. Nu is daar officiële software voor, ghost of drive image of disk clone software, maar... ook eens naar vrij beschikbare software gezocht.

SavePart is ook geschikt om een disk te klonen (clone disk, ghost image etc): als je bijvoorbeeld een grotere disk in je systeem wilt zetten, zonder al je data kwijt te raken.

SavePart op www.partition-saving.com is een goede tool om een kopie van je Windows installatie te maken. Gebruik ik na een nieuwe installatie om op D: (een kleine partitie op mijn harde schijf: 3.5 MB) een kopie van C: (op dezelfde schijf) te maken. Werkt perfect! Heb nu een kopie van een kale installatie (350 MB) en van een versie inclusief Windows ME patches (680 MB), virus-scanner, firewall etc: de minimum set die je altijd wilt kunnen herstellen bij een crash, of gewoon als je Windows systeem te veel is vervuild. Ook voor XP!

Een alternatief, gebaseerd op Linux, is de SystemRescueCd. Deze CD draait zonder installatie op je harde schijf, en kan partities maken, resizen, saven/restoren, en heeft allerlei andere utilities om in geval van een crash je data nog te kunnen gebruiken (netwerk tools, editors, etc). Maar, geen grafische interface, dus linux-kennis vereist. Op deze CD staat onder andere partimage, het Linux 'equivalent' van SavePart.

XXcopy is ook een nuttig programma, een uitgebreide XCOPY, sterk genoeg om zelfs een volledige bootable kopie (clone disk optie) te maken, met behoud van lange padnamen en zo. Alleen, werkt niet met XP (Windows ME of ouder).

Partities van grootte veranderen? Partition Resizer is een gratis programma voor dit doel! Maar om nieuwe partities aan te maken moet je nog steeds FDISK gebruiken. Maar een beter alternatief voor FDISK en Partition resizer is het hierboven al beschreven QTparted (partition editor) op de Knoppix Linux CD. Kan je direct vanaf CD draaien; hoeft niet op je harde schijf te staan! Heeft een mooie grafische gebruikersinterface, en kan veel diskformaten aan (ook Linux partities). Dus als je een Knoppix CD hebt... En kan voor zover ik weet met behoud van data!

Ps: image van een CD maken om een identieke kopie te trekken? Het eerder besproken Linux 'dd' commando is ook hiervoor bruikbaar:
dd if=/dev/cdrom of=cdimage.iso # copy CD to file with iso image

Meer informatie