previous.png
Cursus Linux       Basis       Mount   
gnu.png

up.png Mounten down.png

In dit hoofdstuk leren we wat mounten is. We zien niet alleen de mount opdracht in detail, ook de verschillende systemen om te zorgen dat er automatisch iets gemount wordt worden bekeken. Waarom een apart hoofdstuk over mounten, mounten is in vele verschillende situaties nodig. Het onderwerp op zich is dermate uitgebreid dat er een apart hoofdstuk aan kan besteed worden.

Wat leren we in dit hoofdstuk ?

up.png 1 Wat is mounten down.png

Wanneer men gebruik wil maken van een opslag medium, zoals bv. een diskette, een cd , een dvd, dan moet onder linux dit medium eerst gemount worden. Of met andere woorden het dient te beschikking gesteld te worden via het bestand systeem. Het medium komt beschikbaar in het bestand systeem door het device (waarin het medium geplaatst wordt) te koppelen aan een bestaande directory.

up.png 2 De opdracht mount down.png

Met behulp van de opdracht mount wordt het mogelijk om cd-roms, diskettes, partities, hard disks, usb-disk, usb-stick, maar ook volumes op het netwerk te benaderen.
Alvorens men een device kan koppelen aan een directory dient deze directory eerst te bestaan. De linux standaard directories /media en /mnt zijn bedoeld om te gebruiken als mount-points. Een voorbeeld : de opdracht
      mount /dev/scd0 /media/cdrom
mount het cdrom device op de directory /media/cdrom. Men kan een eventuele cd nu benaderen door de directory /media/cdrom te selecteren. De directory waarnaar verwezen wordt in de mount opdracht wordt ook wel het mount-punt genoemd (mountpoint).
Men moet superuser zijn om de opdracht mount te kunnen gebruiken, tenzij er in het bestand /etc/fstab maatregelen genomen zijn om gewone gebruikers toe te laten een medium te mounten.

De volgende tabel toont de voornaamste opties die men met mount gebruikt:

up.png 2.1 De mount opties down.png

Optie Betekenis Voorbeeld
-t bestands-systeem Het bestand systeem dat is terug te vinden op het te mounten medium
Het betreffende bestand systeem moet bekend zijn, eventueel dient het geïnstalleerd te worden
  • -t ext2, een medium met een ext2 file systeem
  • -t iso9660, een cd of dvd file systeem
  • -t vfat, een volume met een fat16, of fat32 fs
  Gebruikt men niet de -t optie dan zal de mount opdracht het bestand systeem detecteren op het aangeduide device
-oFSopties Een lijst van opties, gescheiden van elkaar door een comma,
die te maken hebben met het file systeem dat gemount wordt
  • -oloop, mount een loop device
  • -ousername=account,uid=1000,gid=1000

up.png 2.2 Oefening 1 down.png

up.png 4 Manueel mounten down.png

Manueel mounten kan men toepassen op de verschillende bestaande devices van de PC. Het vlot beheersen van de mount opdracht en zijn mogelijke opties is dermate belangrijk dat in de volgende paragrafen een aantal verschillende mount situaties besproken worden.

up.png 4.1 Local device mounten down.png

Zoals de mount syntax laat zien heb je om te kunnen mounten als eerste een device nodig.
Lokale devices kan men terugvinden in de systeem directory /dev. De bestanden die je hier terug vindt beschrijven stuk voor stuk een device in de computer.
Enkele voorbeelden van disk devices:

Op dit device moet natuurlijk een bestand systeem staan, of met andere woorden het volume moet geformatteerd zijn in een door linux herkenbaar filesystem. Dit is meestal het geval met de partities. D.w.z. dat /dev/hda niet mountable zal zijn, maar /dev/hda1 wel.

040101.png
Lijst met mogelijke data volumes.

In bovenstaande afbeelding zie je om te beginnen alle drives, vertegenwoordigd door device bestanden met als voorvoegsel 'sd', je ziet sda tot en met sdg. 'sda' is de eeste SATA disk, de main disk van de PC waarop het linux systeem geinstalleerd staat. 'sdb' tot en met 'sdg' zijn alle mogelijke andere volumes, zijnde een aantal (lege) kaartlezers, en een tweetal USB disken. Merk op dat men deze selectie bekomt met de opdracht ls sd*.
De lege kaartlezers kan men herkennen aan het feit dat bv. sdc bestaat maar sdc1 niet (er is geen volume op sdc). De USB disken en ook de eerste SATA disk herkent men aan het feit dat er blijkbaar partities op staan, dewelke genummerd zijn. Dus sda1 is het eerste volume op disk sda, sdb1 en sdg1 zijn respectievelijk telkens de eeste partitie (en enige) op de usb disken.

