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
|