Pre nego što počnete da koristite bilo koji uređaj za skladištenje podataka koji je povezan sa vašim Linux sistemom, neophodno je da kreirate sistem datoteka. U ovom članku, naučićete kako da koristite komandu `mkfs` i druge alatke za pripremu različitih tipova sistema datoteka. Pokazaćemo vam korake kako to postići.
`mkfs` – Stvaranje sistema datoteka
Komanda `mkfs` služi za kreiranje sistema datoteka. U drugim operativnim sistemima, taj proces je poznat kao formatiranje. Bez obzira na termin, ovo je postupak koji priprema particiju za skladištenje podataka. Particija ne samo da mora da ima prostor za skladištenje datoteka, već joj je potreban i mehanizam za čuvanje imena, lokacija i metapodataka (kao što su vreme kreiranja, izmene, veličina datoteke, itd.). Kada `mkfs` postavi potrebnu strukturu za upravljanje i skladištenje metapodataka, možete početi da dodajete datoteke na tu particiju.
Sintaksa komande je vrlo jednostavna. Dovoljno je navesti particiju uređaja na kojoj želite da se kreira sistem datoteka i tip sistema datoteka koji želite da koristite. Međutim, iza kulisa se dešava nešto drugo. Na većini Linux distribucija, komanda `mkfs` je već neko vreme omotac za komandu `mke2fs`. Dakle, komanda `mkfs` zapravo poziva `mke2fs` i prosleđuje joj opcije koje ste naveli. U suštini, `mke2fs` obavlja sav posao, ali ne dobija zasluge za to.
Sintaksa za `mkfs` je ažurirana, a stari format je zastareo. Oba oblika će raditi, ali u ovom članku ćemo koristiti moderni stil.
Odabir sistema datoteka
Savremeni način korišćenja `mkfs` je da otkucate „mkfs“, a zatim naziv sistema datoteka koji želite da kreirate.
Da biste videli koje sisteme datoteka `mkfs` može da kreira, unesite „mkfs“, a zatim dvaput pritisnite taster Tab. Ne ostavljajte razmak nakon „mkfs“, samo dvaput pritisnite Tab.
Prikazaće se lista dostupnih sistema datoteka u terminalu. Ovaj snimak ekrana je iz Ubuntu 18.04 LTS. Druge distribucije mogu ponuditi više ili manje opcija. Razmotrićemo ih i ukratko opisati svaki od njih, nakon kratke diskusije o dnevniku.
Vođenje dnevnika je važan koncept u sistemima datoteka. Sistem datoteka beleži sve promene (upisivanja) koje čekaju na izvršenje u dnevnik. Kako se svaka datoteka upisuje, dnevnik se ažurira, a zapisi se označavaju kao izvršeni. Ovo omogućava sistemu datoteka da popravi oštećene, delimično upisane datoteke koje su nastale usled iznenadnog prekida, kao što je nestanak struje. Neki stariji sistemi datoteka ne podržavaju vođenje dnevnika. Oni koji ne koriste dnevnik ređe pišu na disk, jer ne moraju da ažuriraju dnevnik, što može rezultirati bržim radom. Međutim, oni su podložniji oštećenjima usled prekinutog pisanja.
ext2: Prvi sistem datoteka za Linux bio je MINIX sistem datoteka. Kasnije je zamenjen prvim sistemom datoteka koji je bio specijalno napisan za Linux, a to je bio ext. ext2 je bio naslednik ekst. ext2 nije sistem datoteka sa vođenjem dnevnika.
ext3: Ovo je bio naslednik ext2, i može se smatrati ext2 sa podrškom za vođenje dnevnika, koji štiti vaš sistem datoteka od oštećenja podataka uzrokovanih padovima sistema ili iznenadnim gubitkom napajanja.
ext4: ext4 je standardni sistem datoteka za sve Linux distribucije. To je pouzdan, testiran i siguran sistem datoteka. Ima karakteristike koje smanjuju fragmentaciju datoteka i može se koristiti sa većim diskovima, particijama i datotekama od ext3.
bfs: Ovo je Boot File System, dizajniran za samo jedan zadatak: da upravlja datotekama na particiji za pokretanje. Retko ćete morati ručno da kreirate sistem datoteka za pokretanje. Vaš proces instalacije Linuxa će to uraditi umesto vas.
FAT: File Allocation Table sistem datoteka su razvili giganti kompjuterske industrije za flopi diskove. Predstavljen je 1977. Jedini razlog zašto biste koristili ovaj sistem datoteka bez vođenja dnevnika je kompatibilnost sa operativnim sistemima koji nisu Linux.
NTFS: New Technology File System je Microsoftov sistem datoteka sa vođenjem dnevnika, predstavljen sa Windows NT. On je bio naslednik FAT-a. Jedini razlog zašto biste koristili ovaj sistem datoteka je kompatibilnost sa operativnim sistemima koji nisu Linux.
MINIX: Originalno kreiran od strane Andrew S. Tanenbauma kao obrazovno sredstvo, MINIX je „mini-Unix“ operativni sistem. Danas ima za cilj da obezbedi operativni sistem koji se samostalno oporavlja i toleriše greške. MINIX sistem datoteka je dizajniran kao pojednostavljena verzija Unix sistema datoteka. Možda ćete želeti da koristite ovaj sistem datoteka ako radite na unakrsnom razvoju na Linux računaru i ciljate na MINIX platformu, ili vam je potrebna kompatibilnost sa MINIX računarom iz drugih razloga. Ne postoje očigledni razlozi za korišćenje ovog sistema datoteka na Linux računaru, ali on je dostupan.
VFAT: Virtual File Allocation Table, predstavljen u Windows 95, ukinuo je ograničenje od osam karaktera za nazive datoteka. Nazivi datoteka do 255 znakova su postali mogući. Jedini razlog zašto biste koristili ovaj sistem datoteka je kompatibilnost sa operativnim sistemima koji nisu Linux.
CRAMFS: Compressed ROM File System je sistem datoteka samo za čitanje, dizajniran za ugrađene sisteme i specijalne aplikacije samo za čitanje, kao što je proces pokretanja Linux računara. Uobičajeno je da se mali, prolazni sistem datoteka prvo učita kako bi se procesi pokretanja mogli pokrenuti i pripremili za montiranje „pravog“ sistema za pokretanje.
MSDOS: Sistem datoteka Microsoft Disk Operating System. Objavljen 1981. godine, ovaj sistem datoteka je prilično elementaran i osnovan. Prva verzija nije imala čak ni direktorijume. On ima važno mesto u istoriji računarstva, ali osim kompatibilnosti sa zastarelim sistemima, nema mnogo razloga da se koristi danas.
Siguran način za eksperimentisanje sa sistemima datoteka
Kreiranje sistema datoteka na particiji je destruktivno za sve podatke koji se već nalaze na toj particiji. Korišćenje rezervnog čvrstog diska, ili čak rezervnog računara, je idealan način za eksperimentisanje sa kreiranjem i korišćenjem različitih sistema datoteka. Ali, naravno, većina ljudi nema rezervni hardver koji čeka da se na njemu eksperimentiše.
Međutim, možemo kreirati datoteku slike i u njoj kreirati sistem datoteka. Kada je montiramo, možemo je koristiti kao običnu particiju. Tako možemo da istražujemo i eksperimentišemo sa sistemima datoteka bez potrebe za rezervnim hardverom. Za kreiranje datoteke slike koristićemo komandu `dd`.
Datoteka slike se kreira preuzimanjem izvornih podataka i stavljanjem u sliku. Moramo da kažemo `dd` gde da preuzme izvorne podatke. Koristićemo opciju `if` (input file) da kažemo `dd` da koristi `/dev/zero` kao izvor ulaznih podataka. Ovo će biti tok nula.
Opcija `of` (output file) nam omogućava da imenujemo datoteku slike. Nazvaćemo je „wdzwdz.img“.
Veličina datoteke slike je određena veličinom i brojem blokova koje joj dodeljujemo. Koristićemo opciju `bs` (block size) da zahtevamo veličinu bloka od 1 MB i opciju `count` da zahtevamo 250 blokova. To će nam dati sistem datoteka od 250 MB. Prilagodite broj blokova vašim potrebama i rezervnom kapacitetu koji imate na vašem Linux sistemu.
dd if=/dev/zero of=~/wdzwdz.img bs=1M count=250
Datoteka je kreirana, a `dd` izveštava da je kreirano 250 blokova, kao što je traženo.
Možemo pregledati našu datoteku slike pomoću komande `ls`:
ls -hl
Očekivano, datoteka ima 250 MB, što je ohrabrujuće.
Kreiranje sistema datoteka
Odaberimo sistem datoteka koji ćemo koristiti. Vratićemo se unazad i koristićemo ext2, najraniju verziju ext-a koju ova implementacija `mkfs`-a može da kreira. Ovo je sistem datoteka bez vođenja dnevnika, tako da ne skladištite ništa vredno u njemu bez rezervnih kopija na drugom mestu. Koristićemo varijantu `mkfs.ext2` komande `mkfs` i reći joj da koristi našu datoteku slike kao cilj.
mkfs.ext2 ~/wdzwdz.img
Sistem datoteka je kreiran i prikazani su neki detalji o njemu.
Kao što možete videti iz označenog teksta, pojavljuje se `mke2fs`.
Sada imamo kontejner za sistem datoteka – datoteku slike – koja u ovom scenariju predstavlja hard disk. Unutar tog kontejnera smo kreirali sistem datoteka. Sada moramo da montiramo sistem datoteka da bismo mogli da ga koristimo.
Ovo je privremena postavka, tako da ćemo kreirati tačku montiranja unutar /mnt pod nazivom „geek“. Uklonićemo je kada završimo.
sudo mkdir /mnt/geek
Sada možemo da montiramo našu datoteku slike.
sudo mount ~/wdzwdz.img /mnt/geek
Moramo da promenimo vlasništvo nad datotekama tačke montiranja kako bismo imali pristup za čitanje i pisanje.
sudo chown dave:users /mnt/geek/
I sada bismo trebali da budemo u mogućnosti da koristimo naš novi sistem datoteka. Hajde da se prebacimo u sistem datoteka i kopiramo neke datoteke u njega.
cd /mnt/geek
cp ~/Documents/Code/*.? .
Ovo će kopirati sve datoteke sa ekstenzijom od jednog slova iz ~/Documents/Code direktorijuma u naš novi sistem datoteka. Hajde da proverimo da li su kopirane.
ls
Datoteke su kopirane, tako da je naš sistem datoteka kreiran, montiran i korišćen. Ili bar tako mislimo. Hajde da još jednom proverimo. Iz našeg matičnog direktorijuma, isključićemo sistem datoteka. Imajte na umu da postoji samo jedno „n“ u komandi umount.
sudo umount /mnt/geek
Sada, ako se vratimo na /mnt/geek i proverimo da li postoje datoteke, ne bismo trebali naći nijednu jer se nalaze u našoj datoteci slike, a ona je isključena.
cd /mnt/geek
ls
Dalje istraživanje
Sada kada smo razumeli proces, isprobavanje drugog sistema datoteka bi trebalo da bude lako. Ovog puta ćemo koristiti MINIX sistem datoteka. U našem početnom direktorijumu možemo kreirati novi sistem datoteka unutar naše postojeće datoteke slike.
Budite oprezni! Ako postoje važne datoteke na sistemu datoteka unutar datoteke slike, montirajte datoteku slike i preuzmite ih pre nego što kreirate novi sistem datoteka.
mkfs.minix ~/wdzwdz.image
Bez ikakvog upozorenja i pitanja „da li ste sigurni“, novi sistem datoteka se kreira preko starog. Možemo montirati našu datoteku slike sa potpuno istom komandom kao i ranije:
sudo mount ~/wdzwdz.img /mnt/geek
Hajde da se prebacimo u novi sistem datoteka na /mnt/geek i vidimo da li možemo da kreiramo datoteku.
touch geek.txt
ls -ahl geek.txt
I, tako jednostavno i brzo, napravili smo novi sistem datoteka, montirali ga i možemo ga koristiti.
Uklanjanje tačke montiranja
Kada sve završite, možemo ukloniti „geek“ tačku montiranja. Za to ćemo koristiti rmdir:
cd /mnt
sudo rmdir geek
Žongliranje sa vatrom
Sa Linuxom, kao i sa većinom stvari, učite radeći. Problem sa nekim komandama je to što su potencijalno destruktivne. Dilema je kako vežbati njihovu upotrebu bez ugrožavanja sistema ili podataka?
Sada imate jednostavan metod kreiranja i isprobavanja sistema datoteka pomoću `mkfs`-a, koji ne ostavlja vaš računar oštećenim.