Sve što trebate znati o radu sa diskovima
Kako je rad sa diskovima i ostalim blok uređajima (USB stickovima, CD/DVD medijima) specifičan u odnosu na neke druge operacijske sustave, smatramo bitnim da se ova tema malo detaljnije razjasni na ovim stranicama.
Sadržaj
Općenito
Za razliku od npr. Windowsa koji sve uređaje za pohranu podataka imenuje velikim slovom i dvotočkom (npr. C: D: E:....), a svaki od njih ima svoje zasebno stablo direktorija, Linux pristupa radu s diskovima na drugačiji način.
Ako ste već pokušali ponešto raditi pod Linuxom zasigurno ste uvidjeli da ne postoje oznake diskova po principu "C: D: E:", nego postoji jedno jedino stablo direktorija koje vas vjerojatno pomalo i muči, jer ne znate što pripada određenom diskovnom uređaju.
Da bismo mogli nastaviti dalje, moramo maknuti "veo tajni" upravo s ovog područja. Tek kada bude jasno kako Linux "razumije" diskovne i ostale blok uređaje, moći ćemo s njima i nešto konkretno raditi. No idemo redom.
Diskovi
Kada govorimo o diskovima, prvenstveno mislimo na tvrde diskove, CD/DVD medije, USB stickove (pa čak i zastarjele diskete koje danas rijetko tko koristi). Osnovna namjena ovih uređaja jest fizičko spremanje podataka (informacija u obliku programa, vaših tekstova, slika i ostalog) na površinu nekog medija:
- Tvrdi diskovi i diskete podatke spremaju na površinu magnetnog medija
- CD/DVD diskovi podatke spremaju na optički čitljivu površinu (pomoću lasera prepoznavaju se udubine u mediju, te na taj način raspoznaje stanje 0 i 1)
- USB stickovi spremaju podatke u tzv. Flash memorijske čipove.
Svima njima je zajedničko što se podaci na njih spremaju u obliku datoteka i direktorija, preko nekog datotečnog sustava i što se ti podaci ne brišu nakon isključivanja uređaja iz izvora napajanja (da ne kažemo "iz struje").
U današnje vrijeme, za svakodnevnu pohranu podataka u računalu koriste se isključivo tvrdi diskovi kapaciteta od 100 GB, pa sve do i preko 500 GB. Za razmjenu podataka između računala koriste se CD i DVD diskovi, te USB stickovi koji zbog toga spadaju u grupu izmjenjivih diskova, jer ih tijekom rada možemo izmjenjivati u CD/DVD čitaču, odnosno stavljati/vaditi iz USB sabirnice računala, već ovisno o tome koji nam podaci na njima trebaju.
Radi povećanja kapaciteta i pouzdanosti čuvanja podataka diskove možemo organizirati i u tzv. RAID polja gdje cijelu seriju diskova proglašavamo jednim logičkim uređajem. No ovo već spada u naprednu domenu, pa se ovdje nećemo time baviti.
No, kako su to zapravo samo "sirovi" uređaji, prije spremanja podataka na njih, potrebno je poznavati još neke njihova svojstva.
Particije
Particije su vezane uz tvrde diskove, a zapravo si ih možemo predočiti kao područja na nekom tvrdom disku (fizičkom disku), koja se opet ponašaju kao disk (logički disk). Na taj način možemo postići privid da na jednom disku imamo više diskova, ali manjeg kapaciteta. Zašto je to uopće potrebno?
- Ako želimo instalirati više od jednog operacijskog sustava. Nemoguće je instalirati više od jednog operacijskog sustava po jednog particiji.
- Ako operacijski sustav treba više od jedne particije za svoj uredan rad
- Ako želimo dodatno podijeliti disk za različite namjene
- Ako želimo na istom fizičkom disku koristiti više od jednog datotečnog sustava
U primjeru Linuxa imamo barem dvije particije: jednu za operacijski sustav i drugu za tzv. swap, odnosno privremenu radnu memoriju kada ponestane one u računalu (RAM-a).
Svaki tvrdi disk mora imati barem jednu particiju, što konkretno znači da se baš svaki tvrdi disk mora particionirati, jer je to uvjet da se na njega postavi neki datotečni sustav.
Kod particija moramo razlikovati Primarne i Extended particije. Razlika je u ovome:
- Primarna particija je nosioc datotečnog sustava. Zbog ograničenja u BIOS-u računala na jedan fizički tvrdi disk moguće je postaviti najviše 4 primarne particije, što bi značilo prilično ograničenje.
- Extended particija je nosioc (okvir) drugih primarnih particija. Na taj način moguće je na jedan tvrdi disk postaviti 3 primarne particije, jednu extended particiju koja u sebi opet ima npr. dvije primarne particije. Tako na kraju imamo 5 primarnih particija.
Datotečni sustavi
Da bismo spremali svoje podatke u organiziranom obliku datoteka i direktorija na particiju je potrebno postaviti datotečni sustav. Za razliku od nekih drugih operacijskih sustava Linux ima popriličan broj raznih datotečnih sustava koje možemo koristiti prema vlastitim potrebama. Neki bitniji datotečni sustavi navedeni su ovdje:
- Ext3 (uskoro Ext4): Linuxov uobičajeni datotečni sustav
- RaiserFS: Linuxov manje zastupljeni datotečni sustav
- NTFS: Datotečni sustav kojeg koriste MS Windows. Linux može raditi sa ovim datotečnim sustavom.
- FAT: njega pronalazimo na gotovo svim USB stickovima
- ISO 9660 i UDF: su datotečni sustavi CD/DVD diskova
Osim spremanja podataka, datotečni sustavi nude još neke opcije pri radu s podacima kao što su linkovi i journaling.
Struktura Linuxovog stabla direktorija
Dolazimo do možda najbitnijeg dijela cijele ove priče. Naime, na početku smo rekli da za razliku od MS Windows operacijskog sustava koji diskove označava po slovu (C: D: E:...), te svaki takav disk ima svoje stablo direktorija, Linux sve drži unutar jednog jedinog stabla direktorija koje počinje od korijenskog (root) direktorija čija je oznaka "/" (kosa crta).
Kako Linux baš sve podatke predstavlja kao datoteke (obične i posebne) unutar tog stabla direktorija, tako se onda predstavljaju i diskovi, odnosno datotečni sustavi. Ovdje je dobro napomenuti da predstavljanje tvrdog diska kao uređaja i datotečnog sustava nisu jedna te ista stvar i Linux ih unutar svog stabla prikazuje kao odvojene stvari.
Predstavljanje uređaja u Linux stablu
Na Linuxu postoji poseban direktorij unutar stabla pod imenom /dev. Unutar njega Linux kreira posebne datoteke za baš svaki uređaj koji je spojen na računalo, pa tako i za diskove. Naravno, diskovi ovdje imaju posebnu nomenklaturu koju je potrebno dobro razjasniti. Svi fizički tvrdi diskovi nazivaju se ovako:
/dev/sdx
pri čemu je x slovo oznake tvrdog diska u računalu, onako kako su spojeni na kontroler i kako ih BIOS vidi, počevši od slova "a"
Primjeri:
/dev/sda /dev/sdb /dev/sdc ...
Također, u ovom direktoriju označeni su i logički diskovi, odnosno particije i to ovako:
/dev/sdxy
gdje je x slovo oznake tvrdog diska u računalu, a y redni broj particije na x-ovom tvrdom disku počevši od broja jedan, uz napomenu da nije nužno da ti brojevi idu po redu.
Primjeri:
/dev/sda1 /dev/sda2 /dev/sda5
Predstavljanje datotečnog sustava u Linux stablu
Da bi se moglo pristupati podacima na nekom datotečnom sustavu koji se nalazi na disku (ili ljepše rečeno, da bi se pristupilo podacima na disku) potrebno je isti montirati na Linuxovo stablo direktorija preko tzv. točke montiranja. Na taj način se bilo koja disk particija (koja na sebi ima datotečni sustav) može namontirati (prikvačiti) na neki direktorij unutar Linuxovog stabla direktorija, te će se podaci iz te particije reprezentirati kao sadržaj direktorija koji predstavlja točku montiranja particije.
Za bolje objašnjenje slijedi primjer:
- Imamo disk particiju koja se u direktoriju uređaja zove /dev/sdb1,te je želimo namontirati u Linuxovo stablo kao direktorij /media/Disk
- Da bismo to napravili moramo imati već kreirani direktorij koji se zove /media/Disk
- Nakon izvršavanja naredbe za montiranje diska na Linux stablo (mount naredba, bit će kasnije detaljno objašnjena), pristup toj particiji diska istovjetan je pristupu direktoriju /media/Disk, odnosno sve što radimo u tom direktoriju, zapravo radimo na montiranoj particiji tvrdog diska.
Dakle, umjesto da se diskovne particije nazivaju C:, D: itd. na Linuxu im pristupamo preko direktorija u kojeg su namontirane. Naravno, ovdje nam nitko ne diktira kako ćemo nazvati direktorije u koje želimo namontirati diskovne particije, te tako možemo davati i bolje opise onoga što se na tim diskovima nalazi.
Kompletna hijerarhija Linuxovog stabla vidljiva je ovdje
Primjere sa slike desno napravit ćemo u poglavlju Montiranje/Odmontiranje datotečnog sustava
Praktični rad
U sljedećim poglavljima obradit ćemo konkretne primjere u radu s particijama i datotečnim sustavima.
Rad s particijama
|
Vrlo često imamo potrebu podijeliti neki tvrdi disk na particije, odnosno učiniti nešto sa već particioniranim diskom, kao npr. ukloniti particije, dodati particije ili im promijeniti veličinu. Osim particioniranja diska potrebno je na određenu particiju postaviti i datotečni sustav, odnosno izvršiti formatiranje particije na određeni datotečni sustav.
Radi boljeg i lakšeg razumijevanja onoga što nad particijama radimo, primjere ćemo obraditi u popularnom Linuxovom programu za rad sa particijama - Gpartedu. Gparted je GUI alat koji se oslanja na rad dviju CLI naredbi:
- fdisk: - naredba kojom se vrše poslovi particioniranja diskova
- mkfs: - naredba koja služi za postavljanje datotečnog sustava na particiju. (Zapravo vrši formatiranje particije na neki datotečni sustav)
Predradnje i napomene
Kako se ovakvi poslovi sa diskovima mogu raditi isključivo na odmontiranim diskovima (onima koji ne pripadaju Linuxovom stablu) svakako je preporuka da se Linux podigne sa LiveCD-a koji ne ovisi o stanju niti jednog tvrdog diska.
U našim primjerima poslužili smo se Ubuntu 8.10 LiveCD distribucijom.
Često puta Gparted i neki manje bitni alati za rad sa diskovima nisu odmah instalirani u operacijski sustav, pa se tako i Gparted uredno nalazi na LiveCD-u, ali ga nema u Linux Ubuntu instalaciji na tvrdom disku, nego ga se instalira preko Synaptica ili naredbom:
sudo apt-get install gparted
Particioniranje novog diska
Ugradili smo novi disk u računalo i želimo ga pripremiti za rad sa GNU/Linux operacijskim sustavom. Podižemo Linux preko LiveCD-a ili ako disk još nije u upotrebi (nije montiran na Linux stablo) radimo direktno iz Linuxa na tvrdom disku.
Gparted pozivamo: Sustav -> Administracija -> Partition Editor, zadajemo šifru superusera i Gparted se otvara.
Evo kako mora izgledati Gpartedov prozor kada odaberemo potpuno novi disk:
Obratite pažnju na listu diskovnih uređaja desno (/dev/sdb (15.99 GiB)). Pomoću nje biramo tvrdi disk kojeg želimo particionirati.
Pazite da ne odaberete pogrešan disk! Podsjećamo da Linuxov kernel dodjeljuje slova diskovima onako kako su oni priključeni na kontroler u računalu.
Klikom miša na particiju nedodjeljeno u listi particija te ikonu Novi ispod izbornika dobivamo ovaj upit:
Ovaj se upit pojavljuje samo na novim diskovima koji još nemaju kreiranu particijsku tablicu. Kliknete na Izradi. Nakon toga program vas vraća na početni ekran, te ponovo kliknete na Novi. Sada se pojavljuje ovaj prozor:
Gparted odmah označava sav dostupan nedodjeljeni prostor za buduću particiju. Ukoliko ne želite iskoristiti sav prostor za particiju, jednostavno na traci gore pomoću miša i lijeve tipke možete povući traku na veličinu particije koja vam paše. Ovdje možete particiju i pomaknuti u odnosu na diskovni prostor. Osim na ovoj traci, dimenzije particije možete odrediti i zadajući numeričke veličine koje se nalaze ispod trake lijevo. Na desnoj strani prozora tri su bitne opcije:
- Izradi kao: zadajete primarnu, Extended (proširenu) il logičku particiju. Za značenje ovoga pogledajte poglavlje o particijama
- Datotečni sustav: ovdje birate željeni datotečni sustav na koji će Gparted formatirati particiju. Ukoliko ne možete izabrati neki datotečni sustav, to znači da nisu instalirani alati za rad sa tim sustavom. Pazite pri odabiru jer je u Gpartedu stalna postavka Ext2, a ne Ext3 datotečni sustav!
- Label: je oznaka diska u vidu nekog kratkog opisnog teksta. Nije nužno ovdje nešto upisati.
Nakon što ste odabrali veličinu i tip particije, te tip datotečnog sustava kliknite na Dodaj. Prozor sada izgleda ovako:
Gparted je prihvatio vaš zahtjev nad particijom, ali on još nije izvršen. Ovo je tako iz predostrožnosti. Za završetak radnje potrebno je kliknuti na ikonu Primijeni. Nakon toga program vas još jednom pita:
Ako smo sigurni u radnju potvrđujemo sa Primijeni, te nakon toga kreće u akciju. Završetak radnje popraćen je prozorom:
Kliknemo na Završi i vraćamo se na početni prozor, ali sa prikazanim novim stanjem particija na disku:
Nakon izvršenih operacija možemo krenuti u novo kreiranje na isti način kako je opisano.
Moguće je i zadati nekoliko radnji, te na kraju kliknuti na Primijeni no ovo ne savjetujemo iz sigurnosnih razloga.
Brisanje particija
Brisanje particija je jednostavno izvedivo označavanjem particije koju želimo obrisati u listi particija, te klikom na ikonu Obriši:
Nakon čega dobijemo obavijest o zahtjevu, te klikom na Primijeni brišemo particiju
Promjena veličine particija
Vrlo je česta potreba za promjenom veličine particije. Ovakav problem možemo imati ako želimo smanjiti particiju na kojoj je neki drugi operacijski sustav, te osloboditi mjesto za Linux.
U našem primjeru imamo NTFS particiju koja se prostire po cijelom disku:
Označimo particiju mišem na listi, te kliknemo na ikonu Promjeni veličinu/Premjesti. Pojavljuje se ovaj prozor:
Pomoću miša i lijeve tipke lako, pomičući traku pri vrhu prozora određujemo nove dimenzije postojeće particije. Također, moguće je veličinu i odrediti upisivanjem brojčanih vrijednosti u rubrike ispod trake.
Nakon odabira željene nove veličine particije kliknemo na Promjeni veličinu/Premjesti.
Nakon uredno dovršene radnje vraćamo se u glavni prozor gdje odmah vidimo novonastalo stanje na disku:
Novonastali nedodjeljeni prostor sada možemo particionirati prema naputcima za kreiranje nove particije
Važne napomene!
- Postupak promjene veličine particije može trajati poprilično dugo. To ovisi o veličini particije koju mijenjamo, te o stanju njezine fragmentacije. Obično to potraje pola sata do sat, no može potrajati i dulje.
- Ni u kojem slučaju ne prekidajte Gparted kada je jednom započeo rad nad promjenom veličine particije jer može doći do gubitka podataka
- Ako je na datotečnom sustavu particije bilo grešaka vrlo vjerojatno Gparted neće moći izvršiti promjenu veličine i to će javiti u poruci o grešci. U tom slučaju morat ćete izvršiti popravak datotečnog sustava nekim alatom, te pokušati ponovno
- Svakako spremite sve važne podatke sa te particije na sigurno mjesto iz sigurnosnih razloga.
Montiranje particija u Linuxovo stablo direktorija
Nakon izvršenih radnji iz prethodnog poglavlja i kreiranja particija i datotečnih sustava na njima možemo ići korak dalje. Kako bismo se mogli poslužiti određenom particijom iz Linuxa potrebno ju je vezati na aktivno Linux stablo direktorija. Na taj način pristup podacima na nekoj particiji moguć je ulaskom u određeni direktorij.
Ne postoji drugi način da se pristupi particiji nego da ga se montira na Linux stablo direktorija!
Montiranje particije moguće je izvršiti na dva načina. Prvi je preko Linuxovog naredbenog retka (naredba mount), a drugi (elegantniji) preko Linuxove tablice montiranja fstab. Zbog važnosti ćemo obraditi obje. Treba napomenuti da GUI sučelja kao što su GNOME i KDE imaju svoj posebni sustav montiranja diskova koji omogućava automatsko montiranje npr. USB sticka ili CD/DVD medija čim se umetnu u uređaj.
Montiranje preko naredbenog redka
Montiranje particije preko naredbenog redka vrši se naredbom mount i to na sljedeći način. Odlazimo u terminal i radimo kao superuser:
Format naredbe mount je sljedeći:
mount -t tip_datotečnog_sustava uređaj točka_montiranja
Gdje je:
- tip_datotečnog_sustava: oznaka tipa datotečnog sustava kojeg montiramo (npr. ext2, ext3, ntfs-3g itd.)
- uređaja: ime i putanja particije koju montiramo. (npr. /dev/sda1)
- točka_montiranja: ime i putanja direktorija koji će predstavljati zadanu particiju
Obradit ćemo tri primjera montiranja koja su prikazana i na slici desno:
1. Montiranje particije koja predstavlja /home direktorij
Dakle, particiju 1 sa prvog diska na kontroleru želimo montirati kao direktorij /home. Drugim riječima, želimo kompletan direktorij /home imati na posebnoj particiji u odnosu na ostatak Linux stabla. To je čest slučaj i dobro je imati odvojenu /home particiju iz sigurnosnih razloga. (npr. /home particiju moguće je montirati na RAID polje kojim se osiguravamo da, ako dođe do havarije na jednom tvrdom disku, podaci i dalje ostaju dostupni i neoštećeni, dok se ostatak operacijskog sustava i aplikacije lako ponovno instaliraju)
Kako /home direktorij već postoji u Linux stablu (kreiran je prilikom instalacije samog operacijskog sustava) ne kreiramo ga ponovo (to je i nemoguće!). Radimo ovako (ne zaboravite se ulogirati kao superuser!):
mount -t ext3 /dev/sda1 /home
Dakle, datotečni sustav je Ext3, particija je prva na prvom disku, onda je oznaka uređaja - /dev/sda1, točka montiranja je /home direktorij jer želimo da taj direktorij predstavlja particiju /dev/sda1 Nakon izvršene naredbe, ulaskom u direktorij /home zapravo pristupamo particiji 1 diska 1.
2. Montiranje particije koja predstavlja /media/Disk direktorij
Pravilo je da se ostali diskovi, čiji podaci ne pripadaju direktno podacima striktno vezanim za Linuxov operacijski sustav (kao što je to bio prethodni primjer sa /home direktorijem, montiraju ili u /mnt ili u /media direktorij, ovisno o vrsti uređaja. Ako je uređaj privremen onda ga montiramo u /media, a ako je stalni uređaj u /mnt. No to nije nužno tako; možete ga montirati gdje želite.
Neka je u ovom primjeru disk particija formatirana od strane Windowsa, te ima ntfs datotečni sustav na sebi. Radimo ovako (opet se logirajte kao superuser!):
mkdir /media/Disk mount -t ntfs-3g /dev/sdb1 /media/Disk
Ovdje smo prvo trebali kreirati direktorij /media/Disk jer isti nije postajao, te smo nakon toga montirali Windows particiju. Tip particije je ntfs-3g jer ga Linuxov driver za podršku ntfs particijama tako prepoznaje. Disk je 2., particija 1., pa je zato /dev/sdb1. Točka montiranja je direktorij /media/Disk koji će od sada predstavljati ovu particiju.
3. Montiranje CD/DVD medija koji predstavlja /media/CD direktorij
Trećim primjerom pokazat ćemo kako se montira CD/DVD uređaj na neki direktorij. U našem primjeru koristiti ćemo /media/CD direktorij. Ovako:
mkdir /media/CD mount -t udf,iso9660 /dev/scd0 /media/CD
Dakle, kako CD/DVD uređaj može imati ili UDF ili ISO9660 datotečni sustav, montiramo oba. CD/DVD uređaji prikazani su u direktoriju uređaja kao /dev/scdn, gdje n redni broj priključenog CD/DVD pogona na računalu. U našem primjeru imamo jedan CD/DVD pogon na računalu, te on nosi oznaku /dev/scd0. Montiramo na prethodno kreirani direktorij /media/CD.
Odmontiranje preko naredbenog redka
Ponekad postoji potreba da se montirana particija odmontira. Proces odmontiravanja vrši se preko naredbe umount ovako (opet morate biti logirani kao superuser):
umount uređaj
ili
umount točka_montiranja
Vidimo da se odmontiranje vrši ili zadavanjem imena uređaja ili zadavanjem točke montiranja. Nakon izvršene naredbe poništava se veza particije i direktorija, a sam direktorij opet pripada Linuxovom stablu.
Pregled montiranih particija preko naredbenog redka
Ako želimo vidjeti što je sve montirano na Linuxovo stablo dovoljno je otipkati
mount -l
Ova naredba će prikazati baš sve datotečne sustave koji su montirani na Linuxovo stablo.
Ako želimo vidjeti npr. samo Ext3 datotečne sustave onda to radimo ovako
mount -l -t ext3
Montiranje preko fstab tablice
Ako želimo neku particiju montirati automatski pri podizanju operacijskog sustava, onda to činimo preko datoteke/tablice /etc/fstab. Editiramo je također kao superuser.
U tablici svaka linija predstavlja jedno montiranje. Neka montiranja su već zadana od strane operacijskog sustava. Kao npr. montiranje samog Linux stabla (/) ili swap particije. No u nju možemo lako dodati i svoje particije.
Prvo da se upoznamo sa formatom linije fstab tablice koja se donekle razlikuje od upisivanja parametara pri naredbi mount
Format je slijedeći:
uređaj točka_montiranja tip_datotečnog_sustava opcije freq passno
Gdje je:
- uređaj: ime i putanja particije koju montiramo. (npr. /dev/sda1)
- točka_montiranja: ime i putanja direktorija koji će predstavljati zadanu particiju
- tip_datotečnog_sustava: oznaka tipa datotečnog sustava kojeg montiramo (npr. ext2, ext3, ntfs-3g itd.)
- opcije: upisuju se opcije montiranja. Ako nemate posebnih opcija koje želite uključiti postavite na defaults
- freq: određuje hoće li datotečni sustav biti uključen u listu datoteka za back-up (za vaše potrebe stavite 0)
- passno: određuje hoće li se prilikom podizanja operacijskog sustava provjeravati integritet datotečnog sustava naredbom fsck. Ako stavite vrijednost 0, onda se neće provjeravati ispravnost datotečnog sustava. Vrijednost 1 je rezervirana za root (/) datotečni sustav, a za ostale se postavlja vrijednost 2. U tom slučaju Linux će u određenim vremenskim razmacima podizanja operacijskog sustava provjeravati integritet datotečnog sustava.
1. Linija fstab tablice za montiranje /home particije Montiranje /home particije izgledat će ovako kao linija fstab tablice:
/dev/sda1 /home ext3 defaults 0 2
2. Linija fstab tablice za montiranje /media/Disk particije Montiranje /media/Disk particije izgledat će ovako kao linija fstab tablice:
/dev/sdb1 /media/Disk ntfs-3g defaults 0 0
3. Linija fstab tablice za montiranje /media/CD CD/DVD medija Montiranje /media/CD CD/DVD medija izgledat će ovako kao linija fstab tablice:
/dev/scd0 /media/CD udf,iso9660 user,noauto,exec,utf8 0 0
Napomene:
- Da bi Linux mogao montirati datotečne sustave preko fstab tablice moramo prije toga kreirati direktorije koji predstavljaju točke montiranja (kao i kod montiranja preko mount naredbe)
- Da bi se datotečni sustavi montirali prema fstab tablici potrebno je ili restartati računalo ili pokrenuti naredbu kao superuser:
mount -a