next up previous contents
Nästa: II. Applikationer Upp: 7. Mer om UNIX Förra: 7.3 Filskyddskoder

  
7.4 Montering

  
Figur: Filer och kataloger på en diskett.
\begin{figure}
\small \psset{angleB=90, angleA=-90, levelsep=36pt, armB=14pt,
...
...
\Tr{\psshadowbox{\rule{0pt}{6pt}\texttt{RMAIL}}}
}
\end{center}\end{figure}

Antag att jag har en diskett med det innehåll som visas i figur [*]. På disketten finns filerna svamp.html och RMAIL. Dessutom finns där två kataloger, dokument och program, som innehåller ytterligare några filer. Jag vill nu läsa av filerna som finns på disketten. Problemet är att man i UNIX bara kan komma åt filer som finns någonstans i hierarkin av kataloger under rotkatalogen. Men vill man använda en diskett, en extra hårddisk, en CD-skiva eller dylikt, så kan man montera den på en katalog i det ordinarie filsystemet. Om jag tex monterar min diskett på katalogen /floppy, så ser det ut som om de filer och kataloger som finns på disketten ligger i den katalogen i det ordinarie filsystemet. Då kan jag tex ge kommandot more /floppy/svamp.html för att läsa filen svamp.html på disketten, eller kommandot cp /floppy/svamp.html /home/göran för att kopiera den till min hemkatalog.


 
Tabell 7.2: De vanligaste slagen av filsystem.
 
Typ Används främst till
ext2 Linuxfilsystem på hårddisken
iso9660 CD-ROM
minix Linuxfilsystem på diskett
nfs Filsystem som finns på en annan dator
msdos Microsoftfilsystem på hårddisk och diskett
vfat Microsoftfilsystem på hårddisk och diskett

Nu återstår bara att berätta hur ett filsystem monteras. Vid monteringen måste man veta vilken typ av filsystem som finns på disketten. De vanligaste typerna anges i tabell 7.2. Om man har glömt bort vilken typ det är, så kan man prova sig fram - Linux ger ett felmeddelande ifall man gissar fel! Dessutom måste man veta vad diskettenheten kallas. Vanligtvis heter den första diskettenheten /dev/fd0, den andra /dev/fd1 osv. Kommandot för att montera ett filsystem är
mount -t typ enhet katalog
där typ står för den typ av filsystem som ska monteras, enhet för den enhet filsystemet finns på och katalog för den katalog filsystemet ska monteras på. Katalogen katalog måste existera. Den behöver inte vara tom, men det som eventuellt finns i den kan inte kommas åt så länge något är monterat på den. När filsystemet inte längre behöver vara monterat ska det monteras ned igen med kommandot umount katalog, där katalog står för den katalog filsystemet är monterat på. Om min diskett använder typen minix, så blir kommandot för att montera den mount -t minix /dev/fd0 /floppy, och kommandot för att montera ned den är umount /floppy. Men nu kommer vi till det riktigt stora problemet: av säkerhetsskäl är det vanligtvis bara systemadministaratören som får montera kataloger! Systemadministaratören skulle kunna göra så här:root@fafner# mount -t minix /dev/fd0 /floppy
root@fafner# cd /floppy
root@fafner# ls
RMAIL       dokument/   program/    svamp.html
root@fafner# cd
root@fafner# umount /floppy
root@fafner#
Det första kommandot monterar minix-filsystemet, som finns på disketten i första diskettenheten, på katalogen /floppy. Därefter kan man komma åt filerna och katalogerna på disketten som om de tillhörde det ordinarie filsystemet. Det sista kommandot monterade ned disketten. Det går inte att montera ned ett filsystem så länge någon av filerna eller katalogerna där används av något program. Inte heller kan filsystemet monteras ned när någon befinner sig i den katalog det är monterat på. Kommandot cd ovan flyttar root från katalogen /floppy, något som är nödvändigt för att nedmonteringen ska lyckas.

