Mkfs
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