 |
 |
 |
 |
Cursus Linux |
|
go to : Index - Vorige - Volgende |
|
|
|
|
Les 3 |
Bestandssystemen |
|
|
|
|
|
|
|
|
|
Net zoals elk ander besturingssysteem moet voor Linux een bestandsstructuur aangebracht worden op de harde schijf.
Je hebt bij Linux minimum 2 partities nodig:
- één voor het bestandssysteem zelf (root).
- één voor het virtueel geheugen (swap).
Meestal worden er meerdere partities aangemaakt, om het systeem nog beter te beschermen tegen vastlopen of dataverlies |
 |
Schijven |
De bestandsstructuur van Unix/Linux is gemaakt dat randapparaten gekoppeld (gemount) worden aan de bestandsstructuur. Een randapparaat kan dan ook perfect aangesproken worden alsof het een bestand is. Op de achtergrond (eigenlijk in de kernel; ingebakken of als module) draait dan de driver voor dat randapparaat. |
|
Al deze speciale bestanden (randapparaten) bevinden zich in een speciale map /dev (devices). Harde schijven moeten aangesproken worden als /dev/hdx waarbij x een letter [a-z] is, die overeenkomt met de plaats waar de harde schijf wordt aangesloten. |
|
Voor normale IDE-systemen, met twee IDE controllers, waaraan 2 toestellen kunnen aangesloten worden, kun je maximaal 4 harde schijven aansluiten: |
 |
|
Ook als er een CDROM of een ander medium is geïnstalleerd, krijgt deze hetzelfde speciale bestand toegewezen in /dev. |
|
Beschik je over een SCSI-systeem, dan kan je deze harde schijven aankoppelen: |
 |
|
SCSI CDROM's krijgen de devices /dev/scdx toegewezen (waarbij x een getal is tussen 0 en 15). SCSI tapes worden aangeduid met /dev/stx. |
|
Opgelet: Bij een CD-schrijver wordt de SCSI-emulatie gebruikt om CD's te kunnen schrijven (deze wordt automatisch aangezet bij recente distributies). In dit geval moet je het toestel gebruiken alsof het een SCSI-apparaat is (vb. /dev/scd0) |
|
Partities |
Een partitie is eigenlijk een stuk van een harde schijf waar je het bestandssysteem op plaatst.
Op een X86 systeem bestaan er 3 soorten partities: |
- primaire partitie
- logische partitie (logic)
- uitgebreide partitie (extended)
|
|
Een aantal tools om partities te wijzigen: fdisk, cfdisk, sfdisk,... |
|
Er kunnen maar vier primaire partities zijn. In sommige gevallen is dit weinig. Men heeft daarop een eenvoudige oplossing voor gevonden. De vierde partitie wordt een uitgebreide partitie. Daarin kunnen meerdere logische partities geplaatst worden. In Linux kan je deze structuur voorstellen zoals in onderstaande tekening: |
 |
|
Bestandssystemen |
Er bestaan een hele hoop bestandssystemen die voor linux geschreven zijn. Vooral het laatste jaar zijn er enkele nieuwkomers die een geweldige "feature list" kunnen tonen.
Er zijn drie soorten bestandssystemen. |
 |
|
Klassieke bestandssystemen |
Allereerst zijn er de klassieke bestandssystemen, die gebaseerd zijn op inodes of een file allocation table. Dit zijn delen op de schijf die aangeven waar op de schrijf bestanden zijn weggeschreven. Het wegschrijven gebeurt zonder enige gegevensbescherming |
|
Voordelen: |
|
Nadelen: |
- fragmentatie (verdeling van grote bestanden over de gehele schijf)
- geen gegevensbescherming (bij beschadiging van informatie kan er geen recuperatie van de gegevens meer gebeuren).
|
|
Voorbeelden zijn FAT (Windows), minix en ext2 (Linux).
Modernere versies hebben wel een verbetering ten opzichte van fragmentatie en gegevensbescherming. |
Minix:
Het allereerste bestandssysteem dat beschikbaar was voor Linux omdat het in de beginjaren afhankelijk was van een Minix installatie. Het minixbestandssysteem komt uit Minix, geschreven door Andy Tanenbaum. De structuur is verouderd en het is afgeraden dit systeem nog te gebruiken. |
FAT:
Dit systeem wordt gebruikt in DOS en Windows9x/ME. Er zijn meerdere verbeteringen binnen dit systeem die compatibel zijn met elkaar (onder andere FAT-16 en FAT-32, deze laatste was een verbetering om grotere schijven te kunnen adresseren). FAT heeft geen bescherming tegen fragmentatie of gegevensverlies. Het heeft ook geen implementatie in verband met security. Linux heeft een zeer goede ondersteuning voor het lezen en schrijven op een FAT-partitie. |
Ext2:
Ext2 is al lange tijd hét bestandssysteem van Linux. Het heeft een beveiliging tegen datacorruptie door meerdere keren de superblock weg te schrijven (superblok = data die verwijst naar de inhoud van de schijf). Het probeert ook fragmentatie tegen te gaan (er is geen defragmentatietool beschikbaar). |
|
Softupdates |
Het softupdates systeem wordt vooral gebruikt in het aangepaste UFS systeem in *BSD. Softupdates is een simpele manier om gegevensbeveiliging te bekomen.
Voor er data weggeschreven wordt, gaat het systeem dit melden in een logbestand. Als de data effectief weggeschreven is wordt het logbestand opnieuw aangepast.
Dit komt in ruwe lijnen overeen met journalling (het verschil zit vooral in de technische details). Aanhangers van dit type bestandssysteem beweren dat het sneller werkt dan journalling. UFS wordt ondersteund in Linux, maar er is geen "native" implementatie in linux (er is wel een bestandssysteem in de maak dat TUX2 heet). |
|
Journalled file systems |
Journalled bestandssystemen zitten iets ingewikkelder in mekaar dan softupdates. De gegevensbeveiliging gaat ook veel verder, en in de meeste gevallen is de snelheid beter dan een klassiek/softupdates. Er zijn voor linux niet minder dan 4 journalled file systems.
Indien er een crash is van een journaled file system, moet er bij de reconstructie van de gegevens geen chkdsk/fcsk meer uitgevoerd worden. |
 |
