previous.png
Cursus Linux       Basis       Bestand systeem   
gnu.png

up.png Bestand systeem down.png

Werken met LINUX computer is werken met een bestand systeem. Op linux kunnen en worden verschillende bestand systemen gebruikt. In dit hoofdstuk maken we kennis met de voornaamste LINUX bestand systemen. We leren hoe men ze kan aanmaken door ze op partities te plaatsen, en we leren hoe men bestanden in een bestand systeem kan manipuleren door de opdrachten mount en ln.

Wat leren we in dit hoofdstuk ?

up.png 1 Wat is een bestand systeem down.png

In dit hoofdstuk leren we de mogelijkheden van LINUX bestand systemen kennen. Alvorens we dit kunnen doen zullen we eerst moeten weten wat een bestand systeem precies is.
Een bestand systeem in algemene zin bevat de methoden en data structuren die een operating systeem gebruikt om bestanden op een schijf of partitie te beheren.

up.png 1.1 Eerder fysieke methoden down.png

Een bestand systeem zal door middel van tabellen het operating systeem in staat stellen om de lees/schrijf koppen van een harde schijf zodanig te positioneren dat een bestand kan gelezen en/of geschreven worden. Het besturings systeem kan aldus op een intelligente manier bijhouden waar bepaalde informatie zich op de schijf bevindt.
Hierbij worden nog steeds 2 manieren ondersteund, namelijk de CHS methode en de LBA methode.

up.png 1.2 Logische methoden down.png

Naast het fysieke gebeuren bepaalt het bestand systeem ook allerlei methoden om het operating systeem in staat te stellen logische eigenschappen aan bestanden toe te kennen. Een aantal voorbeelden van bestand-eigenschappen zijn: de eigenaar van het bestand, wat mag de eigenaar allemaal met het bestand doen, enzo...

up.png 1.3 Meerdere bestand systemen down.png

Onder linux bestaan er een hele keur van bestand systemen. Niet alleen specifieke UNIX/LINUX bestand systemen maar ook bestand systemen van bv. dos en/of windows.
Enkele voorbeelden :

up.png 1.4 Zonder bestand systeem down.png

In speciale gevallen is het mogelijk om bestanden op schijf op te slaan zonder gebruik te maken van een bestand systeem, of kan men ook gebruik maken van media waarop geen bestand systeem geïmplementeerd wordt. Voorwaarde is dat de gegevens steeds sequentieel geschreven/gelezen worden. Een voorbeeld hiervan is het swap bestand systeem waarbij gegevens uit het geheugen naar de harde schijf geschreven worden (geswapt), dit swappen gebeurt in vaste blokken, waardoor er geen logische structuur op dit bestand systeem aanwezig is. Een ander voorbeeld is bv. een opstart diskette die gewoon sequentieel van begin tot einde kan ingelezen worden Tijdens het lezen komt het operating systeem de relevante bestanden vanzelf tegen.

up.png 1.5 Met bestand systeem down.png

Indien men een bestand op schijf schrijft zonder gebruik te maken van een bestand systeem worden alle bestaande data op die schijf overschreven. Immers het is juist het bestand systeem dat ervoor zorgt dat ieder bestand zijn eigen plekje op schijf krijgt toegewezen. Wanneer men dus zonder bestand systeem werkt kan men enkel sequentieel schrijven/lezen. Voorbeelden hiervan zijn cd, cd-r,dvd-rw, en tape devices.

up.png 2 De opbouw van het bestand systeem down.png

Om op een efficiente wijze met een LINUX bestand systeem te kunnen werken, moet men goed weten hoe een linux bestand systeem is opgebouwd. Allereerst leren we hoe inodes en directories gebruikt worden om bestanden te lokalizeren. Vervolgens leren we hoe we met de opdracht 'ln' verwijzingen naar bestanden ergens in het bestand-systeem kunnen maken. Bovendien leren we met de opdracht 'mount' hoe we een bestand systeem kunnen activeren.

up.png 2.1 Directories en Inodes down.png

Bestanden worden opgeslagen in verschillende directories. Tijdens de installatie zijn een aantal standaard directories reeds op het systeem aangemaakt. Zie het hoofdstuk 'Basis vaardigheden', voor een lijst met standaard directories.
Technisch gesproken is een directory eigenlijk ook een bestand, namelijk een bestand met als inhoud een lijst van bestanden en een verwijzing naar de administratie van een bestand. Deze bestand administratie is op zijn beurt weer opgeslagen in inodes. Dankzij een inode kan precies achterhaald worden waar het bestand zich op schijf bevindt. Men kan de inhoud en inodes in een directory opvragen met de opdracht ls -i Om de werking van een linux bestand systeem te kunnen begrijpen is het goed om enig inzicht te hebben in de wijze waarop gebruikt wordt gemaakt van directories en inodes.

