Mkfs

From EIK wiki

Koostas: Reio Kokla A31

Täiendas: Mikk Käosaar A41 - 19.12.2011

Sissejuhatus

Antud artikkel annab lühikese ülevaate linuxis kasutatavast utiliidist mkfs. Välja on toodud käsu olulisemad parameetrid ning kasutusjuhis. Artikkel on mõeldud lugemiseks kõigile neile, kelle eesmärgiks on tutvuda failisüsteemide loomise ning haldamisega linux süsteemis.

Eeldused

Juhendi kasutajal peavad olema baasteadmised linuxi käsurea kasutamisest ning algteadmised failisüsteemidest. Juhendi näidete testimiseks on kasutatatud Ubuntu serverit v.11.04. Alljärgnevad käsud tuleb täita kasutades root õigusi.

Üldkirjeldus

Mkfs kuulub standardsesse linuxi utiliitide pakki nimega util-linux. Mkfs-i kasutatakse Linuxi failisüsteemi loomiseks mingile seadmele, harilikult kõvaketta partitsioonile. Mkfs'i võib mõista ka kui kasutajaliidest erinevate failisüsteemide utiliitidele linuxis. Mkfs käsu esitamisel otsitakse välja vastava failisüsteemi utiliit, mis sealt edasi haldab reaalset failisüsteemi loomise protsessi. Mkfs otsib sääraseid utiliite kindlatest kataloogidest nagu /sbin, /sbin/fs, /sbin/fs.d, /etc/fs, /etc ning veel mõned. Täpne nimekiri neist kataloogidest moodustatakse alles käsu kompileerimise hetkel.

Süntaks

mkfs [ -V ] [ -t fstype ] [ fs-options ] filesys [ blocks ] 

Kasutatavad võtmed

-V - Koostab verbaalse väljundi, kaasaarvatud kõik süsteemipõhised käsud, mis täitmisele antakse. Täpsustades seda valikut mitu korda keelatakse kõik süsteemipõhiste käskude tätmised. See on kasulik vaid testimiseks
-t <fstype>  - Täpsustab failisüsteemi, mida luuakse. Kui seda pole lisatud kasutatakse vaikimisi failisüsteemi.
fs-options - Parameetrid failisüsteemi utiliidile. Oleneb kasutatavast failisüsteemist. Kõik utiliidid ei toeta parameetrite lisamist.
-c - Kontrollib seadme vigaseid blokke enne failisüsteemi loomist.
-l <filename>  - Loeb vigaste blokkide listi failinimest.
-v - Protseduuri kirjeldav väljund. Kõigi tegevuste kirjeldused väljastatakse ekraanile.

Teised parameetrid

filesys on kas seadme nimi (nt. /dev/hda1, /dev/sdb2), mountimiskoht failisüsteemis (nt. /, /usr, /home) või mõni fail.
blocks on blokkide arv, millega määratakse failisüsteemi suurus.
  • Käsu poolt väljastatud kood 0 tähendab edukat täitmist, 1 aga ebaõnnestumist.

Paigaldamisjuhend

Kuna mkfs on osa util-linux pakist, siis piisab antud paki olemasolu kontrollimisest. Seda saab teha käsuga

apt-cache policy util-linux

Ennetavad tegevused

Tähelepanu: Seadmelt, millele failisüsteemi luuakse, kustutatakse kõik olemasolevad failid. Seetõttu tuleb enne mkfs käsu täitmist veenduda, et seadmel olevatest andmetest on tehtud vajadusel varukoopia.

Näited

  • Teeme /dev/sdb esimesele peamisele partitsioonile ext2 failisüsteemi
 mkfs -t ext2 /dev/sdb1
 
  • Teeme /dev/sdb esimesele loogilisele partitsioonile ext3 failisüsteemi
 mkfs -t ext3 /dev/sdb5
 
Väljund

Kumbki eelnevatest käskudest peaks andma oma tegevuse tulemusena ekraanile järgnevaga sarnase väljundi:

mke2fs 1.41.14 (22-Dec-2010)
Filesystem label=
OS type: Linux
Block size=1024 (log=0)
Fragment size=1024 (log=0)
Stride=0 blocks, Stripe width=0 blocks
26104 inodes, 104416 blocks
5220 blocks (5.00%) reserved for the super user
First data block=1
Maximum filesystem blocks=67371008
13 block groups
8192 blocks per group, 8192 fragments per group
2008 inodes per group
Superblock backups stored on blocks: 
	8193, 24577, 40961, 57345, 73729

Writing inode tables: done                            
Writing superblocks and filesystem accounting information: done

This filesystem will be automatically checked every 35 mounts or
180 days, whichever comes first.  Use tune2fs -c or -i to override.

