Sve što trebate znati o radu sa diskovima

Izvor: HrOpenWiki
Inačica od 10:15, 27. siječnja 2009. koju je unio/unijela Grof (razgovor | doprinosi)

Skoči na: orijentacija, traži
Uvod

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.

Warning.png
Upozorenje

Tekst teme je u radu!

Općenito

Za razliku od npr. Windows-a 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 na drugi način pristupa radu sa diskovima.

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 bi mogli nastaviti dalje, moramo maknuti "veo tajni" upravo sa ovog područja. Tek kada bude jasno kako Linux "razumije" diskovne i ostale blok uređaje, moći ćemo sa njima i nešto konkretno raditi. No idemo redom.

Diskovi

Struktura tvrdog diska

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 ostaloga) 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 rapoznaje 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 izmjenu podataka između računala koriste se CD i DVD diskovi, te USB stickovi koji zbog toga spadaju u grupu izmjenljivih 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 vo već spada u naprednu domenu, pa se nećemo sa time ovdje baviti.

No, kako su to zapravo samo "sirovi" uređaji, prije spremanja podataka na njih, potrebno je poznavati još neke stvari oko njih.


Particije

Primjer particija

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 kao 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 operacisjki 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

Kod primjera Linuxa imamo bar 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 bar 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 tazlikovati Primarne i Extended particije. Razlika je u ovome:

  • Primarna particija: Ona je nosioc datotečnog sustava. Zbog ograničenja u BIOS-u računala na jedan fizički tvrdi disk moguće je postavit najviše 4 primarne particije što bi značilo prilično ograničenje.
  • Extended particija: Ona 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 bi 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 prikazani 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 se nalazi 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 sa podacima kao što su linkovi i journaling.

Struktura Linuxovog stabla direktorija

Dolazimo do možda i 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 specijalne) 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 jedan poseban direktorij unutar Stabla koji se zove /dev. Unutar njega Linux postavlja specijalne datoteke za baš svaki uređaj koji je na računalo spojen, 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

Gdje 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

Primjer montiranja raznih diskovnih particija i CD medija na Linux root stablo

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 bi 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 kao C:, D: itd. na Linuxu im pristupamo preko direktorija na kojeg su namontirane. Naravno, ovdje nam nitko ne diktira kako ćemo nazvati direktorije na koji želimo namontirati diskovne particije, te tako možemo davati i bolje opise onoga što se na tim diskovima nalazi.

Primjere sa slike desno napravit ćemo u poglavlju Montiranje/Odmontiranje datotečnog sustava






Praktični rad

U sljedećim poglavljima obraditi ćemo konkretne primjere u radu sa particijama i datotečnim sustavima.

Rad sa particijama

Error.png
Opasnost

PAZITE!

Rad sa particijama može rezultirati nepovratnim gubitkom podataka. Zato vježbajte na praznom disku.

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 - Gparted-om. 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 sa 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 se ga instalira preko Synaptica ili ovako:

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:

Gparted-1-1.png

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:

Gparted-1-2.png

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-1-3.png

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. U koliko ne mpžete izabrati neki datotečni sustav, to znači da nisu instalirani alati zarad sa tim sustavom. Pazite pri odabiru jer je u Gpartedu stalna postavka Ext2, a ne Ext3 datotečni sustav!
  • Label: TO 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-1-4.png

Gparted je prihvatio vaš zahtjev nad particijom, ali još nije izvršio. Ovo je tako iz predostrožnosti. Za završetak radnje potrebno je kliknuti na ikonu Primijeni. Nakon toga još jednom program pita:

Gparted-1-5.png

Ako smo sigurni u radnju potvrđujemo sa Primijeni, te nakon toga kreće u akciju. Završetak radnje popraćen je prozorom:

Gparted-1-6.png

Kliknemo na Završi i vraćamo se na početni prozor, ali sa prikazanim novim stanjem particija na disku:

Gparted-1-7.png

Nakon izvršenih operacija možemo krenuti u novo kreiranje na isit način kako je opisano.

Moguće je i zadati nekoliko radnji, te na kraju kliknuti na Primijeni no 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:

Gparted-2-1.png

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:

Gparted-3-1.png

Označimo particiju mišem na listi, te kliknemo na ikonu Promjeni veličinu/Premjesti. Pojavljuje se ovaj prozor:

Gparted-3-2.png

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 i vidimo novonastalo stanje na disku:

Gparted-3-3.png

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 nema garancije ako potraje i dulje.
  • Ni u kome slučaju ne prekidajte Gparted kada je jednom započeo rad nad promjenom veličine particije jer je velika vjerojatnost od 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 ponovo
  • Svakako spemite sve važne podatke sa te particije na sigurno mjesto iz sigurnosnih razloga.

Montiranje particija u Linuxovo stablo direktorija

Primjer montiranja raznih diskovnih particija i CD medija na Linux root stablo

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. Prvo je preko Linuxovog naredbenog redka (naredba mount), a drugi (elegantniji) preko Linuxove tablice montiranja fstab. Zbog važnosti ovraditi ćemo 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 slijedeći način. Odlazimo u terminal i radimo kao superuser:

Format naredbe mount je slijedeć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: Je ime i putanja particije koju montiramo. (npr. /dev/sda1)
  • točka_montiranja: Je ime i putanja direktorija koji će predstavljati zadanu particiju

Obraditi ć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, do se ostatak operacijskog sustava i aplikacije lako ponovo instaliraju)

Kako /home direktorij već postoji u Linux stablu (kreirano 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. Već zavisno od prirode uređaja. Ako je uređaj privremen onda ga montiramo u /media, a ako je stalni uređaj onda u /mnt. No to nije nužno tako. Vi ga možete 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. Disk je 2., particija 1., pa je zato /dev/sdb1. Točka montiranja je direktorij /media/Disk koje ć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 razbija 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

No 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. Otvaramo 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