[2024-feb-29] Sad news: Eric Layton aka Nocturnal Slacker aka vtel57 passed away on Feb 26th, shortly after hospitalization. He was one of our Wiki's most prominent admins. He will be missed.

Welcome to the Slackware Documentation Project

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

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

Слаквер Линукс складишти све своје фајлове и директоријуме у један / директоријум, обично познат као root. Ово је потпуно другачија ситуација од оне са којом сте можда упознати код Мајкрософт Виндоуза. Различите партиције чврстих дискова, ЦД-РОМ-ова, УСБ уређаја, па чак и флопи дискова могу бити монтиране у директоријумима под / директоријумом, а да немају ништа слично словним ознакама уређаја. Садржај ових уређаја се може наћи било где, али постоје одређена правила да Слаквер то сређује за вас. На пример, CD-RW уређаје ћете најчешће наћи у /mnt/cd-rw.

Табела 11.1. Приказ структуре система датотека

/ Корени (root) директоријум, у оквиру кога постоје сви остали директоријуми
/bin Минимални скуп бинарних програма за све кориснике
/boot Кернел, initrd, и други потребни програми за покретање Слаквера
/etc Системски конфигурациони фајлови
/dev Колекција посебних фајлова који омогућују директан приступ хардверу
/home Кориснички директоријум где се складиште лични фајлови и поставке
/media Директоријум у који се аутоматски монтирају спољни уређаји
/mnt Место за привремено монтирање уклоњивих уређаја
/opt Директоријум у коме може бити инсталиран неки (углавном власнички) софтвер
/proc Систем датотека извезен из кернела за информације о процесима
/root Матични директоријум root корисника
/sbin Минимални комплет системских бинарних пакета и бинарних пакета супер корисника
/srv Подаци карактеристични за сајтове као што су веб-странице понуђене од стране система
/sys Посебни детаљи о имплементацији кернела
/tmp Директоријум резервисан за привремене фајлове свих корисника
/usr Сви небитни програми, библиотеке и дељени фајлови
/var Регуларни подаци о променама као што су фајлови историје

Врсте локалних система датотека

Линукс кернел подржава широк пректар система датотека, што вам омогућује избор великог броја карактеристика које треба да задовоље ваше потребе. Срећом, већина подразумеваних врста система датотека је адекватна за задовољавање свих потреба које можете имати. Неки системи датотека су скопчани са одређеним медијумом. На пример, систем датотека iso9660 се користи скоро искључиво за ЦД и ДВД медијуме.

ext2

ext2 је најстарији систем датотека укључен у Слаквер Линукс за складиштење података на тврдом диску. У поређењу са другим системима датотека, ext2 краси једноставност. Бржи је од већине других кад је у питању читање и писање података, али не укључује способност вођења дневника трансакција. Ово значи да након пада система, систем датотека мора бити исцрпно проверен ради утврђивања и (ако имамо среће) исправљања утврђених грешака.

ext3

ext3 је млађи рођак ext2 система датотека. Дизајниран је да замени ext2 у многим ситуацијама и ова два система датотека деле већину основног кôда, с тим што ext3 уводи подршку за вођење дневника трансакција. Заправо, ext2 и ext3 су толико слични да је могуће конвертовати један у други у ходу, без губљења података. Због тога ext3 ужива велику популарност. Такође, постоји велики број доступних алата за повраћај података са овог система датотека у случају катастрофалног пада система. ext3 је добар систем датотека за општу употребу са подршком за вођење дневника трансакција, али не обавља добро одређене задатке као други системи датотека. Један од таквих је што ext3 систем датотека мора често да пролази кроз исцрпан процес провере. Ово се обавља кад се систем датотека монтира, обично при стартовању рачунара, што за последицу има одређени временски период кашњења што уме да нервира.

ext4

