În sistemele UNIX accesul la dispozitive precum discuri flexibile, cd-uri, partitii ale unui hard-disc (in general memorii externe) se realizeaza in mod diferit de sistemele de tip Windows. Nu exista volume separate de genul A:, C:, orice astfel de dispozitv este integrat in sistemul de fisiere local printr-o operatie numita montare. Montarea asociaza unui director, intregul sistem de fisiere aflat pe dispozitivul montat. Mecanismul este deosebit de puternic, deoarece ofera posibilitatea de a avea o structura de directoare unitara, care grupeaza fisiere de pe mai multe partitii sau discuri. Daca se adauga si sistemul de fisiere NFS (Network File System), aceasta structura de directoare va putea contine si sisteme de fisiere de pe alta masina. Mai explicit, structura in cauza este una arborescenta, iar la adaugarea unei noi partitii montata sub un director, de fapt adaugam un subarbore in cadrul arborelui deja existent, legâdu-l de un nod ales de noi (in acest caz directorul in care il montam).
Pentru identificarea dispozitivelor periferice, sistemele UNIX folosesc intrari speciale in directoare, numite "device files". Fisierele speciale care indica unitati de disc sau partitii sunt folosite la montare. În general aceste fisiere se gasesc in directorul /dev si au denumiri standardizate:
;fd'''X''': unitatea floppy
;hd'''X''': unitati HDD sau CDROM pe IDE
;cdrom'''X''': unitati cdrom (in general legatura simbolica)
;scd'''X''': discuri SCSI sau unitati CDROM emulate SCSI sau pe USB
;sda'''X''': unitati de stocare pe USB ( HDD-uri , ZIP-uri , FDD-uri, Card Readere, Flash-uri)
'''"X"'''-urile de mai sus sunt de fapt numere corespunzatoare device-ului respectiv.
Presupunem ca avem doua hard-disk-uri EIDE, care vor fi identificate de Linux ca fiind '''hda''' si '''hdb'''.
De exemplu, in Windows ne-am fi referit la o partitie ca fiind, C:, D:, E: si asa mai departe. În Linux, daca vrem sa ne referim la partitia a treia de pe hard-disk-ul IDE slave de pe controler-ul IDE primar, vom folosi '''hdb3'''. '''hd''' se refera la tipul unitatii, '''b''' se refera pozitia unitatii, iar '''3''' este numarul partitiei.
=== Ce partitii sunt pe disc ? ===
Primul pas, aflarea partitiilor de pe sistem si a tipului lor. Pentru asta se foloseste comanda fdisk
[root@movie root]# fdisk -l
Disk /dev/hdc: 40.0 GB, 40020664320 bytes
255 heads, 63 sectors/track, 4865 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Device Boot Start End Blocks Id System
/dev/hdc1 1 4865 39078081 c Win95 FAT32 (LBA)
Disk /dev/hda: 40.0 GB, 40027029504 bytes
255 heads, 63 sectors/track, 4866 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Device Boot Start End Blocks Id System
/dev/hda1 * 1 638 5124703+ b Win95 FAT32
/dev/hda2 639 1276 5124735 83 Linux
/dev/hda3 1277 1293 136552+ 82 Linux swap
/dev/hda4 1294 4866 28700122+ c Win95 FAT32 (LBA)
[root@movie root]#
Exemplul anterior prezinta iesirea comenzii fdisk pentru un sistem cu doua discuri. Acesta contine toate informatiile necesare pentru montarea unei partitii :
* Dispozitivul : /dev/hda1 ( de exemplu)
* Tipul sistemului de fisiere : Win95 FAT32, ..
Exemple:
* partitie NTFS
/dev/hda1 * 1 1803 13630648+ 7 HPFS/NTFS
* partitie Win95
/dev/hda1 * 1 638 5124703+ b Win95 FAT32
* partitie Linux pe HDD SCSI
/dev/sda1 * 1 100 102384 83 Linux
== Montare ==
Folosind informatiile gasite mai devreme, puteti folosi comanda '''mount''' pentru a putea sa accesati partitia dorita.
Exemple :
;Montarea unei partitii NTFS:
mount -t ntfs /dev/hda1 /mnt/XP
;Montarea unei partitii FAT:
mount -t vfat /dev/hda1 /win
Sunt utile unele optiuni suplimentare oferite de comanda dintre care cea mai utila este umask, si de la kernel-ul 2.5.43 dmask/fmask. Acestea permit controlul atributelor pentru sistemele de fisiere care nu suporta atribute UNIX-like.
;Montarea unei partitii FAT32 pentru a fi acessibila tuturor utilizatorilor:
mount -t vfat -o umask=0 /dev/hda1 /win
Pentru optiuni suplimentare consultati manualul comenzii '''mount'''.
Pentru simplificarea operatiei de montare se pot seta in fisierul /etc/fstab optiunile default pentru respectiva partitie.
LABEL=/ / ext3 defaults 1 1
none /dev/pts devpts gid=5,mode=620 0 0
none /proc proc defaults 0 0
none /dev/shm tmpfs defaults 0 0
/dev/hda3 swap swap defaults 0 0
/dev/cdrom /mnt/cdrom iso9660 noauto,owner,kudzu,ro 0 0
/dev/cdrom1 /mnt/cdrom1 iso9660 noauto,owner,kudzu,ro 0 0
/dev/fd0 /mnt/floppy auto noauto,owner,kudzu 0 0
/dev/hda1 /mnt/windows vfat users,defaults,umask=0 0 0
/dev/hda4 /mnt/data vfat users,defaults,umask=0 0 0
/dev/hdc1 /mnt/work vfat noauto,users,defaults,umask=0 0 0
/dev/hdc1 /mnt/filmele ntfs noauto,users,owner,defaults,umask=0 0 0
Fiecare linie din acest fisier are forma
Primele câmpuri sunt evidente. Câmpul backup este folosit de comanda dump pentru a determina care sistem de fisiere trebuie salvat. Campul fsck este folosit de comanda fsck pentru a determina ordinea in care va verifica sistemele de fisiere la reboot. Sistemul pe care se gaseste / va avea valoarea 1 in acest câmp, iar celelalte vor avea valoare 2 in general (sau 0 in cazul in care nu se doreste verificarea lor).
Partitiile specificate in fstab, devin stabile si pot fi folosite in formele prescurtate ale comenzii mount, de forma:
mount
mount
De asemenea, comanda mount are o optiune (-a) prin care se pot monta simultan toate partitiile configurate in fstab. Fisierul fstab este de asemenea folosit pentru a monta la pornirea sistemului toate partitiile configurate. În cazul in care nu doriti ca partitia respectiva sa fie montata la boot, specificati optiunea noauto. Pentru optiuni suplimentare consultati manualul comenzii '''mount'''.
== Alte sisteme de fisiere ==
Pe langa discuri prezente in sistem, kernel-ul linux poate monta si sisteme de fisiere care sunt situate alte masini. Un alt caz special este montarea imaginii binare a unui sistem de fisiere.
Exemple:
Montarea unui sistem nfs
mount -t nfs movie:/mnt/hdc1 /mnt/filme/
unde movie este host-ul de unde este exportat respectivul "share" NFS, /mnt/hdc1 este directorul exportat. Atentie, pentru montarea unui astfel de share, trebuie ca pe masina gazda sa fie pornit portmap, pe masina care exporta trebuie sa fie adugat in /etc/exports directorul respectiv si trebuie sa fie pornit daemonul nfs.
Montarea unui share windows
mount -t smbfs -o username=tridge,password=foobar //fjall/test /data/test
Montarea unei imagini ISO9660
mount -t iso9660 RH9.iso /mnt/cdrom1 -o loop
== Spatiul pe disc ==
Uneltele pentru aflarea spatiului pe disc sunt df, si du
df
se foloseste pentru a determina spatiul pe disc
Spatiul pe disc
[root@main root]# df -h -l
Filesystem Size Used Avail Use% Mounted on
/dev/hda1 3.3G 673M 2.7G 21% /
none 31M 0 31M 0% /dev/shm
[root@main root]#
Optiunea -l se foloseste pentru a limita listarea la sistemele de fisiere locale. Optiunea -h se foloseste pentru a genera lista in format "human readable".
du se foloseste pentru determinarea spatiului ocupat de fisiere
Spatiul ocupat de fiecare director din /usr
[root@main root]# du -h --max-depth=1 /usr/
38M /usr/bin
512 /usr/etc
201M /usr/lib
1.0K /usr/src
512 /usr/dict
23M /usr/sbin
7.5M /usr/X11R6
512 /usr/games
11K /usr/local
259M /usr/share
3.2M /usr/libexec
1001K /usr/kerberos
138K /usr/include
531M /usr
[root@main root]#
Spatiul total ocupat de /usr
[root@main root]# du -h --max-depth=0 /usr/
531M /usr
[root@main root]#
Optiunea -h are aceiasi semnificatie ca si la df. Optiunea --max-depth limiteaza adancimea maxima a subdirectoarelor pentru care se afiseaza totalul. De exemplu pentru
du -h --max-depth=2 ./
se afiseaza dimensiunea directoarelor din directorul curent, precum si al subdirectoarelor acestora