Personal tools

Partiţii

From linux360

Revision as of 19:54, 2 January 2006 by Sorin25 (talk | contribs) (Partitii moved to Partiţii)
Jump to: navigation, search

Introducere

În sistemele UNIX accesul la dispozitive precum discuri flexibile, cd-uri, parititii ale unui hard-disc (în general memorii externe) se realizează în mod diferit de sistemele de tip Windows. Nu există volume separate de genul A:, C:, orice astfel de dispozitv este integrat în sistemul de fişiere local printr-o operaţie numită montare. Montarea asociază unui director, intreagul sistem de fişiere aflat pe dispozitivul montat.Mecanismul este deosebit de puternic, deoarece oferă posibilitatea de a avea o structură de directoare unitară, care grupeaza fişiere de pe mai multe partiţii sau discuri. Dacă se adaugă şi sistemul de fişiere NFS (Network File System), aceasta structură de directoare va putea conţine şi sisteme de fişiere de pe alta maşină.

Pentru identificarea dispozitivelor periferice, sistemele UNIX folosesc intrări speciale în directoare, numite "device files". Fisierele speciale care indică unitaţi de disc sau partiţii sunt folosite la montare. În general aceste fişiere se găsesc în directorul /dev/ şi au denumiri standardizate:

fdx
unitatea floppy
hdx
unitati HDD sau CDROM pe IDE
cdromx
unitati cdrom (in general legatura simbolica)
scdx
discuri SCSI sau unitati CDROM emulate SCSI sau pe USB
sdax
unitati de stocare pe USB ( HDD-uri , ZIP-uri , FDD-uri, Card Readere, Flash-uri)


Ce partiţii sunt pe disc ?

Primul pas, aflarea partiţiilor de pe sistem şi a tipului lor. Pentru asta se foloseşte 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 prezintă ieşirea comenzii fdisk pentru un sistem cu doua discuri. Acesta contine toate informaţiile necesare pentru montarea unei partiţii :

  • Dispozitivul : /dev/hda1 ( de exemplu)
  • Tipul sistemului de fişiere : Win95 FAT32, ..

Exemple:

  • partiţie NTFS
 /dev/hda1   *         1      1803  13630648+   7  HPFS/NTFS 
  • partiţie Win95
 /dev/hda1   *         1       638   5124703+   b  Win95 FAT32 
  • partiţie Linux pe HDD SCSI
 /dev/sda1   *         1       100    102384   83  Linux 

Montare

Folosind informaţiile găsite mai devreme, puteţi folosi comanda mount pentru a putea să accesaţi partiţia dorită.

 mount -t <tipul sistemului> <dispozitiv> <director destinaţie> 


Exemple :

Montarea unei partiţii NTFS
mount -t ntfs /dev/hda1 /mnt/XP 
Montarea unei partiţii FAT
mount -t vfat /dev/hda1 /win

Sunt utile unele opţiuni suplimentare oferite de comandă dintre care cea mai utila este umask, şi de la kernel-ul 2.5.43 dmask/fmask. Acestea perimit controlul atributelor pentru sistemele de fişiere care nu suporta atribute UNIX-like.

Montarea unei partitii FAT32 pentru a fi acessibilă tuturor utilizatorilor
mount -t vfat -o umask=0 /dev/hda1 /win 

Pentru opţiuni suplimentare consultaţi manualul comenzii mount.

Pentru simplificarea operaţiei de montare se pot seta in fisierul /etc/fstab optiunile default pentru respectiva partiţie.

[root@movie root]# cat /etc/fstab
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 fişier are forma

<dispozitiv> <punct de montare> <sistemul de fişiere> <opţiuni> <backup> <fsck>

Primele câmpuri sunt evidente. Câmpul backup este folosit de comanda dump pentru a determina care sistem de fişiere trebuie salvat. Campul fsck este folosit de comanda fsck pentru a determina ordinea în care va verifica sistemele de fişiere la reboot. Sistemul pe care se găseste / va avea valoarea 1 in acest câmp, iar celelalte vor avea valoare 2 în general (sau 0 în cazul în care nu se doreşte verificarea lor).

În cazul în care nu doriţi ca partiţia respectivă să fie montată la boot, specificaţi opţiunea noauto. Pentru opţiuni suplimentare consutltaţi manualul mount.

Alte sisteme de fişiere

Pe langă discuri prezente în sistem, kernel-ul linux poate monta şi sisteme de fişiere care sunt situate alte maşini. 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. Atenţie, pentru montarea unui astfel de share, trebuie ca pe maşina gazdă să fie pornit portmap, pe maşina care exportă trebuie să fie adugat în /etc/exports directorul respectiv şi trebuie să fie pornit daemonul nfs.

Montarea unui share windows

mount -t smbfs -o username=tridge,password=foobar //fjall/test /data/test 

Montarea imagini ISO

mount -t iso9660 RH9.iso /mnt/cdrom1 -o loop

Spaţiul pe disc

Uneltele pentru aflarea spaţiului pe disc sunt df, şi du

df se foloseste pentru a determina spaţiul 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]#

Opţiunea -l se foloseşte pentru a limita listarea la sistemele de fişiere locale. Opţiunea -h se foloseste pentru a genera lista în format "human readable".

du se foloseşte pentru determinarea spaţiului ocupat de fişiere

Spaţiul 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]#

Opţiunea -h are aceiaşi semnificaţie ca şi la df. Opţiunea --max-depth limitează adancimea maximă a subdirectoarelor pentru care se afişeaza totalul. De exemplu pentru

 du -h --max-depth=2 ./ 

se afisează dimensiunea directoarelor din directorul curent, precum şi al subdirectoarelor acestora