Nu we een mountable device gevonden hebben, is er alleen nog een mount-point nodig om het volume in de directory structuur van het linux filesystem op te nemen. Er bestaan reeds twee directories die speciaal voor dit doel gemaakt zijn door de installatie procedure van de distributie, namelijk /mnt en /media. De eerste wordt eventueel gebruikt door de kernel en heeft alleen 'root' rechten, de tweede wordt gebruikt door het auto-mount systeem van de grafische desktop, ook hier heeft men als gebruiker niet direct de nodige toegangs rechten. Dus we maken een directory in onze eigen 'home' directory om als mount point te dienen, om deze wijze weten we zeker dat we toegangs-rechten hebben.
Met behulp van de opdrachten cd (selectie van de home directory) en vervolgens mkdir mnt, wordt de directory ~/mnt aangemaakt.
Nu kan men met de opdracht mount /dev/sdb1 ~/mnt een local device mounten op het eigen mount-point.
In principe zal de mount opdracht de bestand systemen op de aangegeven devices herkennen, indien niet moet men eventueel met de -t optie een bepaald bestand systeem meegeven.
De volgende screen-shot toont het mounten van een local device. Blijkbaar was het bestand systeem een fat32 systeem. Aangeduid als vfat in de lijst van de mount opdracht. De screen-shot demonstreert ook dat men root rechten moet hebben om een mount te kunnen doen.

040102.png
Manueel mounten van een externe disk.

4.2 Oefening 5 down.png

  1. bekijk de beschikbare devices op jouw pc (gebruik sd* en hd*) een PATA device is vermoedelijk de DVD reader.
  2. maak een mount-point in je eigen home directory zoals beschreven
  3. mount een device bv. een usb stick, cdrom schijf, enzo... op je mount point
  4. selecteer het mount-point als de huidige directory en bekijk de inhoud

up.png 4.3 Windows shares mounten down.png

Windows gebruikt momenteel 2 verschillende protocollen om windows resources te delen over het netwerk.
Deze protocollen zijn:

Protocol, fs File system OS
smb, smbfs Server Message Blocks,
Een protocol bedoeld om directories en printers over het netwerk te delen
(bestanden, printers, 'named pipes', seriële poorten)
Dos, WFW, W95, W98, NT, XP
  mount -t smbfs //windowshost/shareddir /windowsdir -ousername=lct,password=pwd,uid=jim,gid=users
cifs Common Internet File System,
Opvolger van SMBFS en beschikbaar op de modernere windows systemen
Vista, Windows 7
  mount -t cifs -ouser=lct,password=pwd,uid=jim,gid=users //windowshost/shareddir /windowsdir

up.png 4.4 Oefening 6 down.png

  1. installeer het SMBFS filesystem sudo apt-get install smbfs
  2. Start een windows (XP) machiene in de virtuele omgeving
  3. maak een gedeelde directory (shared)
  4. op de linux host, mount de directory met boven beschreven syntax, met smb
  5. op de linux host, mount de directory met boven beschreven syntax, met cifs
  6. op de linux host, mount de directory met boven beschreven syntax, zonder filesystem aanduiding,
    en kijk met welk protocol het linux OS deze share gemount heeft.
  7. Mount de windows shared directory maar nu zonder gebruikt te maken van de wachtwoord optie.

up.png 4.5 Linux shares mounten down.png

Het NFS protocol ofwel het unix/linux netwerk file system laat toe om remote unix/linux directories te mounten over het netwerk.
Om NFS mounts te kunnen gebruiken moeten de volgende condities ingevuld zijn:

remark.png NFS wordt in detail behandeld als we leren hoe een NFS server dient opgezet te worden, in het interconnectie gedeelte.

up.png 4.6 Oefening 7 down.png

  1. Installeer het NFS client/server systeem
           sudo apt-get install nfs-common
  2. op de docent pc is een nfs shared directory genaamd /data
  3. maak een directory die zal dienen als mountpoint
          mkdir ~/linux
  4. mount de gedeelde directory op je host
          mount docent:/data ~/linux

up.png 4.7 iso9660 mounten down.png

Behalve netwerk shares kan men ook de zogenaamde ISO9660 bestanden mounten.
Het iso9660 bestand systeem wordt gebruikt voor data cd en/of dvd.
Als men beschikt over het iso bestand (meestal met de extensie .iso) is het een koud kunstje om het te mounten.
Een cd en/of dvd zijn sequentiële devices. Ze dienen benaderd te worden met de speciale optie '-o loop'. (met andere woorden, kom je aan het einde begin dan opnieuw met het begin).
De syntax om een iso9660 bestand, respectievelijk een cd of dvd te mounten is:

up.png 4.8 Oefening 8 down.png

  1. Mount een iso9660 bestand
  2. bekijk de inhoud van het cdrom of dvdrom bestand
  3. Breng een cd in de cd speler
  4. Mount de cd
  5. Bekijk de inhoud van de cd
  6. unmount respectievelijk het bestand, de cd

up.png 4.9 Maak zelf een mountable bestand down.png

Met linux kan men ook een bestand systeem binnenin een bestand gebruiken. Soms is dit handig als men het bestand vervolgens als een eenheid (backup) wil behandelen.

up.png 4.10 Oefening 9 down.png

Met behulp van een aantal Linux basis opdrachten is het vrij eenvoudig om zelf een mountable bestand aan te maken.
Hier volgt een staps-gewijze procedure.