Wanneer een bestand opgevraagd wordt dan heeft het besturings systeem de volledige naam van het bestand nodig. D.w.z. de naam van de directory waarin het bestand zich bevindt en de naam van het bestand zelf. Vervolgens moet het operating systeem ervoor zorgen dat het bestand in het werk geheugen van de computer wordt ingelezen. Hiervoor wordt gebruikt gemaakt van 2 zaken, namelijk de inode-tabel en directory's.
De interne representatie van een bestand wordt gedaan door de inode. Hier staat de beschrijving van de lokatie op schijf, waar de data van het bestand is terug te vinden: met andere woorden, in de inode van een bestand staat precies beschreven in welke gegevens blokken op de vaste schijf de data van het bestand is opgeslagen. Alle inodes van bestanden worden bijgehouden en opgeslagen in de inode tabel. Dit is een lijst van inodes die voorkomt aan het begin van een opslag medium. Elk medium heeft zijn eigen inode tabel. Bovenaan in deze lijst staat de inode van de root directory van het medium: dit is de inode waardoor het bestand systeem op het betreffende medium toegankelijk is nadat het medium gemount is.
Naast informatie over de gegevens blokken komt in de inode ook andere informatie over een bestand voor, zoals de eigenaar, de toegangs permissies, en de tijd waarop het bestand is aangemaakt of voor het laatst is gewijzigd.
Elk bestand heeft dus een inode. Nu kan een bestand meerdere namen hebben die verwijzen naar dezelfde inode. Deze namen worden links genoemd. Verderop zullen we zien dan een link op twee manieren kan worden aangemaakt namelijk als een hard of symbolic link.
De inode van een bestand is onder andere van belang wanneer een process een bestand wil gebruiken, of een gebruiker wil een bestand inlezen. Het systeem zoekt eerst op basis van de bestand naam en directory waarin zich het bestand bevindt naar de inode van het bestand in de inode tabel. Hiervoor wordt het inode nummer van het bestand gebruikt, dat het systeem informatie geeft over welke entry in de inode tabel het moet uitlezen. Daarna kijkt de kernel entry voor entry in de inode voor het betreffende bestand om te kijken of het process wel de juiste permissies heeft, en om het bestand terug te vinden op schijf.

up.png 2.1.1 De inode van een bestand tonen down.png

Met de opdracht debugfs kan men een inode bekijken op een partitie waar gebruik is gemaakt van het ext2 of ext3 bestand systeem.

Het volgende scenario toont de inode van het bestand /etc/passwd.
  1. opvragen de inode van /etc/passwd : ls -i /etc/passwd
  2. open de partitie waar het bestand staat : debugfs /dev/hda1
    men heeft root rechten nodig om dit te kunnen doen
  3. geef als debugfs opdracht: ncheck <inode nummer>
  4. geef als debugfs opdracht: stat <bestandnaam>
inode.png

remark.png De partitie waarop je debugfs uitvoert mag niet gemount zijn.

up.png 2.1.2 Hoe zoekt het OS een bestand down.png

De volgende stappen tonen in vogelvlucht hoe het operating systeem een bestand terugvindt :
bv de opdracht cat /etc/hosts.lpd

  1. Het besturings systeem gaat op basis van de bestand naam eerst kijken in de directory '/' (root). Daar wordt het inode nummer van de directory etc opgevraagd
  2. Op basis van dit nummer kan het operating systeem de inode van etc lezen
  3. door de informatie in de inode van etc kan het os de blokken lezen op disk van etc
  4. in etc gaat het os op zoek naar een entry voor het bestand hosts.lpd
  5. dit levert het inode-nummer van hosts.lpd, en vervolgens via de inode tabel de inode
  6. de blok nummers uit de inode worden door het os vertaald naar een fysieke aanduiding waar precies het bestand zich op disk bevindt
  7. op basis van deze info leest de hd controller het bestand, en het wordt naar het os verstuurd
  8. het os zal het bestand afbeelden op standaard output

up.png 2.2 Links down.png

Er bestaan 2 soorten links in het bestand systeem van linux:

hard link verwijst naar de inode van het bestand
symbolic link verwijst naar de naam van het bestand (ook wel soft link genoemd)

up.png 2.2.1 Hard Link down.png

Een hard link is een bestand naam in een directory die verwijst naar een inode waar ook al een andere bestand naam naar verwijst. In feite is het dus gewoon een inode waaraan twee namen aan verbonden zijn:
er is in dit geval ook geen onderscheid tussen origineel en copy. De inode-tabel houdt bij hoeveel hard links er naar een bestand zijn en pas wanneer de allerlaatste link is weggegooid, kunnen de bijbehorende gegevens blokken als vrij gemarkkeerd worden zodat er andere gegevens op die plaats kunnen worden weggeschreven. Hard links moeten allemaal op hetzelfde medium voorkomen. Dat is ook logisch, aangezien ze allemaal gebruik maken van dezelfde inode. Een inode-tabel wordt namelijk per medium bijgehouden:
dus op een linux systeem met 3 verschillende partities zullen dus ook drie verschillende inode tabellen voorkomen. Een hard link kan ook gezien worden als het koppelen van twee namen aan hetzelfde bestand. Eigenlijk is elke naam die aan een bestand gekoppeld is een hard link naar de inode van dat bestand. Een hard link is snel omdat het een verwijzing naar de inode bevat.