ext4 је последњи из ext серије система датотека. Дизајниран је да се изграђује на ext3 систему датотека са новим идејама о томе шта систем датотека треба да ради. Иако Слаквер подржава ext4, треба знати да је ово нов систем датотека и да се налази у фази развоја. Уколико преферирате стабилност науштрб перформанси, можда ћете желети да користите други систем датотека као што је ext3. ext4 се дичи неким већим побољшањима у односу на ext3 кад су у питању перформансе, али велики број корисника још нема поверење у његову стабилност.

reiserfs

reiserfs је један од најстаријих система датотека, са карактеристиком вођења дневника трансакција, за Линукс кернел и подржаван је од Слаквера дуги низ година. У питању је веома брз систем датотека посебно погодан за складиштење, допремање и писање великог броја малих фајлова. Нажалост, постоји само мали број алата за поправљање у случају пада система, а reiserfs партиције се много чешће оштећују него ext3.

XFS

XFS је додат Линукс кернелу од стране SGI-а и један је од најбољих система датотека за рад са великим дисковима и великим фајловима. XFS искоришћава више радне меморије него други системи датотека, али ако радите са великим фајловима, коришћење перформанси овог система датотека науштрб радне меморије је вредно труда. XFS није нарочито погодан за употребу на стоним или преносним рачунарима, али заиста сија на серверима који целог дана баратају великим фајловима. Као и ext3, XFS је систем датотека који у потпуности подржава вођење дневника трансакција.

JFS

JFS је додат Линукс кернелу од стране IBM-а и познат је по одличном одзиву чак и у екстремно лошем стању. Може да повеже огромне дискове што га чини нарочито погодним за мрежно прикачене уређаје (Network Attached Storage - NAS). Његова дуга историја и тестирање га чине једним од најпоузданијих система датотека са могућношћу вођења дневника трансакција доступним за Линукс.

iso9660

iso9660 је специјално дизајниран за оптичке медијуме као што су ЦД и ДВД. С обзиром да су оптички дискови медијуми са искључиво дозволом читања, Линукс кернел не укључује подршку писања за овај систем датотека. Да бисте креирали iso9660 систем датотека, морате користити алате као што су mkisofs(8) или growisofs(8).

vfat

ПОнекад имате потребу за дељењем података између Виндоуз и Линукс рачунара, али не можете да пренесете фајлове преко мереже. Тада вам треба партиција за дељење или УСБ флеш уређај. Скромни vfat систем датотека је овде најбољи избор с обзиром да је подржан од стране великог броја оперативних система. Нажалост, имајући у виду да је Мјакрософт дизајнирао овај систем датотека, он не складишти дозволе на исти начин као што раде традиционални системи датотека у Линуксу. Ово значи да морате користити додатне, специјалне опције како бисте омогућили већем броју корисника приступ подацима на овим системима датотека.

swap

За разлику од других система датотека који држе фајлове и директоријуме, swap партиције држе виртуелну меморију. Ово је веома корисно јер спречава пад система када ваша радна (RAM) меморија буде максимално искоришћена. Уместо тога, кернел копира одређене количине радне меморије у swap и омогућује другим апликацијама да је користе. Мислите о томе као о додавању виртуелне меморије вашем рачунару, веома споре виртуелне меморије. swap је типично систем датотека безбедан у случају отказа и не би требало да се ослања на континуирано коришћење. Додајте још радне меморије вашем рачунару ако уочите да користите доста од swap-а.

Коришћење mount команде

Сада када смо научили који су то (неки од њих) различити системи датотека доступни у Линуксу, време је да научимо како да их користимо. Како бисмо читали или писали податке на датом систему датотека, тај систем датотека мора претходно бити монтиран. Да бисмо ово урадили, користимо команду mount(8). Прва ствар коју морамо урадити је да одлучимо где желимо да сместимо систем датотека. Подсетимо се да у Линуксу не постоје словне ознаке уређаја. Уместо тога, сви системи датотека су монтирани у директоријумима. Основни систем датотека на коме је инсталиран Слаквер се увек налази на /. /mnt/hd је уобичајено место за привремено монтирање партиције, тако да ћемо га користити у нашем првом примеру. Да бисмо монтирали садржај система датотека, морамо рећи mount команди коју врсту система датотека имамо, где да је монтирамо и навести било које друге посебне опције за коришћење.

