linux rad sa diskovima

10
Блок уређаји у Linux-у Рад са дисковима и осталим блок уређајима (USB stick-овима, CD/DVD дисковима) на Linuxu је специфичан у односу на неке друге оперативне системе. За разлику од нпр. Windowsa који све уређаје за складиштење података именује великим словом и двоточком (нпр. C: D: E:….), a сваки од њих има своје засебно стабло директоријума, Linux приступа раду с дисковима на другачији начин. Ако сте већ покушали понешто радити под Linux-ом засигурно сте увидели да не постоје ознаке дискова по принципу “C: D: E:”, него постоји једно једино стабло директоријум које вас вероватно помало и мучи, јер не знате што припада одређеном дисковном уређају. Да бисмо могли наставити даље, морамо макнути “вео тајни” управо с овог подручја. Тек када буде јасно како Linux “разуме” дисковне и остале блок уређаје, моћи ћемо с њима и нешто конкретно радити. Идемо редом. Дискови Када говоримо о дисковима, првенствено мислимо на тврде дискове, CD/DVD дискове, USB stick-ове (па чак и застареле дискете које данас реко ко користи). Основна намена ових уређаја је физичко спремање података (информација у облику програма, ваших текстова, слика и осталог) на површину неког медијумума: Тврди дискови и дискете податке спремају на површину магнетног медијумума CD/DVD дискови податке спремају на оптички читљиву површину (помоћу ласера препознавају се удубљења у медијуму, и на тај начин распознаје стање 0 и 1) USB stick-ови складиште податке у тзв. Flash меморијске чипове. Свима њима је заједничко што се подаци на њих складиште у облику датотека и директоријума, преко неког система датотека и што се ти подаци не бришу након искључивања уређаја из извора напајања.

Upload: tursunov

Post on 08-Feb-2016

6 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Linux rad sa diskovima

Блок уређаји у Linux-у

Рад са дисковима и осталим блок уређајима (USB stick-овима, CD/DVD дисковима) на Linuxu је специфичан у односу на неке друге оперативне системе. За разлику од нпр. Windowsa који све уређаје за складиштење података именује великим словом и двоточком (нпр. C: D: E:….), a сваки од њих има своје засебно стабло директоријума, Linux приступа раду с дисковима на другачији начин.

Ако сте већ покушали понешто радити под Linux-ом засигурно сте увидели да не постоје ознаке дискова по принципу “C: D: E:”, него постоји једно једино стабло директоријум које вас вероватно помало и мучи, јер не знате што припада одређеном дисковном уређају. Да бисмо могли наставити даље, морамо макнути “вео тајни” управо с овог подручја. Тек када буде јасно како Linux “разуме” дисковне и остале блок уређаје, моћи ћемо с њима и нешто конкретно радити. Идемо редом.

Дискови

Када говоримо о дисковима, првенствено мислимо на тврде дискове, CD/DVD дискове, USB stick-ове (па чак и застареле дискете које данас реко ко користи). Основна намена ових уређаја је физичко спремање података (информација у облику програма, ваших текстова, слика и осталог) на површину неког медијумума:

Тврди дискови и дискете податке спремају на површину магнетног медијумума

CD/DVD дискови податке спремају на оптички читљиву површину (помоћу ласера препознавају се удубљења у медијуму, и на тај начин распознаје стање 0 и 1)

USB stick-ови складиште податке у тзв. Flash меморијске чипове.

Свима њима је заједничко што се подаци на њих складиште у облику датотека и директоријума, преко неког система датотека и што се ти подаци не бришу након искључивања уређаја из извора напајања.

Page 2: Linux rad sa diskovima

У данашње време, за свакодневно складиштење података у рачунару користе се искључиво тврди дискови капацитета од 100 GB, па све до неколико TB. За размену података између рачунара користе се CD и DVD дискови, USB stick-ови и преносни хард дискови који због тога спадају у групу измјењивих дискова, јер их током рада можемо мењати у CD/DVD читачу, односно стављати/вадити из USB сабирнице рачунара, већ у зависности од тога који нам подаци на њима требају.

Ради повећања капацитета и поузданости чувања података дискове можемо организовати и у тзв. RAID поља где целу серију дискова проглашавамо једним логичким уређајем. Овде се нећемо тиме бавити.

Но, како су то само “сирови” уређаји, пре складиштења података на њих, потребно је познавати још неке њихова својства.

Партиције

Партиције су везане уз тврде дискове, а заправо их можемо предочити као подручја на неком тврдом диску (физичком диску), која се понашају као засебан диск (логички диск). На тај начин можемо постићи привид да на једном диску имамо више дискова, али мањег капацитета. Зашто је то уопште потребно?

