Gentoo Logo

1.  Introductie van Block Devices

Block Devices

We bekijken de schijf gedeeltes van Gentoo Linux en Linux in het algemeen, inclusief de linux bestandssystemen, partities en block devices. Wanneer u dan bekend bent met de ins en outs van schijven en bestandssystemen, leiden we u door het proces van het opzetten van partities en bestandssystemen voor uw Gentoo Linux Installatie.

Om te beginnen, zullen we block devices introduceren. Het meest bekende block device is waarschijnlijk die van de eerste IDE schijf in een Linux systeem, namelijk /dev/hda. Als uw systeem SCSI of SATA schijven heeft, dan kan uw eerste harde schijf /dev/sda zijn.

De hierboven genoemde block devices stellen een abstracte interface naar de schijf voor. Programma's kunnen deze block devices gebruiken om te communiceren met de schijf zonder zich zorgen te hoeven maken of het een IDE, SCSI of iets anders is. Het programma kan simpelweg de ruimte als een set aangrenzende, willekeurig te bereiken 512-byte blokken gebruiken.

Partities

Hoewel het theoretisch mogelijk is om een volledige schijf te gebruiken voor uw Linux systeem, wordt dit in de praktijk zelden gedaan. In plaats daarvan worden ze opgesplitst in kleinere, makkelijker te beheren block devices. Op ${arch} systemen, noemen we deze partities.

Partities worden in drie types opgedeeld: primary (primaire), extended (uitgebreide) en logical (logische).

Een primaire partitie is een partitie die zijn informatie opslaat in de MBR (master boot record). Omdat een MBR erg klein is (512 bytes) kunnen er slechts 4 primaire partities worden gebruikt (bijvoorbeeld, /dev/hda1 tot /dev/hda4).

Een uitgebreide partitie is een speciale primaire partitie (deze moet dus een van de primaire partities zijn) die meerdere parties kan bevatten. Oorspronkelijk bestonden deze niet, maar omdat vier partities te weinig waren, breidde men het partitieschema uit zonder backward compatibility te verliezen.

Een logische partitie is een partitie binnen de extended partitie. De definities hiervan worden niet in de MBR gezet, maar binnen in de extended partitie.

Geavanceerde Opslag

De ${arch} Installatie CDs bieden ondersteuning voor EVMS en LVM2. EVMS en LVM2 vergroten de flexibiliteit van uw partitie indeling. Tijdens de installatie instructies, zullen we ons richten op "reguliere" partities, maar het is goed om te weten dat EVMS en LVM ook ondersteund worden.

1.  Een partitie schema ontwerpen

Standaard Partitie Schema

Als u niet geïnteresseerd bent in een partitie schema te tekenen voor uw systeem, dan kunt u het partitie schema gebruiken wat we in dit boek gebruiken:

Partitie Bestandssysteem Grootte Beschrijving
/dev/hda1 ext2 32M Boot partitie
/dev/hda2 (swap) 512M Swap partitie (wisselbestand)
/dev/hda3 ext3 Rest van de schijf Root partitie

Als u wel wilt weten hoe groot een partitie moet zijn, of zelfs hoeveel partities u nodig heeft, lees dan verder. Zo niet, dan kunt u doorgaan met het partitioneren van uw schijf, door het lezen van fdisk gebruiken om uw schijf te partitioneren.

Hoeveel en hoe groot?

Het aantal partities hangt zeer sterk af van uw omgeving. Bijvoorbeeld, als u een heleboel gebruikers hebt, wilt u waarschijnlijk uw /home gescheiden houden omdat dit de snelheid en veiligheid ten goede komt en ook backups maken is een stuk makkelijker. Als u Gentoo installeert als een mailserver, zou u /var gescheiden kunnen houden, omdat al uw mails in /var staan. Een goede keuze van uw schijfindeling zal de snelheid flink verhogen. Gameservers zullen een aparte /opt hebben omdat de meeste gameservers daar geïnstalleerd worden, vanwege dezelfde redenen als oor /home>: veiligheid en backups. U wilt /usr groot houden: het zal niet alleen het grootste deel van de applicaties bevatten, de Portage boom op zich neemt ongeveer 500 Mbyte in beslag, exclusief de verschillende broncodes die er opgeslagen staan.

Zoals u kunt zien, hangt het sterk af van uw doel. Gescheiden partities of volumes hebben de volgende voordelen:

  • U kunt het best presterende bestandssysteem kiezen voor iedere partitie of volume
  • Uw totale systeem kan niet vol zitten als een programma constant files naar een partitie of volume probeert te schrijven
  • Zo nodig kunnen bestandssysteem controles worden beperkt in tijd, omdat meerdere controles parallel kunnen worden uitgevoerd (hoewel dit voordeel vooral geldt bij meerdere schijven dan meerdere partities)
  • Veiligheid kan worden verbeterd door het mounten van enkele partities of volumes als alleen-lezen, nosuid (setuid bits worden genegeerd), noexec (uitvoerbare bits worden genegeerd) etc.