1
Aanmaken van een bestand
Gebruik de opdracht dd om een bestand aan te maken.
Met behulp van de dd if=/dev/zero of=/data/iso/myimage.fs bs=1M count=1024 opdracht maakt men een leeg bestand van 1024x1M bytes groot.
(Dit is juist groot genoeg om een usb-stick van 1Gbyte op te vullen.)
041001.png
2
Installeren van een bestand systeem
Met behulp van de opdracht mke2fs kan men een ext3 bestand systeem installeren in een device. Aangezien alles in Linux een bestand is, kan men inplaats van een device ook een bestand gebruiken om een bestand systeem te installeren.
Gebruik de opdracht mke2fs -F -j myimage.fs om in het zopas gemaakte bestand een 'ext3' bestand systeem te installeren..
041002.png
3
Mounten van het bestand
Met behulp van de mount opdracht mount myimage.fs ~/mnt -o loop kan men nu het bestand mounten en het gebruiken alsof het een disk is.
041003.png

Deze procedure kan gebruikt worden als basis om de inhoud van een USB stick voor te bereiden.
Is het bestand volledig, gebruik dan de opdracht dd if=myimage.fs of=/dev/sdi (waarbij sdi de USB stick is) om het bestand naar de USB stick weg te schrijven.

up.png 4.11 Maak zelf een iso bestand down.png

Men kan zelf iso bestanden aanmaken met behulp van de mkisofs utility.
Dit kan dienen als voorbereiding voor het branden van een cd of dvd.

up.png 4.12 Mounten met behulp van het UUID down.png

Tijdens het formateren wordt er aan een partitie een unique nummer toegekend, het zogenaamde UUID.
De mount opdracht kan alle beschikbare partities in een systeem scannen op dat nummer, of met andere woorden men kan het UUID in plaats van het device gebruiken om te mounten.
Met behulp van de opdracht blkid krijgt men een lijst van de UUID in je systeem.

041201.png
sudo blkid -o full -s UUID, geeft een lijst met UUID per partitie

041203.png
sudo blkid, geeft alle info over je partities.

041203.png
sudo lshw -class disk, geeft een lijst van je disk devices, en eventueel een UUID indien de disk geformateerd is.
Merk op deze disken gebruiken een gpt indeling.

De mount opdracht om een disk op UUID te mounten is:
      sudo mount UUID=uuid mountpoint

041204.png
Mounten met behulp van een UUID

up.png 5 Deactiveren van een mount down.png

Soms is het noodzakelijk om een mount te deactiveren. Bv wanneer men een cd uit een cdrom device wil verwijderen, of men wil een USB drive op een veilige wijze verwijderen.
Hiervoor gebruikt men de opdracht umount

remark.png
  • De deur van cdrom/dvdrom device zal gesloten blijven zolang het volume niet ge-umount is.
  • Bij een umount opdracht zal de write cache geledigd worden, wat hetzelfde is als veilig verwijderen.

Met umount kan men zowel het device als de directory waarop de mount zich bevindt unmounten. In beide gevallen bereikt men een deactivering van de mount. bv.

up.png 5.1 Ledigen van de write cache down.png

Tijdens het unmounten wordt de device write cache geledigd. Tijdens het schrijven naar een device (floppy, hard disk, usb key) gebruikt linux een write cache in geheugen en schrijft niet direct naar het device. Om de zoveel tijd wordt de inhoud van de write cache naar het device in questie geschreven. Wanneer men nu nog voor de cache leeg is het device verwijderd, bv een usb disk, dan riskeert men dat sommige bestanden op het device beschadigd zijn.

up.png 5.2 Het device moet vrij zijn down.png

Wanneer een device/directory wil umounten dan zal deze vrij moeten zijn alvorens de umount opdracht zijn werk zal doen. Is de directory niet vrij dan krijgt men de error Device busy te zien.
De directory is vrij wanneer geen enkel process op het systeem toegang tot deze directory heeft.

umount.jpg
Men kan de 'pwd' niet umounten

up.png Samenvatting down.png

In deze les hebben we geleerd wat mounten eigenlijk precies is. We hebben kennis gemaakt met de 'mount' opdracht, en hebben bovendien geleerd dat alle volumes, hetzij netwerk, hetzij lokale kunnen gemount worden. Ook hebben we gezien dat we zowel windows shares als unix shares kunnen mounten in ons Linux directory structuur. Ook hebben we gezien hoe men op een veilige wijze volumes kunnen verwijderen van onze PC, via de unmount opdracht. Als voorbereiding op het aanmaken van een bootable cd of usb-stick hebben we gezien hoe we zelf een moutable bestand kunnen maken. Dankzij de vele oefeningen in deze les zou de 'mount' opdracht geen geheimen meer mogen hebben.
Als klap op de vuurpijl hebben we gezien wat auto-mounting is, en met behulp van deze software een virtuele CD-server gemaakt. In de bedrijfs wereld wordt een dergelijke (hardware based cd-server) configuratie voor vele euros, typisch enkele duizenden, verkocht.

up.png Literatuur down.png



previous.png Gratis Hosting
Cursus Linux       Basis       Mount   
Last modified: Tue Jul 1 22:30:26 2014