Ако желимо инсталирати више од једног оперативног система. Немогуће је инсталирати више од једног оперативног система на једну партицију.

Ако оперативни систем треба више од једне партиције за свој уредан рад

Ако желимо додатно поделити диск за различите намене

Ако желимо на истом физичком диску користити више од једног система датотека

У примеру Linuxa имамо барем две партиције: једну за оперативни систем и другу за тзв. сwап, односно привремену радну меморију када понестане оне у рачунару (RAM-a).

Page 3: Linux rad sa diskovima

Сваки тврди диск мора имати барем једну партицију, што конкретно значи да се баш сваки тврди диск мора партиционисати, јер је то услов да се на њега постави неки систем датотека.

Код партиција морамо разликовати Примарне и Проширене (Extended) партиције. Разлика је у следећем:

Примарна партиција је носиоц система датотека. Због ограничења у BIOS-у рачунара на један физички тврди диск могуће је поставити највише 4 примарне партиције, што би значило прилично ограничење.

Проширена партиција је носиоц (оквир) других, такозваних логичких партиција. На тај начин могуће је на један тврди диск поставити 3 примарне партиције и једну еxтендед партицију која на себи може имати нпр. три логичке партиције. Тако на крају имамо шест партиција.

Page 4: Linux rad sa diskovima

Систем датотека

Да бисмо складиштили своје податке у организованом облику датотека и директоријум на партицију је потребно поставити систем датотека. За разлику од неких других оперативних система Linux има поприличан број разних система датотека које можемо користити према властитим потребама. Неки битнији систем датотека наведени су овде:

Ext4: Linux-ов уобичајени систем датотека

ReiserFS: Linux-ов мање заступљени систем датотека

NTFS: Систем датотека којег користе MS Windows. Linux може радити са овим системом датотека.

FAT: њега проналазимо на готово свим USB stick-овима

ISO 9660 и UDF: су систем датотека CD/DVD дискова

Осим складиштења података, систем датотекаи нуде још неке опције при раду с подацима као што су link-ови и journaling.

Долазимо до можда најбитнијег дела целе ове приче. Наиме, на почетку смо рекли да за разлику од MS Windows оперативног система који дискове означава по слову (C: D: E:…), па сваки такав диск има своје стабло директоријума, Linux све држи унутар једног јединог стабла директоријум које почиње од коренског (root) директоријум чија је ознака “/” (коса црта).

Како Linux баш све податке представља као датотеке (обичне и посебне) унутар тог стабла директоријума, тако се онда представљају и дискови, односно систем датотека. Овде је добро напоменути да представљање тврдог диска као уређаја и система датотека нису једна те иста ствар и Linux их унутар свог стабла приказује као одвојене ствари.

Представљање уређаја у Linux стаблу

На Linuxu постоји посебан директоријум унутар стабла под именом /dev. Унутар њега Linux креира посебне датотеке за баш сваки уређај који је спојен на рачунар, па тако и за дискове. Наравно, дискови овде имају посебну номенклатуру коју је потребно добро разјаснити. Сви физички тврди дискови називају се овако:

Page 5: Linux rad sa diskovima

/dev/sdx

при чему је x слово ознаке тврдог диска у рачунару, онако како су спојени на контролер и како их BIOS види, почевши од слова “a”.

Примери: (Рачунар има три тврда диска.)

/dev/sda /dev/sdb /dev/sdc

Такођер, у овом директоријуму означени су и логички дискови, односно партиције и то овако:

/dev/sdxy

где је x слово ознаке тврдог диска у рачунару, а y редни број партиције на x-овом тврдом диску почевши од броја један, уз напомену да није нужно да ти бројеви иду по реду.

Примери: (Рачунар има један тврди диск sda на којем су три партиције и још један тврди диск на којем су две партиције.)

/dev/sda1 /dev/sda2 /dev/sda3

/dev/sdb1 /dev/sdb2

Да би се могло приступати подацима на неком систему датотека који се налази на диску (или лепше речено, да би се приступило подацима на диску) потребно је исти монтирати на Linux-ово стабло директоријум преко тзв. тачке монтирања. На тај начин се било која диск партиција (која на себи има систем датотека) може намонтирати (прикачити) на неки директоријум унутар Linux-овог стабла директоријума, те ће се подаци из те партиције приказати као садржај директоријума који представља тачку монтирања партиције.

Page 6: Linux rad sa diskovima

За боље објашњење следи пример:

Имамо диск партицију која се у директоријуму уређаја зове /dev/sdb1, те је желимо намонтирати у Linux-ово стабло као директоријум /media/Disk.