Hur ska jag som vanlig användare komma åt innehållet på min diskett? Jo, kanske har systemadministaratören gjort en inställning som tillåter användarna att montera disketter och CD-skivor, om än under restriktiva former. För att kontrollera om det är så ska vi studera filen /etc/fstab.$ cat /etc/fstab
#<enhet>         <katalog>      <typ>   <flaggor>    <> <pass>
/dev/sda1         /              ext2    defaults     0   1
/dev/sda7         none           swap    sw           0   0
proc              /proc          proc    defaults     0   0
/dev/sda3         /usr           ext2    defaults     0   2
/dev/sda2         /dosc          vfat    defaults     0   0
/dev/fd0          /floppy        vfat    user,noauto  0   0
/dev/fd0          /floppy/minix  minix   user,noauto  0   0
/dev/fd0          /floppy/ext2   ext2    user,noauto  0   0
/dev/cdrom        /cdrom         iso9660 user,ro      0   0
/dev/sda5         /home          ext2    defaults     0   2
fasolt:/home/eva  /home/eva      nfs     defaults     0   0
$
Det är systemadministaratören som skapar filen /etc/fstab. Filen är främst till för att ange vilka filsystem som ska monteras varje gång datorn startas om. Men om ett filsystem ofta monteras på ett visst ställe, så kan det också beskrivas i /etc/fstab, och då kan kommandot för att montera det förenklas - man behöver bara ge kommandot mount katalog ifall det anges i /etc/fstab vad som brukar monteras på katalog. Varje rad (utom de som inleds med tecknet #) motsvarar ett filsystem. Alla utom de som har ordet noauto under rukriken ''flaggor'' monteras automatiskt vid uppstarten. Under rubriken ''enhet'' anges på vilken fysisk enhet filsystemet finns, under ''katalog'' var det ska monteras, under ''typ'' vilken typ av filsystem det gäller. I den näst sista kolumnen ska det stå en nolla (så vitt jag vet används detta inte längre till något). Den sista kolumnen anger ifall man vill att filsystemet ska genomsökas efter eventuella fel innan det monteras. En nolla betyder att det inte ska felsökas, annars ska det stå en etta för filsystemet som ska innehålla rotkatalogen och en tvåa för alla andra. Apropå enhet: hårddiskar brukar heta /dev/hda, /dev/hdb, /dev/sda eller dylikt. Om hårddisken är uppdelad på flera delar (så kallade partitioner), så har delarna nummer 1,2,3 osv. Men vad som intresserar oss nu är ifall det under rubriken ''flaggor'' står user, för i så fall får vanliga användare montera det filsystem som beskrivs på den raden. Av utskriften ovan att döma får jag montera disketter i första diskettenheten. Om filsystemet på disketten är av typen vfat så får det monteras på katalogen /floppy, om det är av typen ext2 så får det monteras på /floppy/ext2 och om typen är minix så får det monteras på /floppy/minix. Så här kan jag alltså göra:$ mount /floppy/minix
$ cd /floppy/minix
$ ls
RMAIL       dokument/   program/    svamp.html
$ cp svamp.html /home/göran
$ cd program
$ ls
Makefile      hejvärlden.c  nim.c
$ pwd
/floppy/minix/program
$ cp /home/göran/bellman .
$ ls
Makefile      bellman       hejvärlden.c  nim.c
$ umount /floppy/minix
umount: /floppy/minix: device is busy
$ cd /floppy
$ umount /floppy/minix
$ ls minix
$
Först monterade jag min diskett som /floppy/minix. Jag kopierade filen svamp.html från disketten till min hemkatalog, och filen bellman från min hemkatalog till katalogen program på disketten. Därefter försökte jag montera ned disketten, men det gick inte eftersom jag befann mig i den katalog disketten var monterad på (eller snarare i en underkatalog till den). När jag gick bort från katalogen /floppy/minix och försökte igen, så gick det bättre. Efter att disketten monterats ned är katalogen /floppy/minix tom. Observera att disketten absolut inte får tas ur diskettenheten så länge den är monterad! Om man brutalt tar ur disketten utan att först montera ned den, så kan det inträffa att vissa filer bara finns med till hälften eftersom Linux ofta sparar saker i minnet en stund innan de skrivs över till disketten.

Med hjälp av kommandot df kan man få reda på hur mycket utrymme som finns fillgängligt på de filsystem som är monterade.$ df -h
Filesystem            Size  Used  Avail  Capacity Mounted on
/dev/sda1             304M   34M   254M     12%   /
/dev/sda3             1.1G  433M   647M     40%   /usr
/dev/sda2             314M  6.6M   307M      2%   /dosc
/dev/sda5             987M  662M   274M     71%   /home
fasolt:/home/eva      191M  161M    19M     89%   /home/eva
/dev/hdc              592M  592M      0    100%   /cdrom
$
Till exempel är femte partitionen på hårddisken /dev/sda monterad på katalogen /home. Utrymmet på partitionen är 987 megabyte, varav 662 megabyte är använt just nu.


next up previous contents
Nästa: II. Applikationer Upp: 7. Mer om UNIX Förra: 7.3 Filskyddskoder
Goran Andersson
1999-03-08