up.png 2.2.2 Symbolic Link down.png

Een symbolic link is niet een verwijzing naar een inode, maar naar een ander bestand. Het voordeel van symbolic links is dat ze kunnen verwijzen naar bestanden op dezelfde schijf, op een andere schijf, of zelfs op een andere computer. Het is echter niets meer dan een snelkoppeling. De inhoud van een symbolic link is alleen maar de verwijzing naar de naam van het bestand waar het echt om gaat. Als men het originele bestand dus weggooit, worden alle symbolic links onbruikbaar. Omdat ze een indirekte verwijzing zijn naar datablokken waarin het bestand is opgeslagen, werken ze langzamer dan hard links. Men kan trouwens vrij eenvoudig zien dat een symbolic link niet echt is, de grootte van een symbolic link is namelijk exact gelijk aan het aantal bytes dat nodig is om te verwijzen naar het originele bestand.

up.png 2.2.3 ls -l down.png

Om te zien welk soort link een bestand is gebruikt men de opdracht ls -l In de bestand lijst beginnen bestanden die links zijn met een l (in de permissies info). Indien het een symbolic link betreft ziet men de naam van het bestand met daarna de naam van het bestand waarnaar de link verwijst. Als het een hard link betreft kan men zien aan het getal tussen de bestand permissies en de eigenaar van het bestand, hoeveel hard links dit bestand heeft.

links.png

up.png 2.2.4 ln down.png

Om een link aan te maken gebruikt men de opdracht ln.
Een voorbeeld hiervan is de opdracht : ln -s /etc/passwd ~/wachtwoorden. Het originele bestand is /etc/passwd, de link wordt ingesteld op het bestand wachtwoorden dat wordt aangemaakt in de home directory van de gebruiker. Onthoud dat altijd eerst de naam van het originele bestand komt en dan de naam van de link, eigenlijk net zoals de cp (copy) opdracht. Natuurlijk kunnen met de opdracht 'ln' ook hard links gemaakt worden, de optie -s weglaten is voldoende.
Je hebt wellicht gemerkt dat het resultaat van de opdracht 'ln' overeenkomst vertoont met het resultaat van de opdracht 'cp', beiden zorgen er immers voor dat informatie via verschillende bestand namen te benaderen is. Het voordeel van een link van een bestand ten opzichte van een copy van een bestand, is dat het minder schijfruimte kost: de gegevens hoeven immers niet opnieuw op schijf weggeschreven te worden. Gelinkte bestanden verwijzen allemaal naar dezelfde fysieke lokatie op schijf. Dit betekent ook dat er bij een link geen verschil bestaat tussen de link en het origineel, terwijl dat bij een copy wel degelijk het geval is. Met andere woorden: als men een wijziging uitvoert in een copy van een bestand dan zal het origineel niet gewijzigd worden, als men echter een wijziging in een link van een bestand uitvoert dan zal het origineel ook gewijzigd worden. Links kunnen dus op één plaats onderhouden worden, kopieen niet. Het is trouwens ook met de cp opdracht mogelijk om links te maken, namelijk met de -s en -l opties.

up.png 2.2.5 Soft link Oefeningen down.png

Soft link oefeningen
1 Maak een aantal links zie het scherm van hierboven
opdracht mkdir ~/links
commentaar maak de directory links
opdracht cd ~/links
commentaar selecteer deze directory als de huidige
opdracht ls > bestand
commentaar maak een willekeurig tekst bestand
opdracht ln bestand hardlink
commentaar maak een hard link naar het bestand
opdracht ln -s bestand softlink
commentaar maak een soft link naar het bestand
opdracht ls -l
  links2.png