NTFS:
Het bestandssysteem van Windows NT/2000/XP. Dit bestandssysteem wordt niet goed ondersteund door Linux. De driver ondersteunt zonder problemen het lezen van de partities, maar het is nog niet veilig om op NTFS te schrijven. |
Ext3:
De gelijkenissen met ext2 zijn groot. Ext3 is eigenlijk een ext2 partitie met een bijkomende journal. Ext3 partities kunnen zonder problemen gelezen worden door systemen die enkel ext2 ondersteunen. Andersom is het ook mogelijk om ext2 partities om te zetten naar ext3 door het bijvoegen van een journal log. |
Reiser:
Reiser was het eerste journalled file system voor Linux. Dit systeem heeft zich sinds een lange tijd bewezen heel stabiel te zijn. Er zijn in Reiser enkele nieuwigheden geïmplementeerd die voorheen ondenkbaar waren. Reiser is enorm performant op bewerkingen met een groot aantal kleine bestanden. Er is ook een "tail" optie om meerdere bestanden in één inode te plaatsen wat diskruimte spaart.
|
JFS:
Origineel was dit het bestandssysteem van AIX. IBM heeft besloten dit systeem te herschrijven voor Linux. JFS heeft zich al bewezen als één van de beste bestandssystemen in de Unix wereld. |
XFS:
Gelijkaardig met JFS heeft SGI (Silicon Graphics) zijn IRIX bestandssysteem herschreven om op Linux te gebruiken. XFS heeft een uitzonderlijke reeks van "features". Eén van de kenmerken is dat het geoptimaliseerd is om met grote bestanden te werken. |
|
Mounting |
Een bestandssysteem aankoppelen noemt men "mounten". Het vreemde bestandssysteem wordt dan opgenomen binnen de Unixboomstructuur. Meestal wordt dit gedaan in de /mnt map, maar als de gebruiker dit wenst kan het ook een andere (lege) map zijn.
Om een CD-ROM te mounten gebruiken we (in volledige notatie): mount -t iso9660 /dev/cdrom /mnt/cdrom
De optie "-t iso9660" specificeert dat we een bestandssysteem willen aankoppelen dat conform is met de cd-standaarden. De inhoud van de CD zal te vinden zijn in /mnt/cdrom. Zonder de optie "-t" zal mount het bestandssysteem zelf proberen te detecteren. |
 |
Twee andere voorbeelden: |
- Vaste schijf: mount /dev/hda1 /home
- Floppy: mount -t vfat /dev/fd0 /mnt/floppy
|
|
Indien men een wisselbare schijf aangekoppeld heeft moet men deze eerst "unmounten" voordat ze kan verwijderd worden. |
Nota:
Vele fabrikanten van distributies hebben enkele gebruiksvriendelijke aanpassingen gemaakt. Zo kan men meestal een CD-ROM of floppy laden door respectievelijk "mount /mnt/cdrom" en "mount /mnt/floppy".
In de grafische omgevingen van Linux zijn er ook gemakkelijkere manieren om te mounten, in de meeste gevallen gebeurt dit zelfs automatisch. |
|
fstab |
In dit bestand (/etc/fstab) staat een lijst welke bestandssystemen gekend zijn voor het systeem en welke automatisch worden aangekoppeld. |
 |
1 = devicename waar het bestandssysteem opstaat
2 = Mountpoint. Locatie waar het bestandssysteem op wordt gekoppeld
3 = Type
4 = Opties (zie "man mount")
5 = Dump. Geeft de mogelijkheid om een "dump" aan te maken van het bestandssysteem
6 = Volgorde van "fsck". Controle van de schijven in deze volgorde (0=niet controleren) |
|
De bestandssystemen waarbij als devicename "none" staan zijn speciale bestandssystemen. Ze worden door het systeem gegenereerd en worden niet opgeslagen op de schijf. |
|
Bootloader |
Na de installatie van Linux zal de computer bij het opstarten een scherm tonen met een keuzemenu waaruit je alle besturingssystemen die geïnstalleerd zijn op de PC kan laden.
Als je bijvoorbeeld al Windows hebt geïnstalleerd, dan kan je kiezen tussen Linux en Windows.
Vanuit dit menu kan je ook verschillende versies van Linux starten (zie hoofdstuk Kernel Compile). |
|
De twee meest gekende bootloaders (op het X86 platform) die bij Linuxdistributies geleverd worden zijn LILO en GRUB. Beide programma's kunnen zowel via configuratiebestanden als een GUI (vb. Linuxconf) worden geconfigureerd.
Deze programma's hebben tijdens het opstarten geen toegang tot de configuratiebestanden, dus is het belangrijk om na een wijziging een "update" uit te voeren van de configuratie
vb: Bij LILO vindt je het configuratiebestand in "/etc/lilo.conf". Na een wijziging moet je het commando "/sbin/lilo" uitvoeren om de veranderingen effectief te maken. |
|
|
>
|
Index - Vorige - Volgende |
|
|
|
|
|
|
|