Hoewel, meerdere partities hebben een groot nadeel: indien niet goed ingesteld, kunt u een systeem krijgen met veel vrije ruimte op de ene en niets op de andere. Ook is er een 15-partities limiet voor SCSI en SATA.

Als een voorbeeld partitie indeling, zullen we u laten zien hoe u een 20Gb schijf die wordt gebruikt als een demonstratie laptop (met webserver, mailserver, gnome, ...) partitioneert:

Codevoorbeeld 1.1: Voorbeeld bestandssysteem gebruik

$ df -h
Filesystem    Type    Size  Used Avail Use% Mounted on
/dev/hda5     ext3    509M  132M  351M  28% /
/dev/hda2     ext3    5.0G  3.0G  1.8G  63% /home
/dev/hda7     ext3    7.9G  6.2G  1.3G  83% /usr
/dev/hda8     ext3   1011M  483M  477M  51% /opt
/dev/hda9     ext3    2.0G  607M  1.3G  32% /var
/dev/hda1     ext2     51M   17M   31M  36% /boot
/dev/hda6     swap    516M   12M  504M   2% <niet gemount>
(Ongepartitioneerde ruimte voor toekomstig gebruik: 2 Gb)

/usr is hier redelijk vol (83% gebruikt), maar als alle software is geïnstalleerd groeit /usr niet meer veel. Op het eerste gezicht lijkt /var erg groot, maar Gentoo compileert standaard alle programmas in /var/tmp/portage. Wanneer u /var op bescheiden formaat wilt houden (rond de 1GB), kunt u de PORTAGE_TMPDIR variabele in /etc/make.conf aan passen en naar een partitie met voldoende ruimte laten verwijzen wanneer u extreem grote pakketten (oa OpenOffice, KDE) wilt compileren.

1.  fdisk gebruiken om uw schijf te partitioneren

Het volgende deel beschrijft hoe u de eerder beschreven voorbeeld indeling maakt, namelijk:

Partitie beschrijving
/dev/hda1 Boot partitie
/dev/hda2 Swap partitie
/dev/hda3 Root partitie

Verander uw partitie indeling eventueel naar eigen inzicht.

De huidige partitie indeling bekijken

fdisk is een populaire en krachtige tool om de schijf op te delen in partities. Start fdisk op uw schijf (in ons voorbeeld is dat /dev/hda):

Codevoorbeeld 1.1: Fdisk starten

# fdisk /dev/hda

Eenmaal in fdisk, wordt u begroet door een prompt als deze:

Codevoorbeeld 1.1: fdisk prompt

Command (m for help):

Type p om uw huidige partitie indeling te laten zien:

Codevoorbeeld 1.1: Een voorbeel partitie indeling

Command (m for help): p

Disk /dev/hda: 240 heads, 63 sectors, 2184 cylinders
Units = cylinders of 15120 * 512 bytes

Device Boot    Start       End    Blocks   Id  System
/dev/hda1             1        14    105808+  83  Linux
/dev/hda2            15        49    264600   82  Linux swap
/dev/hda3            50        70    158760   83  Linux
/dev/hda4            71      2184  15981840    5  Extended
/dev/hda5            71       209   1050808+  83  Linux
/dev/hda6           210       348   1050808+  83  Linux
/dev/hda7           349       626   2101648+  83  Linux
/dev/hda8           627       904   2101648+  83  Linux
/dev/hda9           905      2184   9676768+  83  Linux

Command (m for help):

Deze schijf is opgedeeld in zeven Linux bestandssystemen (elke met een partitie opgegeven als "Linux") en een swap partitie (opgegeven als "Linux swap").

Alle Partities verwijderen

Om te beginnen verwijderen we alle bestaande partities van de schijf. Type d om een partitie te verwijderen, bijvoorbeeld een reeds bestaande /dev/hda1:

Codevoorbeeld 1.1: Een partitie verwijderen

Command (m for help): d
Partition number (1-4): 1

De partitie is nu gemarkeerd om te verwijderen. Hij zal niet langer te voorschijn komen als u p typt, maar hij zal niet verwijderd worden tot u de veranderingen opslaat. Als u een fout maakt en wil stoppen zonder uw veranderingen op te slaan, type dan q en druk op enter. Uw partitie zal dan niet worden verwijderd.

Nu, er van uit gaande dat u inderdaad de partitie wil verwijderen, type herhaaldelijk p om de partities te zien en daarna d met het nummer dat u wil verwijderen. Uiteindelijk eindigt u met een lege partitie tabel:

Codevoorbeeld 1.1: Een lege partitie tabel