Да бисмо то урадили морамо имати већ креирани директоријум који се зове /media/Disk Након извршавања наредбе за монтирање диска на Linux стабло (mount наредба ће бити касније детаљно објашњена), приступ тој партицији диска исто је што и приступу директоријуму /media/Disk, односно све што радимо у том директоријуму, заправо радимо на монтираној партицији тврдог диска. Дакле, уместо да се дисковне партиције називају C: D: итд. на Linux-у им приступамо преко директоријума у којег су намонтиране. Наравно, овде нам нико не диктира како ћемо назвати директоријуме у које желимо намонтирати дисковне партиције, те тако можемо давати и боље описе онога што се на тим дисковима налази.

Page 7: Linux rad sa diskovima

Хијерархија система датотека

Идеја сортирања датотека

Linux је наследио хијерархију (структуру) система датотека од Unix-а иако не сасвим доследно (зависи од дистрибуције до дистрибуције).

Прије него што кренемо добро је имати у подсетити се:

датотека (енг.file) је неки податак или програм, укратко - носилац садржаја;

директоријум (енг. folder) је фиока која обједињује датотеке, али самостално не представља никакав садржај.

И то је основна замисао свега: имамо датотеке које треба распоредити по директоријумима ради лакшег сналажења, али и ефикаснијег функционисања система.

Разликујемо два логичка приступа распореду података:

1. Присуп у којем на једно место стављамо један програм и све његове пpопратне датотеке, библиотеке и помоћне програме;

2. Паковање датотека по сврси и типу у којима се један тип датотека налази унутар једног пакета макар их користе различити програми (нпр. библиотеке свих програма се налазе унутар директоријума библиотеке).

Предност првог приступа је у томе да имамо функционално све на једном месту, но недостатак је у томе што имамо пуно дупликата. У рачунару се тај недостатак манифестује као трошење простора на диску.

Предност другог приступа је у томе да је пуно ефикаснији на простору, али ствари тада треба тражити што је и главни недостатак. Међутим, рачунар пуно лакше тражи него ми... тако да други приступ рачунару и не представља неки проблем као човеку.

Дакле, осим набројаних сваки приступ има и других предности и недостатака. Како увијек у таквим ситуацијама бива, углавном се користи мешани приступ који узима најбоље од оба, али уз покоју ману. Тешко је рећи који је приступ генерално бољи, јер све зависи о ситуацији и намени.

Wиндоwс платформа више нагиње првом приступу: већина програма се стандардно налази у својим директоријумима унутар директоријума Program Files, а једино се библиотеке стављају на заједничком место (dll датотеке). Unix системи имају другачију философију. Unix се састоји од пуно малих алата који раде заједно да би обавили одређени задатак и тако се програми међусобно користе, а да би се лакше нашли сви се налазе на једном или само пар места. Такође библиотеке имају своје заједничко место, па ако неки програм треба неку библиотеку тражи је на месту за библиотеке, а не по цијелом систему.

Хијерархија датотека у Linuxu

Хијерархија (распоред датотека по директоријумима) на Linux-у је више-мање стандардизована и можемо је илустровати помоћу дрвета које се грана од стабла према крошњи.

Преглед основних директоријума

Стабло у овом случају је тзв. коренски (енг. root) директоријум (ознака /). Он је први и не налази се ни у једном другом директоријуму. Сви остали директоријуми и садржаји се налазе унутар њега (гране тог дрвета).

Изглед и значења појединих директоријума у стаблу предочена су у овој табели (неки су под-директоријуми наведени само као пример, иако за корисника немају велику важност):

Page 8: Linux rad sa diskovima

Direktorijum Opis

/ Примарна хијерархија, root директоријум од целокупне хијерархије система, почетак.

/bin/ Извршне датотеке битних наредби на нивоу тзв. Single user mod-у, наредбе за све кориснике (нпр. cat, ls, cp).

/boot/ Датотеке потребне за покретање система (нпр. kernel, GRUB датотеке). Често и на засебној партицији.

/dev/ Датотеке које представљају саме физичке или виртуалне уређаје (нпр. дискови, USB и други портови).

/etc/ Конфигурацијске датотеке система које вреде за цели систем (али не и за корисничке програме и поставке које су складиштене у корисничком директоријуму /home/ime/)

/etc/opt/ Конфигурацијске датотеке за програме који се налазе у директоријуму /opt/.

/etc/X11/ Конфигурацијске датотеке за X Window System, тзв. графички подсистем у којем се извршавају графичка окружења као KDE или Gnome.

/etc/sgml/ Конфигурацијске датотеке за SGML.

/etc/xml/ Конфигурацијске датотеке за XML.

/home/ Кориснички home директоријум (лични кориснички директоријум) - садрже корисничке приватне податке и поставке. Често (и препоручено) на посебној партицији, одвојеној од система.