Sellest on võimalik välja lugeda loodud failisüsteemi olulisemad parameetrid, seal hulgas ühe andmebloki suurus, blokkide arv, failisüsteemi suurus jne. Lisaks üldisele statistikale on seal välja toodud ka 2 punkti, millele oleks kasulik peale failisüsteemi loomist veidi tähelepanu pöörata. Kui jälgida lähemalt väljundi lõpuosa on näha, et loodud failisüsteemi hakatakse regulaarse intervalliga kontrollima vigade esinemise suhtes. Antud juhul, vaikimisi seades, hakatakse kontrolli teostama iga 35 mountimise või 180 päeva möödumise järel alates viimasest kontrollist. See on hea, kuna see aitab ennetada failisüsteemi riknemist, kuid samal ajal ka probleemiks, kui tegemist on näiteks serveri failisüsteemiga. Täpsemalt, kuna serverite "üleval" oleku aeg on tihti pikem ülalmainitud piirist siis on küllaltki tõenäoline, et järgmise taaskäivitamise hetkel hakatakse tegema korralist failisüsteemi kontrolli. Selline käitumine võib meele mõruks teha hetkel kui taaskäivitamine võib olla ajakriitilise tähtsusega. Selliste juhuste vältimiseks on kasulik muuta vastavaid parameetreid suuremaks või üleüldse kõrvaldada.

Failisüsteemi parameetrite muutmiseks kasutatakse Ubuntu linuxis käsku tune2fs . See võimaldab kasutajal konfigureerida linuxi failisüsteemi parameetreid vastavalt oma vajadustele. Artikli kirjutamise hetkel toetab tune2fs ext2, ext3 ja ext4 failisüsteeme. Selleks, et välistada eelmainitud automaatne failisüsteemi kontroll tuleb kasutada kahte käsku

tune2fs -c 0 /dev/sdb1
tune2fs -i 0 /dev/sdb1

Esimene käskudest seab parameetriga -c nulliks (või negatiivseks) mountimise kordade arvu, mille tagant süsteemi kontrolli teostatakse. Teine käsk muudab kontrollide ajavahemiku pikkuse 0 sekundiks, ehk põhimõtteliselt tühistab ajalised piirangud. Nüüd on tagatud et iseseisvat kontrolli ei alustata kunagi.

Kontrollide täielik välistamine pole aga siiski hea mõte ning siinkohal oleks kasulik sisse tuua kaustaja poolne regulaarne kontrollide teostamine. Failisüsteemi käsitsi kontrollimiseks saab kasutada käske fsck või e2fsck. Mõlemal neist on suur hulk võtmeid erinevate tingimuste uurimiseks ning viimane rakendus on sama mida kasutatakse reaalselt ka automaatsete kontrollide teostamiseks. Siinkohal antud käskude detailidesse ei lange ning täpsema ülevaate mõlemast käsust ning nende parameetritest koos leiab nende vastavatest manuaalidest või allpool asuvatest viidetest.

Lisaks -c ja -i 'le võib üheks kasulikumaks parameetriks tune2fs puhul nimetada ka parameetrit -m . See võimaldab määrata protsentuaalselt, kui suur hulk failisüsteemi jaoks määratud kettapinnast, jääb reserveerituks vaid eelisprotsessidele - s.t kui palju vaba pinda jäetakse süsteemsete toimingute teostamiseks. Vaikimisi väärtus, nagu ka mkfs käsu väljundist näha saab, on 5% määratud failisüsteemi mahust. Selline puhverpiirkond on kasulik näiteks failisüsteemis, mis on kasutajate poolt aktiivses kasutuses. Määrates puhverpiirkonna võib vältida ketta täieliku täiskirjutamist kasutajate poolt ning annab administraatorile lisaaega seadme välja vahetamiseks või ruumi lisamiseks. Samas, nagu paljude muude asjade korral, on ka siin erandeid. Vahel võib osutuda vajalikuks kasutada kogu ketta pinda, seal hulgas ka seda ala mis muidu oleks kaetud puhvriga. Sellisesse kategooriasse võiks kuuluda erinevad välkmäluseadmed, kus üldjuhul soovitakse kasutada kogu seadme mahtu. Antud puhvri suurust saab muuta käsuga:

tune2fs -m 0 /dev/sdb1

Selle käsuga seati puhvri suuruseks 0 blokki, mis tähendab, et edaspidi on võimalik kasutada kogu partitsiooni sdb1 blokke. Muutuse kohta antakse ekraanile ka vastava kinnitus:

tune2fs 1.41.14 (22-Dec-2010)
Setting reserved blocks percentage to 0% (0 blocks)

Loomulikult võib viimase käsuga määrata ka mistahes muu vajaliku protsendi seadme üldpinnast. Kõik oleneb konkreetsetest vajadustest.

Kokkuvõte

Mkfs on linuxi konsoolirakendus mis võimaldab luua failisüsteeme. Failisüsteemide täpsemaks seadistamiseks ning kontrollimiseks on võimalik kasutada abistavaid rakendusi nagu tune2fs ning fsck.

Kasutatud kirjandus

http://linux.die.net/man/8/mkfs - mkfs manuaal veebis
http://linux.about.com/od/commands/l/blcmdl8_mkfs.htm - lühiülevaade käsust ja selle parameetritest
http://www.go2linux.org/mkfs-linux-command-line sarnane eelmisele
http://linux.die.net/man/8/tune2fs - tune2fs manuaal veebis
http://linux.die.net/man/8/e2fsck e2fsck manuaal veebis
http://linux.die.net/man/8/fsck - fsck manuaal veebis