Disk /dev/hda: 30.0 GB, 30005821440 bytes
240 heads, 63 sectors/track, 3876 cylinders
Units = cylinders of 15120 * 512 = 7741440 bytes

Device Boot    Start       End    Blocks   Id  System

Command (m for help):

Nu de partitie tabel in het geheugen leeg is, zijn we klaar om de partities te maken. We zullen een standaard partitie indeling gebruiken, zoals eerder besproken. Natuurlijk bent u niet verplicht deze te volgen!

De boot partitie maken

Eerst zullen we een kleine boot partitie maken. Type n om een nieuwe partitie te maken, daarna p om een primaire partitie te selecteren, gevolgd door een 1 om de eerste primaire partitie te selecteren. Als u gevraagd wordt om de eerste cylinder aan te geven, drukt u op enter. Als er om de laatste cylinder wordt gevraagd, typt u +32M om een partitie van 32 Mbyte te maken:

Codevoorbeeld 1.1: De boot partitie maken

Command (m for help): n
Command action
  e   extended
  p   primary partition (1-4)
p
Partition number (1-4): 1
First cylinder (1-3876, default 1): (Druk op Enter)
Using default value 1
Last cylinder or +size or +sizeM or +sizeK (1-3876, default 3876): +32M

Wanneer u nu p typt, zou u de volgende partitie printout moeten zien:

Codevoorbeeld 1.1: Gecreerde boot partitie

Command (m for help): p

Disk /dev/hda: 30.0 GB, 30005821440 bytes
240 heads, 63 sectors/track, 3876 cylinders
Units = cylinders of 15120 * 512 = 7741440 bytes

Device Boot    Start       End    Blocks   Id  System
/dev/hda1          1        14    105808+  83  Linux

Deze partitie moet opstartbaar zijn. Type a om opstartbaar aan of uit te zetten. Kies hierbij 1. Als u nu weer p indrukt, zult u zien dat een * in de "Boot" kolom staat.

De swap partitie maken

Laten we nu de swap partitie maken. Om dit te doen, typt u n om een nieuwe partitie te maken, daarna p om fdisk te vertellen dat u een nieuwe primaire partitie wil. Daarna typt u 2 om de tweede primaire partitie aan te maken, /dev/hda2 in ons geval. Als er gevraagd wordt om de eerste cylinder, drukt u op enter. Voor de laatste cylinder, typt u +512M om een partitie van 512MB te maken. Als u dit gedaan heeft, typt u t om het partitie type in te stellen, 2 om de net gemaakte partitie te selecteren en typt u 82 om het "Linux swap" te kiezen. Na deze stappen, zou p een partitie tabel moeten laten zien die er zo uit ziet:

Codevoorbeeld 1.1: Partitie indeling na het maken van een swap partitie

Command (m for help): p

Disk /dev/hda: 30.0 GB, 30005821440 bytes
240 heads, 63 sectors/track, 3876 cylinders
Units = cylinders of 15120 * 512 = 7741440 bytes

Device Boot    Start       End    Blocks   Id  System
/dev/hda1 *        1        14    105808+  83  Linux
/dev/hda2         15        81    506520   82  Linux swap

De Root Partitie maken

Eindelijk kunnen we de root partitie aanmaken. Om dit te doen, typt u n om weer een nieuwe partitie aan te maken, p om fdisk te vertellen dat u een primaire partitie wilt. Type daarna 3 om een derde primaire partitie te maken, /dev/hda3 in ons geval. Als gevraagd wordt om de eerste cylinder, druk op enter. Daarna vraagt hij om de laatste cylinder, druk wederom op enter om een partitie te maken die de schijf verder vult. Na deze stappen, zou p in typen een partitie tabel moeten geven die er zo uit ziet:

Codevoorbeeld 1.1: Partitie indeling na het maken van de root partitie

Command (m for help): p

Disk /dev/hda: 30.0 GB, 30005821440 bytes
240 heads, 63 sectors/track, 3876 cylinders
Units = cylinders of 15120 * 512 = 7741440 bytes

Device Boot    Start       End    Blocks   Id  System
/dev/hda1 *        1        14    105808+  83  Linux
/dev/hda2         15        81    506520   82  Linux swap
/dev/hda3         82      3876  28690200   83  Linux

De partitie indeling opslaan

Om de partitie tabel op te slaan en fdisk af te sluiten, type w.

Codevoorbeeld 1.1: Opslaan en fdisk afsluiten

Command (m for help): w

Nu de partities gemaakt zijn, kunt u doorgaan met Bestandssystemen maken.

1.  Bestandssystemen maken

Introductie

Nu uw partities gemaakt zijn, is het tijd om een bestandssysteem op te zetten. Als het u niet interesseert wat voor bestandssystemen u kunt kiezen en tevreden bent met wat we als standaard kiezen in dit handboek, ga verder met Bestandssystemen toepassen op een partitie Als het u wel interesseert, lees dan verder...