/lib/ Битне библиотеке за програме из директоријума /bin/ и /sbin/.

/media/ Место/тачка за montiranje измењивих медијума као нпр. CD-ROM или USB меморија (од FHS-2.3).

/mnt/ Привремено montirani sistemi datoteka. Нису нужни за функционирање система.

/opt/ Необавезни, додатни апликациони пакети и програми.

/proc/ Виртуални системи датотека за приказ рада кернела и процеса у облику текстуалних и сличних датотека.

/root/ Home direktorijum од root корисника. По правилу се налази на истој партицији где и цели систем (садржај root директоријума).

/sbin/ Битни системски програми (нпр., init, route, ifconfig, ...).

/srv/ Специфични подаци послужени од стране система...

Page 9: Linux rad sa diskovima

/tmp/ Привремени подаци, који се обично не чувају након поновног покретања рачуnara.

/usr/ Секундарна хијерархија за корисничке податке; садржи више корисничких алата и апликација.

/usr/bin/ Мање битне извршне датотеке програма и наредаба (непотребне у тзв. Single user modu); намењено за све кориснике.

/usr/include/ Стандардне include датотеке.

/usr/lib/ Библиотеке од програма у /usr/bin/ и /usr/sbin/.

/usr/sbin/ Мање битне системске датотеке (нпр.daemoni за различите сервисе).

/usr/share/ Датотеке које су независне од архитектуре (дељене датотеке), нпр. слике/иконе или докуmentacija.

/usr/src/ Датотеке изворног кода (нпр. кернелов изворни код).

/usr/X11R6/ X Window System, Верзија 11, издање 6.

/usr/local/ Терцијална хијерархија за локалне податке. Строго према стандарду, /уср/лоцал/ служи за податке који морају бити складиштени на локалном рачунару (супротно од /usr/, који могу бити монтирани преко мреже.

/var/ Промјењљиве датотеке као што су log-ови, spool-ови и сл.

/var/lib/ Подаци који се мењају припадајућим програмима (нпр. базе података).

/var/lock/ Закључане датотеке. Датотеке које држе трагове о програмима који се извршавају.

/var/log/ Log датотеке.

/var/mail/ Кориснички e-mail сандучићи.

/var/run/ Информације о систему од задњег покретања.

/var/spool/ Spool за задатке који требају тек бити извршени.

/var/tmp/ Привремене датотеке које требају преживети reboot рачунара.

Page 10: Linux rad sa diskovima

Додатни (нестандардни) директоријуми

Неке препоруке

Што ако се нешто нађе на непредвиђеном месту?

Стандард постоји да би сви имали на крају користи од тога. Међутим, неки аутори апликација мисле да “знају боље” и измишљају топлу воду или се једноставно не држе стандарда јер не знају да постоји.

То се често може видети на Windows платформи: иако је Microsoft наменио Program Files за све корисничке програме, многи програми се инсталирају другде (или дају кориснику да их инсталира на неко своје место), а библиотеке и пропратне датотеке разбацају још које куда по систему. То је наравно лоше, јер убрзо настаје такав неред у систему да се више нитко не може снаћи. Microsoft је ту сам крив што не спроводи строже та правила која је прописао.

У Linux-у, ако се нека датотека налази на кривом месту (тамо где не би требала, тј. не по правилима те Linуx дистрибуције) онда је грешка (bug) и треба је пријавити. Други Unix компатибилни системи често критикују Linуx што се сам не држи оригиналног Unix стандарда.

Закључак

Ако неки програм нуди одређену функционалност и то ради добро, онда га је логично искористити у свом програму, а не развијати властито решење. Међутим, ако не могу сви корисници имати приступ том помоћном програму или ако постоји могућност да се тај помоћни програм престане развијати онда га и није логично користити. Linуx је пројект из домена слободног софтвера, сви програми су под слободним лиценцама и може их користити свако (чак су могући аутоматски системи који добављају те програме из заједничких репозиторијума) те је могуће преузети изворни код и наставити развој програма за своје потребе уколико оригинални пројект стане с развојем или крене другим правцем (тако не постоји негативна страна зависности о другима).

Кад су ствари тако посматрају, јасно је зашто је Linуx систем у којем више програма ради заједно да би извршили неки задатак. Сходно томе, Linуx-у више одговара приступ разврставања датотека по типу, него у самосталне целине па такав приступ (хијерархију) и користи.

Linуx-ова хијерархија система датотека вероватно није једноставна ни интуитивна почетницима, али за сад добро ради. Вероватно има начина да се та структура побољша, али би се тада покидала компатибилност с Unixom, што се за сада не планира, иако има дистрибуција које су кренуле тим путем.