darkstar:~# mount -t ext3 /dev/hda3 /mnt/hd -o ro

Хајде да расчланимо ово. Имамо ext3 систем датотека лоцираног на трећој партицији првог ИДЕ уређаја, и одлучили смо да монтирамо његов садржај у директоријуму /mnt/hd. Додатно, монтирали смо га само за читање тако да садржај не може бити промењен. Аргумент [-t ext3] говори команди mount коју врсту система датотека користимо, а у овом случају то је ext3. Ово ће омогућити кернелу да схвати који драјвер да користи. Често mount ово може сама да одреди, али није на одмет експлицитно навести врсту система датотека. Друго, говоримо команди mount где да смести садржај система датотека. Овде смо изабрали /mnt/hd. На крају одлучујемо које ћемо додатне опције користити, ако их има. Оне су декларисане аргументом [-o]. Следи кратак списак најкоришћенијих опција.

Табела 11.2. Најкоришћеније опције за монтирање

ro read-only - само читање
rw read-write (default) - читање-писање (подразумевано)
uid да власништво над системом датотека има корисник
gid да власништво над системом датотека има група
noexec спречавање извршавања било ког фајла у систему датотека
defaults разумне подразумеване вредности за већину система датотека

Уколико је ово ваша прва инсталација Линукса, једине опције које треба да узмете у обзир су ro и rw. Изузетак од овог правила су системи датотека, који не користе традициналне дозволе које се користе у Линуксу, као што су vfat и NTFS. У оваквим случајевима потребно је користити uid или gid опције, како бисте дозволили обичним корисницима приступ овим системима датотека.

darkstar:~# mount -t vfat /dev/hda4 /mnt/hd -o uid=alan

Али Алане, то је ужасно! Не желим да говорим mount команди који систем датотека и опције да користи сваки пут кад учитам ЦД. Мора да постоји лакши начин. Срећом, постоји. Датотека /etc/fstab садржи све ове информације о системима датотека које инсталатер поставља, а ви можете додавати информације по жељи. fstab(5) изгледа као једноставна табела која садржи уређај за монтирање као и његову врсту система датотека и опционе аргументе. Погледајмо.

darkstar:~# cat /etc/fstab
/dev/hda1        /                reiserfs    defaults               1   1
/dev/hda2        /home            reiserfs    defaults               1   2
/dev/hda3        swap             swap        defaults               0   0
/dev/cdrom       /mnt/cdrom       auto        noauto,owner,ro,users  0   0
/dev/fd0         /mnt/floppy      auto        noauto,owner           0   0
devpts           /dev/pts         devpts      gid=5,mode=620         0   0
proc             /proc            proc        defaults               0   0

Уколико се у fstab-у налази улаз за ваш систем датотека, треба само упутити команду mount на чвориште уређаја или локацију монтирања.

darkstar:~# mount /dev/cdrom
darkstar:~# mount /home

Последња корист од команде mount је да вам каже који су системи датотека тренутно монтирани и које су опције притом коришћене. Једноставно покрените mount без аргумената да бисте ово сазнали.

Мрежни системи датотека

Поред локалних система датотека, Слаквер подржава бројне мрежне системе датотека. Ово вам омогућује транспарентно дељење података између више рачунара. Овде ћемо говорити о два најзаступљенија: НФС и СМБ.

НФС

НФС (енгл. NFS - Network File System) је мрежни систем датотека за Линукс као и за неколико других уобичајених оперативних система. Има скромне перформансе, али подржава пун опсег дозвола за Слаквер. Да бисте користили НФС било као клијент или као сервер, морате покренути демона даљинског позивања процедура. Ово се лако постиже постављањем датотеке /etc/rc.d/rc.rpc као извршне покретањем исте. Једном када буде постављена као извшна, она ће се покренути аутоматски сваки пут када покренете Слаквер.