2 Maak een aantal links om het scherm van paragraaf 2.2.3 te zien
3 Maak een softlink
  • naar het bestand /etc/passwd
  • genaamd wachwoorden
  • in je home directory
  • up.png 2.2.6 Hard versus Symbolic link down.png

    Symbolic link Hard link
    werkt op een ander medium altijd op hetzelfde medium
    wordt ongeldig na verwijderen van origineel geen onderscheid origineel/link
    langzamer , want indirect snel want verwijst direct naar de gegevens blokken

    up.png 3 Werken met een bestand systeem down.png

    In hoofdstuk 2 'Basis vaardigheden' hebben we reeds kennis gemaakt met enige opdrachten waarmee eenvoudig beheer van het bestand systeem kan worden uitgevoerd. In aanvulling hierop worden in de volgende paragrafen nog enkele programma's en opdrachten besproken die gebruikt kunnen worden voor beheer van het bestand systeem.

    up.png 3.1 Bekijken van beschikbare ruimte down.png

    Bij het beheren van een linux server is een belangrijke taak het in de gaten houden van de hoeveelheid beschikbare ruimte op de bestand systemen. Hiervoor gebruikt met de opdrachten du, ncdu, en df.

    up.png 3.1.1 du, disk usage down.png

    De opdracht du (Disk Usage) wordt gebruikt om te achterhalen hoeveel ruimte een directory in het bestand systeem inneemt.
    Als men de opdracht 'du' gebruikt rolt er een lijst met bestanden voorbij waarbij voor ieder bestand wordt aangegeven hoeveel ruimte het in beslag neemt. Uiteindelijk wordt aan het einde van de lijst het totaal aantal schijfblokken gegeven dat deze directory in beslag neemt.
    De optie -h zorgt ervoor dat de aantallen menselijk leesbaar zijn, uitgedrukt in grootte inplaats van in blokken.

    du.png

    up.png 3.1.2 ncdu, disk usage down.png

    De opdracht ncdu (NCurses Disk Usage) wordt gebruikt om te achterhalen hoeveel ruimte een directory in het bestand systeem inneemt. Werkt zoals du, maar: bjikomend wordt ieder bestand/directory afgebeeld met een semi grafische representatie van de hoeveelheid disk ruimte die ze inneemt.

    Het programma is meschien niet standaard geïnstalleerd, met 'sudo apt-get install ncdu', kan men het installeren.

    ncdu is interactief, met '?' krijgt men een help scherm.

    03010201.png
    Een impressie van ncdu

    up.png 3.1.3 df, disk free down.png

    Met de opdracht df (Disk Free) gebruikt men om te kijken hoeveel vrije ruimte er nog vrij is.
    Ook deze opdracht is handig om regelmatig uit te voeren. Zo voorkomt men een nare verrassing als blijkt dat de voornaamste linux partitie ineens volgeschreven is. Een belangrijke optie is ongetwijfeld -h die de getoonde hoeveelheden in menselijk leesbare vorm afbeeld.

    df.png

    up.png 3.1.4 di, disk information down.png

    Met de opdracht di (Disk Information) gebruikt men om te kijken hoeveel vrije ruimte er nog vrij is.
    Ongeveer gelijkaardig aan 'df' met vele formaterings mogelijkheden.

    di.png

    up.png 3.1.5 lsblk, toon beschikbare block devices (disken en partities), down.png

    Het programmaatje lsblk toont een lijst met blok devices, en hun mountpoints indien ze gemount zijn.

    bs-03010501.png

    up.png 3.1.6 kdf KDE disk free down.png

    Het programma KDiskFree is het KDE equivalent van df. Het wordt gestart met de opdracht 'kdf'.
    Het toont een grafische presentatie van de vrije ruimte.

    kdf.png

    up.png 3.1.7 gtkdf GTK disk free down.png

    Een volgend programma waarmee men de gebruikte/vrije ruimte op disk kan zien is het grafische programma 'gtkdiskfree'. Het programma wordt opgestart met gtkdiskfree.

    gtkdiskfree

    up.png 3.1.8 xdiskusage down.png

    Het programma xdiskusage is het nog een grafisch equivalent voor het zien van vrije en gebruikte ruimte.
    Het programma wordt opgestart met de opdracht xdiskusage.
    Het eerste scherm toont een overzicht van alle partities waarvan een disk usage kan gemaakt worden. zie de afbeelding hiernaast.
    Wanneer men een partitie aanklikt, wordt voor de betreffende partitie een grafisch overzicht van de gebruikte ruimte geproduceerd. Hieronder/links ziet U een voorbeeld van een individuele partitie. Met behulp van de pijltjes toetsen, respectievelijk keuze via een floating menu, kan men een directory selecteren met enter wordt de desbetreffende directory in een nieuw scherm afgebeeld, met voor iedere subdirectory de gebruikte ruimte.
    De home page voor dit programma is http://xdiskusage.sourceforge.net/

    xdiskusage.png

    xdiskusage2.png

    xdiskusage3.png

    up.png 3.1.9 filelight down.png

    Een grafisch disk free/usage tooltje dat zeker niet in deze rij mag ontbreken is filelight.
    Het programma wordt opgestart met de opdracht 'filelight'.
    De werking is ongeveer hetzelfde als 'xdiskfree', alleen is de grafische presentatie via een pie-chart grafiek, inplaats van met vierkante blokken.

    filelight.png

    filelight2.png

    filelight3.png

    up.png 3.1.10 baobab down.png

    De utility baobab of Schijf gebruik is standaard geïnstalleerd in Ubuntu 12.04.
    Wanneer één van de volumes een bepaalde grens heeft bereikt wordt er een alarm afgegeven. Kiest men dan voor diagnose dan wordt het baobab programma opgestart.

    baobab1.png
    Schijf gebruik wordt opgestart vanuit de menu.

    baobab2.png
    baobab in werking.

    up.png 3.2 Compressie en archivering down.png

    Een belangrijke taak in de linux omgeving is de combinatie van archiveren en compressie van bestanden. Deze gecombineerde taak wordt om allerlei redenen dagelijks toegepast :

    In de volgende paragrafen worden enkele van de gebruikte utilities besproken.

    up.png 3.2.1 tar down.png

    Met de opdracht tar (Tape Archive Utility) worden onder UNIX/LINUX bestanden gearchiveerd. Oorspronkelijk is tar bedoeld om bestanden op een tape device op te slaan. Een tape device is typisch een sequentieel device. Dat wil zeggen : bestanden worden sequentieel geschreven , namelijk de ene na de andere. Wanneer men een bestand wil teruglezen is men genoodzaakt alle voorgaande bestanden uit te lezen.
    Een tar opdracht heeft tenminste 3 argumenten in de juiste volgorde nodig :

    1. één van de opties Acdrtux (c=creatie, x=extract)
    2. -f gevolgd door device of bestand naam
    3. de bestanden die gearchiveerd of uitgepakt worden
    De meest gebruikte tar opdrachten
    Aanmaken tar bestand
    (absoluut path)
    tar -cvf dir.tar ~/dir archiveer alle bestanden in de /home/user/dir directory in het tar bestand dir.tar
    Aanmaken tar bestand
    (relatief path)
    cd ~
    tar -cvf dir.tar dir
    archiveer alle bestanden in de /home/user/dir directory in het tar bestand dir.tar
    Uitpakken van bestanden
    (absoluut path)
    cd ~/dir
    tar -xvf dir.tar
    Uitpakken van het tar bestand dir.tar in de /home/user/dir directory
    Uitpakken van bestanden
    (relatief path)
    cd ~
    tar -xvf dir.tar
    Uitpakken van het tar bestand dir.tar in de /home/user/dir directory

    remark.png Wanneer we bij het aanmaken van een tar archief kiezen voor een directory met een absolute naam dan zal bij het uitpakken van dat archief voor ieder bestand een absoluut path gekozen worden. Gebruikt men bij het aanmaken eerder een relatief path dan zullen de bestanden in de huidige directory terug geplaatst worden.

    In de bovenstaande tabel wordt ook gebruikt gemaakt van de optie v, dewelke de bestanden laat zien tijdens het archiveren. De opdracht tar kent nog tal van andere handige opties , gelieve hiervoor de man pages van tar te raadplegen.

    remark.png Wanneer je tar gebruikt let dan op de volgende twee zaken : allereerst de notatie van de opties , in een tar opdracht worden alle opties aan elkaar geschreven, optioneel zonder '-'. Voorts dient men erop te letten dat sommige opties van elkaar afhankelijk zijn, de ene kan niet als de andere nog niet gegeven is. In dit verband is het handig om de opties op de command line te geven in de volgorde dat ze voorkomen in de man pages. De optie -f moet als laatste optie gegeven worden omdat deze optie een extra argument verlangd, namelijk de naam van het te behandelen tar bestand.

    up.png 3.2.2 gzip down.png

    Met behulp van de gzip opdracht wordt een bestand gecomprimeerd. De werkwijze is vrij eenvoudig :

    Na het comprimeren zal het programma gzip de extensie .gz aan het bestand toevoegen. Na de het de-comprimeren zal het gunzip programma de extensie .gz verwijderen.

    up.png 3.2.3 bzip2 down.png

    De opdracht bzip2 werkt precies hetzelfde als gzip, behalve dat de compressie ratio ongeveer 10 tot 20 procent beter is. De gebruikte extensie is .bz2 inplaats van gz. Ondanks het betere compressie resultaat blijft gzip voorlopig toch meer populair omdat bzip2 trager is. Volgende screen-shot toont dat dit puur theoretisch is.

    compressie.png

    up.png 3.2.4 ark down.png

    Een grafisch alternatief voor bovenstaande utilities. Met KDE Archiefbeheerder kan men dezelfde taken verrichten.

    ark01.png

    ark02.png

    up.png 3.3 Midnight Commander down.png

    Voor het beheer van bestanden in de tekstgeorienteerde linux wordt dikwijls gebruik gemaakt van het programma GNU Midnight Commander. Dit programma kan worden geactiveerd met de opdracht mc.
    Midnight Commander was een DOS programma dat in de DOS tijd bijzonder populair was. Het grote voordeel van dit programma is dat men geen grafische omgeving nodig heeft om toch min of meer grafisch te kunnen werken.
    Het hoofdscherm van het programma mc is onderverdeeld in twee vensters waarin het bestand systeem zichtbaar is. Onder in het scherm staan een 1O tal opties aangegeven die met de functie toetsen F1 tot en met F10 kunnen bediend worden. Direct na het starten zijn de volgende opties actief

    F1 Start de interactieve help functie
    F2 Laat een context gevoelig menu zien
    F3 Toont de inhoud van een bestand/td>
    F4 Past de inhoud van een bestand aan met de ingebouwde editor
    F5 Kopieer een bestand
    F6 Verplaats of hernoem een bestand
    F7 Maak een directory
    F8 Verwijder een bestand
    F9 Activeer de pull-down menu's
    F10 Sluit MidnightCommander af

    De activiteit van een functie-toets is afhankelijk van de menu optie die op dat moment geactiveerd is.
    Direct boven de regel waar de functietoetsen staan aangegeven, bevindt zich de opdracht regel. Hier kunnen alle normale linux opdrachten ingegeven worden. Helemaal bovenaan bevinden zich de menu's die worden geactiveerd met de functie toest F9 (of met de muis). In deze menu's zitten alle mogelijke opdrachten verwerkt die je zou kunnen nodig hebben om met bestanden te werken.

    mc.png

    up.png 3.4 GNome Commander down.png

    GNome commander is het grafische alternatief voor Midnight Commander. Onderstaande screen-shot geeft een impressie. Merk op dat om te verbinden met volumes ook andere protocollen dan 'file' worden ondersteund, bv. ftp, smb (windows shares), enzo...

    GCommander.png

    up.png 3.5 Konqueror down.png

    De meest gebruikelijke wijze waarmee men vandaag de dag bestand beheer doet, is met behulp van de grafische hulpmiddelen zoals meegeleverd met de KDE of de GNOME omgeving. Het werken met deze utility is zeer intuitief en genoegzaam bekend. T.ov. bestand beheer behoeft dit geen uitleg.

    konqueror.png

    up.png 3.6 mtools down.png

    Naast de diverse LINUX tools die beschikbaar zijn om te werken met linux bestand systemen, zijn er ook nog de 'mtools'. Dit zijn een setje opdrachten dat het mogelijk maakt om met DOS achtige opdrachten te werken op een LINUX bestand systeem.
    Bijvoorbeeld : om Onder linux een diskette te benaderen dient men eerst de diskette te mounten, met mount /dev/fd0 /media/floppy. Met behulp van de mtools kan men deze stap overslaan bv. de opdracht mcopy hosts /etc/hosts copieerd het bestand hosts, zonder dat eerst de diskette moet gemount worden. Hou er wel rekening mee dat mtools alleen geschikt zijn voor bestand media die ook onder DOS (of windows) gebruikt worden. Wanneer je alleen met LINUX bestand systemen werkt is het beter om mtools niet te gebruiken.

    De voornaamste 'mtools' tools
    mattrib Instellen van attributen
    mcopy Kopieren van bestanden
    mdel Verwijderen van attributen
    mdeltree Instellen van directory structuur
    mformat Formateren van een diskette
    mlabel Een label instellen voor een medium
    mmove Verplaatsen van bestanden

    remark.png Omdat de floppy drive verdrongen is door modernere apparatuur (kaartlezers, usb) worden mtools niet of slechts zeer weinig gebruikt.

    up.png 4 Verschillende bestand systemen down.png

    Tot nu toe hebben we het alleen over bestand systemen gehad als de wijze waarop de inhoud van een partitie geordend wordt door gebruik te maken van bestanden die aan bepaalde kenmerken moeten voldoen en een aantal standaard directories. Een device of een partitie zal op een bepaald moment moeten geformatteerd worden alvorens men er op deze geordende wijze gebruik van kan maken.
    In linux jargon noemt men dit een bestand systeem aanbrengen op een device of partitie (ook wel op een image). Algemeen gesproken gebruikt men de term high-level format of simpelweg formateren. Tijdens het formateren heeft men onder linux de keuze uit verschillende bestand systemen.

    ext2 In het verleden was het extended filesystem 2 (ext2) het standaard linux bestand systeem. Dit is een rechttoe- rechtaan bestand systeem dat gebaseerd is op de manier waarop op UNIX systemen al jarenlang bestanden worden opgeslagen. Het nadeel van dit bestand systeem is de snelheid die met name op servers nogal eens ontoereikend kan zijn. Om tegemoet te komen aan deze tekortkoming zijn zowel ext3 als reiserfs ontwikkeld.
    ext3 Extended Filesystem 3 is een journaling bestand systeem, amerikaans van oorsprong, dat men vooral zal tegenkomen op Redhat linux systemen. Ook Ubuntu gebruikt dit systeem.
    reiserfs Het duitse ReiserFS, kortweg Reiser genoemd. Dit bestand systeem is van duits/russische oorsprong en wordt door SuSe sterk gesponsord. Ook dit bestand systeem is een journaling bestand systeem.
    ext4 Het meest recenste file systeem beschikbaar, ondersteund encryptie.

    fstypes.png

    remark.png

    Journaling file system

    Een journaling bestand systeem beschikt over een extra index waardoor het snel gemount kan worden, en bij optreden van fouten snel hersteld kan worden. Dit laatste kan gebeuren omdat alle bewerkingen (transacties) worden bijgehouden in een log-bestand. Wanneer er een fout is opgetreden zal het file-systeem zichzelf door middel van het log bestand herstellen.

    niet journalling file systemen

    Om de integriteit van de data te garanderen moet dit file-systeem regelmatig gecontroleerd, en eventueel hersteld worden. Linux zal tijdens het mounten van een dergelijk file systeem gaan bijhouden hoeveel keer het gemount was zonder deze controle. Tijdens het boot process worden niet journalling file systemen automatisch nagekeken indien de teller overschreden is.

    up.png 4.1 reiserfs down.png

    In het alledaagse gebruik zal men niet zoveel verschil bemerken tussen ReiserFS en een traditioneel ext2 bestand systeem. Het verschil komt pas naar boven als men een keer opnieuw heeft moeten opstarten nadat er fouten geconstateerd waren. Een ext2 bestand systeem zal op dat moment al zijn inode tabellen moeten doorlopen om na te kijken of er iets defect is, dit process is tijdrovend, vooral op grotere volumes kan dit zeer lang gaan duren. Het ReiserFS bestand systeem daarentegen volstaat met het terugdraaien van een aantal transacties uit de transactie log (journal), dit is een process dat zeer vlug verloopt.
    Naast deze verbetering biedt ReiserFS nog een aantal handigheidjes die in ext2 niet voorkomen. Eén daarvan is dat de grootte van een partitie kan veranderd worden zonder dat er gegevens verloren gaan.
    Alvorens men met een ReiserFS bestand systeem aan de slag wil gaan om de grootte ervan te wijzigen moet men rekening houden met de grootte van de partitie waarop het bestand systeem geinstalleerd is. Als men het bestand systeem wil vergroten dient er uiteraard plaats voorhanden te zijn op de partitie. Met de opdracht resize_reiserfs kan men een ReiserFS bestand systeem vergroten of verkleinen.

    up.png 4.2 ext3 down.png

    Waar in de SuSe wereld voornamelijk gewerkt wordt met ReiserFS, heeft RedHat gekozen voor ext3. Dit bestand systeem is volledig compatible met ext2. Zoals eerder gezegd, ook ext3 is een journaling bestand systeem dat gebruikmaakt van transactie logs om reparaties uit te voeren indien nodig. Een belangrijk verschil met ReiserFS is dat ext3 volledig compatible is met ext2. Het is zelfs mogelijk om een bestaand ext2 bestand systeem een journal aan te maken met de gespecialiseerde opdracht tune2fs. Dit betekent dat een ext2 bestand systeem zich zal gaan gedragen zoals een ext3 bestand systeem.

    up.png 5 Aanmaken van een bestand systeem down.png

    Wanneer men een partitie heeft aangemaakt heeft men nog geen werkend bestand systeem. De partitie moet eerst geformatteerd in een bepaald bestand systeem alvorens men het systeem kan gebruiken. De opdracht mkfs wordt gebruikt om een bestand systeem op een device of een partitie te plaatsen.
    Meestal zal mkfs gebruikt worden in de volgende omstandigheden:

    up.png 6 fsck: integriteit van een bestand systeem down.png

    Het is handig om periodiek de status van het bestand systeem te controleren. De opdracht die hiervoor wordt gebruikt, is fsck, wat staat voor file system check. Deze opdracht controleert het systeem op beschadigde bestanden, maar ook of de inode tabel nog wel overeenkomt met de inhoud van de disk. Als men helemaal niets doet, wordt op ext2- en ext3-bestand systemen automatisch periodiek een controle van het bestand systeem uitgevoerd. Het is echter mogelijk de opdracht met de hand te starten. Dit kan op verschillende manieren.

    Alvorens een bestand systeem kan gecontroleerd worden moet het eerst ge-unmount worden. (zie hoofdstuk over mounten) Wanneer men dat niet doet krijgt men een melding waarin men op de hoogte wordt gebracht van mogelijke risico's.

    fsck.png

    Men krijgt deze melding omdat fsck op disk niveau zijn werkzaamheden uitvoert. Dat wil zeggen dat de wijzigingen die fsck op disk niveau uitvoert niet worden doorgegeven aan het operating systeem. Het besturings systeem denkt nu dat het bestand systeem er anders uitziet dan het in werkelijkheid is en dat kan zeer nadelige gevolgen hebben. Om die reden is het dus onmogelijk om het device waarop de root partitie staat te controleren. Daarom zorgt het systeem er zelf al voor dat bij het opstarten van het systeem periodiek alle bestand systemen zoals aangegeven in /etc/fstab gecontroleerd worden. Het systeem doet dat door vanuit een van de opstart bestanden de opdracht fsck te activeren. Als men een bestand systeem gebruikt dat geen gebruik maakt van journaling, zal men merken dat dat soms een tijdje kan duren. Als echter een journal gebruikt wordt verloopt de controle van een bestand systeem binnen enkele seconden.
    Wanneer fsck iets aan het bestand systeem wijzigd is het van belang dat het systeem zo snel mogelijk opnieuw opstart. Gebruik hiervoor de opdracht shutdown -r now. Soms zal men merken dat de automatische uitvoering van fsck tijdens het opstarten niet succesvol kan worden afgerond. De computer wordt in dat geval automatisch opgestart in single-user modus. Dit is een systeemmodus waarin alleen een minimum aan services gestart wordt, zodat men handmatig problemen kan verhelpen. Men ziet in dat geval ook een foutmelding waaruit blijkt wat precies niet goed is gegaan. Als dit het geval is moet men het wachtwoord van de gebruiker root invoeren waarop men dan in onderhouds modus is ingelogd. Hier kan men dan vervolgens handmatig de opdracht fsck uitvoeren. Vaak is het al genoeg als men de naam van het te controleren device aangeeft. In sommige gevallen zal men echter moeten gebruik maken van meer geavanceerde opties.

    up.png 7 swap bestand of partitie down.png

    Swapping is het verplaatsen van data uit het fysieke werkgeheugen (RAM) naar een lokatie ergens op de hard disk. Deze techniek wordt gebruikt om een tekort aan fysiek werkgeheugen op te lossen. Swapping is met name handig wanneer er in de swap-space data wordt opgeslagen die niet regelmatig door het systeem wordt gebruikt, en dat is wat linux probeert te doen. Indien het systeem continu bezig is met wegschrijven en inlezen van data uit de swap space, wordt swapping eerder een last dan een genot. Er blijft dan immers geen processor tijd meer over voor de normale taken. Daarom blijft het altijd noodzakelijk om voldoende fysiek geheugen ter beschikking te hebben.
    Als men wil weten of we wel swap space nodig hebben, kan men met de opdracht free een overzicht bekomen van het gebruikt van fysiek en virtueel geheugen. Hieronder vindt je het resultaat van free.

    free.png

    Linux ondersteunt 2 soorten ruimte voor swapping: swap-files en swap-partities.
    Tijdens het indelen van de hard disk in partities kent men meestal een swap partitie toe. Het verdient de voorkeur om swapping te laten plaatsvinden op een dedicated swap-partitie, dan is men zeker dat swapping niet interfereert met bestand beheer. Bovendien is een swap-partitie sneller dan een swap-file omdat de data in de swap-partitie direct benaderd kan worden inplaats van via tabellen.

    up.png 7.1 Aanmaken van een swap partitie down.png

    Om een swap-partitie te verkrijgen, moet eerst en vooral een partitie aangemaakt worden met als system ID 82, linux swap. Vervolgens moet de partitie klaargemaakt worden als swap area met de opdracht mkswap.
    Nadat de swap-partitie is aangemaakt moet ze geactiveerd worden met de opdracht swapon

    up.png 7.2 Aanmaken van een swap bestand down.png

    Als men een swap-bestand wil maken, dient men eerst een bestand aan te maken. Een handige opdracht om dit te doen is de opdracht dd gebruiken waarmee men een bestand kan aanmaken.
    Een voorbeeld van een dergelijke opdracht is:
    dd if=/dev/zero of=/swap bs=1024 count=10240
    In de bovenstaande opdracht kopieert dd een bestand. De parameters moeten als volgt geïnterpreteerd worden:

    Vervolgens gebruikt men, net als voor een partitie, de opdracht mkswap om van het bestand een swap image te maken:
    mkswap /swap 10240

    Vervolgens dient men het swap bestand te activeren met de opdracht
    swapon /swap

    Wil men het swap bestand terug uitschakelen dan dient men de opdracht swapoff te gebruiken.

    up.png 7.3 Programma's om te zien of swap space gebruikt wordt down.png

    Er zijn verschillende programma's waarmee men kan zien hoeveel swap space er is en hoeveel ervan gebruikt wordt:

    up.png 8 Backup van linux bestanden down.png

    Als men een linux systeem gebruikt als server, moet er natuurlijk ook op gezette tijden een backup van alle bestanden worden gemaakt. Er zijn twee manieren om dit te doen, een eenvoudige en een moeilijke manier. De moeilijke manier bestaat er uit de opdracht 'tar' met de scheduler 'cron' (zie later) op gezette tijden te activeren om een backup weg te schrijven naar het tape device. Op basis van wat we in dit hoofdstuk over tar gezien hebben is de student in staat dit te doen.
    Er is echter ook een eenvoudige manier waarmee alle complexe opties in een handomdraai ingesteld kunnen worden.
    Op elke linux distributie kan het browser based beheerprogramma webmin geinstalleerd worden. Met dit programma kan vanuit een browser via http-poort 10000 vrijwel alles op de linux pc ingesteld worden. Er is onder andere een zeer fraai grafisch programma waarmee backups gepland kunnen worden. De meest geavanceerde opties kunnen hiermee zonder problemen ingesteld worden. Later zien we hoe webmin geinstalleerd kan worden.

    up.png Samenvatting down.png

    In dit hoofdstuk hebben we geleerd hoe een bestand systeem is opgebouwd. In het begin van dit hoofdstuk hebben we gelezen hoe bestand systemen zijn opgebouwd uit directory's en inodes om de gegevens blokken op de vaste schijf van de computer te kunnen terugvinden. We hebben ook geleerd hoe we verwijzingen in bestand systemen kunnen aanbrengen door gebruik te maken van links die zowel symbolisch als hard ingesteld kunnen worden.

    Vervolgens hebben we geleerd hoe we zelf bestand systemen kunnen aanmaken. Hiervoor hebben we geleerd gebruik te maken van de opdracht mkfs. Ook hebben we een aantal opdrachten gezien waarmee het bestand systeem kan beheerd worden. Vooral gzip en tar zijn erg handig: hiermee worden namelijk archieven aangemaakt en kan men bestanden uit archieven weer uitpakken.

    Het aanmaken van bestand systemen, inclusief het aanmaken en activeren van swap space werd eveneens behandeld.

    up.png Literatuur down.png



    previous.png Gratis Hosting
    Cursus Linux       Basis       Bestand systeem   
    Last modified: Tue Jul 1 22:13:47 2014