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.
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
Diskvoor 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
'Windows 95
Partition Bug': Windows95 heeft een probleem in FDISK voor het maken van
extended partities. Zie hier het hele verhaal. Met beschrijving hoe je met
'debug' makkelijk je partitietabel kunt dumpen (in hex formaat).
Tools voor disk management en problemen met de PC: Kijk eens naar de
Ultimate Boot CD (maar, doe dit
voordat je al problemen hebt...)