darkstar:~# chmod +x /etc/rc.d/rc.rpc
darkstar:~# /etc/rc.d/rc.rpc start

Монтирање НФС дељења се донекле разликује од монтирања локалног система датотека. Уместо одређивања локалног уређаја, морате рећи mount команди име домена или ИП адресу НФС сервера и директоријум за монтирање са двотачком (:) између њих.

darkstar:~# mount -t nfs darkstar.example.com:/home /home

Покретање НФС сервера је мало другачије. Прво, морате конфигурисати сваки директоријум за извоз у датотеци /etc/exports. exports(5) садржи информацију о дељеним директоријумима, о томе са ким ће они бити дељени као и о специјалним дозволама или забранама.

# See exports(5) for a description.
# This file contains a list of all directories exported to other computers.
# It is used by rpc.nfsd and rpc.mountd.

/home/backup	192.168.1.0/24(sync,rw,no_root_squash)

Прва колона у exports је списак датотека за извоз путем НФС-а. Друга колона је списак система који имају приступ извозу као и специјалних дозвола. Можете одредити домаћине преко имена домена, ИП адресе или опсега ИП адреса (као што је случај овде). Специјалне дозволе су увек списак у загради. За потпуни списак прочитајте man страницу. За сада, једина битна специјална опција је no_root_squash. Обично корени корисник на НФС клијенту не може да чита и пише у извезеним подељеним датотекама. Уместо тога, корени корисник је згажен и приморан да делује као обичан корисник. no_root_squash спречава то.

Такође треба покренути НФС демона. Покретање и стопирање НФС серверске подршке се врши помоћу скрипте /etc/rc.d/rc.nfsd. Учините је извршном и покрените као у случају rc.rpc и спремни сте.

СМБ

СМБ (енгл. SMB) је Виндоузов протокол за дељење датотека. Повезивање на СМБ дељење (обично звано самба дељење) је прилично праволинијско. Нажалост, СМБ није толико подржан као НФС. Ипак, нуди високе перформансе и могућност повезивања са Виндоуз рачунарима. Ово су разлози због којих је СМБ један од најчешћих мрежних протокола за дељење датотека упошљен на локалним мрежама. Извоз СМБ дељења из Слаквера сењ врши кроз самба демон и конфигурисан је у smb.conf(5). Нажалост, конфигурација самбе као сервиса је изван домашаја ове књиге. Додатну документацију потражите на интернету, као и у man страници.

Срећом, монтирање СМБ дељења је једноставно и функционише готово исто као монтирање НФС дељења. Морате рећи mount команди где да нађе сервер и којој врсти дељења желите да приступите, на исти начин као код НФС дељења. Додатно, морате навести корисничко име и лозинку.

darkstar:~# mount -t cifs //darkstar/home /home -o username=alan,password=secret

Сигурно се питате зашто је врста система датотека cifs, а не smbfs. smbfs је коришћен у старијим верзијама кернела. Ово је застарело због бољих перформанси и боље генералне сигурносне намене cifs драјвера. Свако СМБ дељење захтева корисничко име и лозинку као аргументе. Ово може довести до сигурносних проблема ако пожелите да сместите ваше самба дељење у fstab. Можете избећи овај проблем ако користите аргументе акредитиве. Акредитиви указују на документ који садржи податак о корисничком имену и лозинки. Све док је овај документ добро заштићен и читљив само од стране кореног корисника, шансе да аутентификациони акредитиви буду компромитовани су минималне.

darkstar:~# echo "username=alan" > /etc/creds-home
darkstar:~# echo "password=secret" >> /etc/creds-home
darkstar:~# mount -t cifs //darkstar/home -o credentials=/etc/creds-home

Кретање кроз поглавља

Претходно поглавље: Дозволе над системима датотека

Следеће поглавље: vi

Извори

  • Оригинални извор: http://www.slackbook.org/beta
  • Изворно писали Alan Hicks, Chris Lumens, David Cantrell, Logan Johnson
 sr:slackbook:working_with_filesystems ()