Omdat men het handig vond om de harde schijf in meerdere stukken te kunnen opsplitsen, zijn partities verzonnen. Een partitie is een stuk van je harde schijf. Er zijn verschillende redenen te bedenken waarom je partities zou willen gebruiken. Je kunt het bijvoorbeeld handig vinden om verschillende data op verschillende stukken te plaatsen. Als je verschillende besturingssystemen, zoals Windows en Linux, naast elkaar wilt kunnen gebruiken, dan kan dat zelfs niet anders dan door beide op andere partities te zetten. (Ok, dat kan wel, maar laten we het even niet al te ingewikkeld maken.) Meerdere besturingssystemen gebruiken heet dual booten.
Onder DOS en Windows hebben alle partitie (die hij herkent) een andere letter. Wat je niet zomaar kunt zien is of D nou echt een andere harde schijf is of slechts een partitie van dezelfde harde schijf. Veel biossen laten tijdens het opstarten zien welke harde schijven in de machine zitten. Is er slechts 1 harde schijf aanwezig en er bestaan C en D (waar D geen CD-ROM-speler is), dan moeten C en D wel partities zijn van dezelfde harde schijf.
Een veel gemaakte denkfout is: ''ik heb veel ruimte over op C, dus daar kan ik Linux wel op installeren''. Die vrije ruimte is ruimte op de partitie waar Windows op geïnstalleerd staat. Die ruimte is niet beschikbaar om Linux-partities aan te gaan maken! Je moet er op een of andere manier voor zorgen dat er echt ruimte vrijkomt op de harde schijf, dat de grote partitie voor Windows dus niet meer schijfvullend is.
Partitioneren of herpartitioneren kan op verschillende manieren.
Als je een partitie hebt aangemaakt, dan zul je deze partitie ook nog moeten formatteren voordat je hem echt kunt gaan gebruiken. Als je een partitie gaat formatteren maak je er een bestandssysteem op aan. Formatteren gaat in DOS met format en in Linux met /sbin/mkfs.ext2. Format onder DOS kan alleen een FAT16-systeem aanmaken en mkfs.ext2 alleen een ext2-bestandssysteem. Tijdens de installatieprocedure van de distributie zal waarschijnlijk wel gevraagd worden om de aangemaakt partities te formatteren. Ieder besturingssysteem heeft z'n eigen bestandssysteem. Een aantal bestandssystemen wordt genoemd in volgende tabel.
Besturingssysteem | Bestandssysteem |
DOS | FAT16 (en FAT12 voor floppies) |
OS/2 | HPFS |
Windows 9x | FAT16 of 32 |
Linux | ext2, ext3 of reiser, swap |
Windows NT | NTFS |
Ext2 is wat je normaal gesproken gebruikt. Ext3 is hetzelfde als ext2, maar dan met een zogenaamd journal erbij. Het idee van een journal is dat bij elke verandering aan het file system eerst in het journal geschreven wordt wat er gaat gebeuren. Daarna wordt het echt gedaan en tenslotte wordt de entry uit het journal gehaald. Mocht het systeem om de een of andere reden nou voordat de verandering compleet was uitgevoerd uitvallen, dan staat er nog altijd in het journal wat er moest gebeuren. Dan kan die actie daarna nog altijd worden uitgevoerd. Dit gaat sneller dan het moeten uitvoeren van een controle door e2fsck, waardoor een betere uptime te verzekeren is. Dit is goed voor bijv. een webserver. Reiser is net als ext2 een journalling file system. Reiser is efficiënten als er veel kleine bestanden op de partitie staan, maar ext3 heeft een groot voordeel: het file system is identiek aan ext2, zodat in geval van problemen alsnog e2fsck kan worden uitgevoerd. Ext2 en ext3 zijn zeer eenvoudig in elkaar om te zetten door het journal weg te halen resp. aan te maken. Meer informatie over ext3 en reiser kan worden gevonden op:
Er bestaan verschillende soorten partities. Doordat men vroeger had verzonnen dat 4 partities wel genoeg zouden zijn, kun je maar 4 zogenaamde primaire partities aanmaken. Van een primaire partitie kun je een besturingssysteem opstarten. Het gevolg is dus dat je maximaal 4 besturingssystemen tegelijk op 1 harde schijf kunt installeren. Linux is een van de weinige besturingssytemen die je ook kunt opstarten vanaf een logische partitie.
Je moet altijd 1 primaire partitie activeren (zo wordt het genoemd in fdisk van DOS) of bootable maken (volgens fdisk van Linux). Vanaf die partitie wordt geboot. Een bootmanager is een programma waarmee je bij het opstarten kunt kiezen welk besturingssysteem je wilt gebruiken. De partitie waar de bootmanager op geïnstalleerd is moet bootable zijn. Als je de bootmanager in het Master Boot Record (MBR) zet (het eerste stuk van de harde schijf), dan maakt het niet uit welke partitie bootable is. (De bootmanager die in de MBR staat kan overigens weer andere bootmanagers die op andere partities staan starten.) De bootmanager die bij Linux vaak gebruikt wordt heet LILO (Linux Loader). En alternatieve bootmanager is Grub.
Vier partities is geen luxe. Vaak wil je meer partities aanmaken. Daarom heeft men het volgende bedacht. In plaats van een primaire partitie maak je een uitgebreide (Engels: extended) partitie. Je kunt dus in totaal maximaal 4 primaire of logische partities aanmaken. Binnen een uitgebreide partitie kun je andere partities aanmaken. Zo'n partitie binnenin een uitgebreide partitie noemen we een logische (Engels: logical) partitie.
Alle harde schijven en partities worden in Linux weergegeven als bestanden onder /dev. Voor harde schijven van het type IDE geldt:
/dev/hda primaire master /dev/hdb primaire slave /dev/hdc secundaire master /dev/hdd secundaire slave
Er zijn 2 kabels op het moederbord waar harde schijven (en andere apparaten) op kunnen worden aangesloten. De ene heet de primaire kabel, de andere de secundaire. Op elke kabel kunnen weer 2 aparaten worden aangesloten. De ene is de master, de andere de slave. Wat waar op zit aangesloten kun je waarschijnlijk in je bios zien.
Bovenstaande devices staan voor de complete harde schijf. De partities die op /dev/hda staan heten /dev/hda1, /dev/hda2 etc. Om te zien welke partities werkelijk bestaan (er staan nl. ook voor jou niet bestaande devices onder /dev), kun je fdisk /dev/hda intikken en vervolgens p. Partities die binnen een extended partitie staan, worden genummerd vanaf de 5. Dus de 2e partitie binnen de extended partitie op /dev/hda is /dev/hda6. De primaire of uitgebreide partities zijn genummerd van 1 tot 4. Meer is toch niet mogelijk.
Op een IDE-disk kunnen maximaal 63 partities (hda 1-4 zijn dan primary of extended, hda 5-63 logisch) en op een SCSI-disk maximaal 15 partities (sda 1-4 primary, sda 5-15 logisch).
Voor Linux heb je minstens twee partities nodig. Een partitie met het ext2- (of eventueel ext3- of reiser-) bestandssysteem waarop software wordt geïnstaleerd en een swap-partitie. De swap-partitie wordt gebruikt als virtueel geheugen. Dat is geheugen op de harde schijf. Dat is veel langzamer dan het echte geheugen, maar kan wel veel groter zijn. Data die lange tijd niet meer gebruikt is wordt verhuisd naar de swap. Het is mogelijk de swap-partitie onder zowel Linux als Windows te gebruiken. Voor meer informatie over hoe je dat doet zie http://metalab.unc.edu/pub/Linux/docs/HOWTO/mini/other-formats/html_single/Swap-Space.html
Hoe groot de swap file moet zijn, ligt eraan hoe groot je gewone geheugen is en wat je van plan bent te gaan doen. De totale hoeveelheid geheugen die voor programma's beschikbaar is, is het echte geheugen + de swap file. Dus als je 64 MB RAM hebt en 64 MB aan swap, dan is er in totaal 128 MB beschikbaar voor programma's. Een totale hoeveelheid geheugen van tussen de 64 MB en 128 MB is aan te raden. Blijk je achteraf nog swap tekort te komen, dan kun je altijd nog een tweede swapfile aanmaken. Je kunt een partitie formatteren om als swap te gebruiken met /sbin/mkswap, maar je kunt ook een bestand laten gebruiken als swap. Heb je een nieuwe swap-partitie gemaakt, voeg die dan toe aan /etc/fstab en activeer deze met /sbin/swapon. (Je raadt nooit wat /sbin/swapoff doet.) Voor meer informatie zie man swap.
Als je naast de swap-partitie slechts 1 grote partitie met het ext2-, ext3- of reiser-bestandssysteem maakt, dan moet die grote partitie gemount worden onder / (root). 1 GB moet voldoende zijn als je eens met Linux wilt experimenteren. Op deze zg. root-paritie komen alle bestanden voor Linux te staan.
Ik vind het persoonlijk echter prettiger om meerdere partities voor Linux aan te maken. Als je naast de root-partitie nog andere partities aanmaakt, dan moet je daar een mount point voor opgeven. Als je daar bijv. /usr voor opgeeft, dan komen alle bestanden die je in /usr zet op die partitie terecht en niet op de root-partitie. Om het goed te kunnen indelen, moet je wel even weten hoeveel ruimte er voor welke directory nodig gaat zijn. Daar kom je zelf wel na een tijdje achter, maar als je net begint heb je nog geen idee. Daarom volgt er hier een overzicht van directories die handig kunnen zijn om op een aparte partitie te plaatsen en hoeveel ruimte ik er voor in gebruik heb. Je hoeft dit niet precies na te (willen) doen.
Voor oudere versies van LILO is het nodig dat je de kernel vóór de 1024e cylinder hebt staat. Dat is voor elkaar te krijgen door de kernel in /boot te plaatsen en hier een partitie voor te hebben ergens vooraan de harde schijf. Voor nieuwere versies van LILO is dit echter niet meer nodig.