Bestandssystemen?

ext2 is een goed getest en echt Linux bestandssysteem maar heeft geen metadata journaling, wat betekent dat ext2 bestandssysteem controles redelijk veel tijd kunnen kosten. Er is nu een redelijke keuze aan nieuwere journaled bestandssystemen die zeer snel gecontroleerd kunnen worden en dus de voorkeur hebben boven hun niet-journaled tegenhangers. Journaled bestandssystemen voorkomen lange vertragingen als u opstart en u een beschadigd bestandssysteem heeft.

ext3 is de journaled versie van het ext2 bestandssysteem. Het heeft metadata journaling voor een snel herstel naast andere journaling modes zoals full data en ordered data journaling. ext3 is een zeer goed en betrouwbaar bestandssysteem. Het heeft een extra hashed b-tree index optie die betere prestaties levert in bijna iedere situatie. In het kort, ext3 is een goed bestandssysteem.

ReiserFS is een B*-tree gebaseerd bestandssysteem dat zeer goede prestaties levert. Verder verslaat het ext2 en ext3 met factor 10x-15x in de omgang met kleine bestanden (kleiner dan 4k). ReiserFS schaalt extreem goed en heeft metadata journaling. Sinds kernel 2.4.18+, is ReiserFS stabiel en bruikbaar voor zowel algemeen gebruik als voor extremere gevallen zoals grote bestandsystemen, het gebruik van veel kleine bestanden, zeer grote bestanden en directories die tienduizenden bestanden bevatten.

XFS is een filesystem met metadata journaling met een robuuste feature-set en geoptimaliseerd is voor schaalbaarheid. We raden dit alleen aan op Linux systemen met high-end SCSI en/of fibre channel opslag en een UPS (Uninterruptible Power Supply) omdat XFS agressief in-transit data cached in het geheugen. Slecht ontworpen programma's (die geen goede voorbereidingen nemen bij het schrijven van bestanden naar de schijf en daar zijn er redelijk veel van) kunnen een groot deel aan data verliezen als het systeem onverwacht plat gaat.

JFS is IBM's high-performance journaling bestandssysteem. Het is recent productie-klaar geworden en er is nog niet genoeg ervaring mee om er iets (positief, noch negatief) over te zeggen.

Een bestandssysteem toepassen op een partitie

Om een bestandssysteem op een partitie of volume aan te maken, zijn er tools beschikbaar voor elk bestandssysteem:

Filesystem Commando om te maken
ext2 mke2fs
ext3 mke2fs -j -O dir_index
reiserfs mkreiserfs
xfs mkfs.xfs
jfs mkfs.jfs

Om bijvoorbeeld van de boot partitie (/dev/hda1 in ons geval) ext2 te maken en de root partitie (/dev/hda3 in ons geval) ext3 te maken, zou u dit gebruiken:

Codevoorbeeld 1.1: Een bestandssysteem toepassen op een partitie

# mke2fs /dev/hda1
# mke2fs -j -O dir_index /dev/hda3

Maak nu de bestandssystemen aan op uw vers gemaakte partities (of logische volumes).

De swap partitie activeren

mkswap is het commando dat gebruikt wordt om swap partities te initialiseren:

Codevoorbeeld 1.1: De swap partitie initializeren

# mkswap /dev/hda2

Om de swap partitie aan te zetten, gebruik swapon:

Codevoorbeeld 1.1: Activeer de swap partitie

# swapon /dev/hda2

Maak en activeer met behulp van de bovenstaande commandos de swap partitie.

1.  Mounten (Aankoppelen van bestandssystemen)

Nu onze partities gemaakt zijn en een bestandssysteem bevatten, is het tijd ze te mounten. Gebruik het mount commando. Vergeet niet om de benodigde map aan te maken waar u ze wilt mounten. Als een voorbeeld mounten we de root en boot partities:

Codevoorbeeld 1.1: De partities mounten

# mount /dev/hda3 /mnt/gentoo
# mkdir /mnt/gentoo/boot
# mount /dev/hda1 /mnt/gentoo/boot

Nota: Als u /tmp op een aparte partitie wilt plaatsen, zorg dat de rechten goed staan na het mounten: chmod 1777 /mnt/gentoo/tmp. Dit geld ook voor /var/tmp.

We zullen ook een proc bestandssysteem (een virtuele interface met de kernel) mounten op /proc. Maar eerst moeten we onze bestanden op de partities plaatsen.

Ga verder met (Installeren van de Gentoo Installatie bestanden).

Upgedate op 26 juli 2006

De originele versie van dit document was laatst geupdate om 23 januari 2014

Donate to support our development efforts.

Copyright 2001-2014 Gentoo Foundation, Inc. Questions, Comments? Contact us.