Linuxi parandamine

Allikas: Pingviini viki


Kuidas Linuxit parandada

Sissejuhatus

Windowsi parandamiseks on meil igaühel olemas mingi sõber, kelle juurde katkine arvuti viia. Siis IT-sõber vaatab tema üle ning paneb oma diagnoosi või siis ehk koguni parandab arvuti ära. See juhend võikski olla abiks arvutisõbrale, kuidas siis parandada Linuxit kui tal midagi viga on.

Mõnes mõttes on Linuxiga lihtsamgi asju ajada, kui Windowsiga - ei ole viirusi ei ole spywaret, seega üks suur probleemide allikas on ennetavalt kadunud. Kuid, on terve hulk probleeme, mis tekivad ka Linuxiga ja mille lahendamiseks on omad meetodid. Siin katsun nendele küsimsutele vastused leida.

Katkised failisüsteemid, puuduvad draiverid, lisatarkvara on see mille kohta siit jutust abi leiab.

Distributsioonid

Kui Windowsi puhul on võimalik valida erinevate Windowsi versioonide vahel (home, basic...) siis Linuxi puhul on valikuvõimaluste nimi distributsioonid. Erinevalt Windowsist on tegemist konkureerivate gruppide/firmade toodanguga, mis on küll suures osas samadest juppidest kokku pandud. Nii lihtsalt toimib Linuxi-sisene konkurents ning nii valmivad tooted nii laiadele Linuxikasutajate hulkadele kui ka konkreetsetele niššidele.

Distributsioonidest tavakasutajale on laiemalt levinud Fedora, openSUSE, Mandriva ja Ubuntu Linuxid. Kõik nad on suhteliselt lühikese elueaga (1-2 aastat) ja sisaldavad uusimat ja vahvaimat tarkvara. Kõigil on allalaetavad ISO-failid ja enamasti ka LiveCD olemas (LiveCD on plaadilt käivituv linuxikeskkond).

LiveCD on eriti oluline, kuna võimaldab lihtsalt ja kiirelt käivitada arvutis Linuxi, ka siis kui kõvakettal olev on kas katki või olete unustanud parooli. Enamasti on LiveCD-l olemas ka parandamise vahendid, et saaks teie Linuxi korda teha.

On 2 peamist nö koolkonda, millesse Linuxid jaotuvad ning need on Debianil baseeruvad ehk dpkg paketihaldusega ning RPMil baseeruvad ehk RPM paketihaldusega süsteemid. Linuxi tarkvara levitatakse enamasti valmis pakendatud kujul, ning paketi sees on kirjas, milliseid teisi tarkvarapakette see konkreetne asi vajab, milliseid programme tuleb käivitada paketi eemaldamisel, uuendamisel ja kustutamisel, kõik failid, nende õigused ja ka info, et kas tegemist on seadistustefailiga või millegi muuga. Mingit põhimõttelist vahet neil ei ole, RPM on levinum eriti kommertslinuxite hulgas ,seda kasutavad RedHat, Suse, Mandriva ja teised, dpkg on Ubuntu ja debiani paketiformaat. Üldiselt saab igal distributsioonil kasutada vaid temale tehtud pakette.

LiveCD-dest on olemas Ubuntu ja Mandriva One LiveCD-d, mis on siis täiesti toimivad Linux-keskkonnad, samuti ka spetsiaalsed süsteemi taastamise Cd-d, näiteks System Rescue Cd [[1]].

Enamasti on oma süsteemitaastekeskkond olemas ka paigaldusplaatidel, seda saab siis kas käivitumisel pakutavast menüüst valida või tuleb näiteks promptile kirjutada linux rescue, enamasti on selle kohta juhendid ka olemas.

Paigaldamine

Linuxi paigaldamine on distributsioonispetsiifiline, igal neist on oma paigaldusprogramm. Mandriva One ja Ubuntu saab paigaldada otse Live-CDlt.

Kõigis Linuxites tuleb aga tekitada partitsioonid, valida tarkvara ning oodata kuni tarkvara kopeeritakse tehtud partitsioonidele.

Diagnostika

Linux on Unixilaadne süsteem, ning sellest tulenevalt on kindlasti olemas olulised erinevused võrreldes Windowsiga. Olulisemateks ja põhimõttelisemaktes erinevuseks tuleks lugeda seda, et Linuxis on ainult 1 kataloogipuu, st eraldi kettaid (C:, D: jne) ei ole olemas. Eraldi partitsioone ja kettaid omaette failisüsteemidega on võimalik küll kasutada neid haakides (mount) kataloogide külge. Nii näiteks võib Linuxis olla kataloog / (juurkataloog) kõvaketta 1. partitsioonil ning kataloog /home (kodukataloog) esimesel extended partitsioonil.

Juhul kui graafiline keskkond üldse ei tööta tuleb Linuxil tavaliselt ette tekstikonsool. Linuxil on tegelikult seadistatud tavaliselt mitu nö virtuaalset tekstikonsooli, mida saab vahetada klahvikombinatsiooniga ALT-F1 kuni ALT-F6, ALT-F7 on tavaliselt graafiline keskkond, graafilisest keskkonnast saab ära CTRL-ALT-F1 (või muu konsooli number).

Linuxis on olemas vahendid mitmesuguste andmete kättesaamiseks süsteemist. Need on kõik käsurea utiliidid, mis tuleb käivitada terminali aknas. Järjekorras neist: dmesg: näitab süsteemi käivitumisest kerneli teatepuhvrisse salvestatud infot. Sealt on võimalik vaadata näiteks kerneli poolt tuvastatud riistvara, kõvakettu vigu jne. Kasutamine näiteks nii

dmesg | less
  • lspci: näitab süsteemis olevaid PCI seadmeid
  • lsusb: näitab ühendatud USB seadmeid
  • fdisk: ketaste ja partitsioonide haldamine
  • lvdisplay, vgdisplay, pvdisplay: LVM objektide vaatamine (volumes, volume groups, physical volumes)
  • dmidecode: kuvab DMI informatsiooni
  • hdparm: kõvaketaste parameetrite sättimine
  • smartctl: SMART info pärimine
  • ifconfig, route, iwconfig: võrguinfo (IP aadressid, ruutinguinfo, )
  • sensors: kuvab sensoritelt (pinged, temperatuurid jne) saadud info, enne vaja seadistada sensors_detect programmiga.
  • iptables -L: kuvab tulemüüri info.
  • lsof: kuvab avatud failid, lsof -p protsessinumber kuvab mingi protsessi poolt avatud failid
  • fuser: kuvab protsessid, mis mingit faili on avanud või mingit failisüsteemi kasutavad.
  • strace: selle käsuga saab jälgida programmi syscalle jälgida, strace -o outfile ls salvestab käsu ls kõik syscallid faili. -p protsessinumber võimaldab mingi jooksva protsessi syscalle jälgida. Nii saab jälgida, mida mida protsess teeb (mis faile avab, kuhu ühendub jne)
  • ps: protsesside listing, kuvab jooksvate protsesside nimekirja. Väga palju erinevaid võtmeid,

ps axuwww näitab kõiki protsesse kõikide atribuutidega.

  • kill, pkill: kill -signaal protsesinumber saadab protsessile signaali, näiteks kill -9 123 tapab protsessi number 123. pkill signaal protsesinimi saadab signaale protsessi nime järgi.
  • top: Top kuvab kokkuvõtvat infot protsesside, protsessorikasutuse, mälu jpm kohta.
  • chkconfig --list: kuvab info teenuste kohta, mis käima lähevad. chkconig teenusenimi off lülitab teenuse välja ja chkconfig teenusenimi on lülitab ta sisse.

rpm -qa RPM süsteemides ja dpkg -l DPKG süsteemides näitavad, mis paketid on süsteemi paigaldatud.

Suur hulk erinevat infot on välja toodud ka spetsiaalsetesse failisüsteemidesse /proc ja /sys, mis tegelikult kettal ei olegi, nende kaudu saab vaadata ja mõnikord ka muuta süsteemi tuuma seadeid. Mingit tegelikku failisüsteeim seal ei ole küljes. Muudatuste tegemiseks on lihtsaim viis sysctl käsk, ning /etc/sysctl.conf faili saab muudatused salvestada.

/var/log kataloogis on systeemi logifailid, kuhu salvestavad oma infot väga erinevad programmid, veebiserver, epostiserver jne. See on standartne koht, kuhu logisid salvestatakse.

Kadunud paroolid

Esimene ja kõige tüüpilisem probleem on see, et keegi on unustanud oma parooli. See probleem on tegelikult hästi lihtne lahendada. Lihtsaim variant ongi kasutades LiveCD-d. Selle jaoks tuleb käivitada arvutis LiveCD ehk panna LiveCD arvutisse ja käivitada arvuti plaadilt. Nüüd, Linuxis on paroolid kirjas failis /etc/shadow. Faili formaat on lihtne: Iga kasutaja kohta on eraldi rida, kus on kirjas kasutajanimi, info parooli kohta (millal vahetatud, kaua kehtib jne) ning parooli räsi. Siin on näide:

mirjam:$1$VIrfFx9A$ZAezhQlg.bMwQxpo55eKm.:13478:0:99999:7:::
mythtv:!!:13487::::::

Parool on peale kasutajanime kohe kooloni järel ning lõpeb punktiga enne viimast koolonit. Kasutajal mirjam on olemas ilus parooliräsi, kuid kasutajal mythtv on räsi selline, mis ei vasta ühelegi paroolile. See peabki nii olema, kuna mythtv on süsteemne kasutaja programmi mythtv jaoks. Peale plaadilt käivitamist on arvutis /etc/shadow fail olemas, kuid see ei ole õige, vaid see on see, mis on kaasa pandud plaadile. Vajalik on leida hoopis süsteemi enda juurfailisüsteem, ning muudatused teha seal. Võimalik on seda teha kahte moodi:

  • Võtate faili ette tekstiredaktoriga ning kustutate ära kõik märgid kahe esimese kooloni vahel, mis siis meie rea puhul oleks $1$VIrfFx9A$ZAezhQlg.bMwQxpo55eKm.
  • kasutades chroot käsku vahetate parooli, see käiks näiteks nii:
chroot /kataloog
/bin/passwd kasutajanimi

Tegelikult on võimalik vahetada paroole ka ilma plaadita, sel juhul tuleb arvuti käivitada mingi muu käsuga alglaadimisprogrammiks, mis vaikimisi on /sbin/init. Kerneli käivitusparameetriks tuleb anda init=/bin/bash, seejärel haakida juurfailisüsteem kirjutamiseks nii: mount -o remount,rw /, seejärel vahetada parool kas passwd käsuga või faili redigeerides ja peale seda sünkroniseerida failisüsteem kettaga käsuga sync ja taaskäitada reboot käsuga arvuti või lihtsalt exit käsuga.

Vahemärkusena, selliste asjade eest saab ka arvutit kaitsta, selleks tuleb BIOSest panna ainukeseks käivitusseadmeks kõvaketas, panna BIOSele parool ning linuxist ka alglaadurile parool.

Linux ja bootloader

Linuxi käivitusprotsess käib nii: bootloader laeb kerneli ja initrd ning käivitab kerneli, kernel otsib üles natuke riistvara ja käivitab init programmi.

Bootloader on seega Linuxi käivitamiseks väga vajalik programm, millest esimene osa on kirjutatud kõvaketta bootsektorisse ehk 1. sektorisse, ülejäänud kuhugi Linuxi kõvakettale. Vahest juhtub ka nii, et seda bootloaderit on vaja uuesti teha, näiteks Windowsi install võib selle üle kirjutada või siis läheb rikki tarkvararaidi esimene ketas ning ka teine ketas tuleb teha käivitatavaks.

Linuxil on 2 peamist bootloaderit, Lilo on vanem ja leiab üha vähem kasutamist. Selle seadistustefail on /etc/lilo.conf, ning bootloaderi taaspaigaldamiseks tuleb jällegi õiges keskkonnas selles konkreetses Linuxis (võib kasutada ka chroot seest) kirjutada lihtsalt lilo.

Grub paigaldamiseks on käsk grub-install /dev/seadmenimi mis siis kirjutab jälle bootbloki üle ja paigaldab linuxi bootloaderi.

Lilo puhul tuleb lilo käsuga bootloader üle kirjutada peale igat lilo.conf faili seadistuste muutmist. Grub puhul seda vaja teha ei ole.

Lilo seadistused on failis /etc/lilo.conf, Grub seadistused /etc/grub.conf ja /boot/grub/menu.lst failides.

Windowsi lisamiseks Linuxi boot valikutesse tuleb lisada sellised read lilo.conf faili:

other=/dev/hda1
	label="windows"
	table=/dev/hda

Ja peale seda käivitada käsk lilo.

Grubis tuleb olenevalt süsteemist kas /etc/grub.conf või /boot/grub/menu.lst faili lisada

title windows
root (hd0,0)
makeactive
chainloader +1

Siinjuures tuleb tähele panna, et grub ei kasuta tavalisi Linuxi kettanimesid vaid oma ülesmärkimise süsteemi partitsioonide ja ketaste osas.

Seadmed ja Linux

Erinevate lisaseadmete käimaajamine Linuxiga võib olla nii hästi lihtne ja loomulik, kui ka keeruline ja tülikas, sõltuvalt seadmest ja tema toetusest. Näiteks USB-mälupulkade ja kõikide seadmete, mis toimivad USB-mälupulgana (kaamerad, mp3-mängijad, ...) lisamine on lihtne, tuleb vaid seade ühendada USB auku, ning graafilises keskkonnas kuvatakse info, et seade on lisatud ning küsitakse mis peale hakata. Ka tesktirežiimis saab Linuxis neid seadmeid kasutada, seal tuleb aga need käsitsi mingisse kataloogi haakida, näiteks nii: mkdir /mnt/usbpulk mount /dev/sda1 /mnt/usbpulk Kas tegemist on ikka /dev/sda1 seadmega, või on mingi muu seade seal taga, saab vaadata dmesg käsu väljundist, kus leitud seadme kohta ka infot kuvatakse.

Skännerid

Skännerite kasutamiseks on Linuxis selline programm nagu SANE ehk Scanner Access Now Eeasy. Programm sisaldab liideseid skännimiseks (xsane), programmeerimisliideseid teistele programmidele (kooka, OpenOffice.org, GIMP) ja draivereid. Sane projekti veebilehel [[2]] on info ka seadmete ühilduvuse kohta Sanega. Linuxiga üldiselt töötavad vaid need, mis on seal veebilehel ühilduvusnimekirjas olemas.

Mandrivas saab skännereid küllalt lihtsalt graafiliselt hallata drakscanner käsuga.

sane-find-scanners käsk leiab skännereid.

Printerid

Printerite kohta on Internetis küllalt mahukas andmebaas olemas, see asub aadressil [[3]]. Igas distributsioonis on olemas mingi printerite halduse vahend, millega saab printeried lisada, eemaldada ja seadistada. Draiverid on enamasti kaasas ja mingit lisatarkvara paigaldamist vaja pole.

Digifotokad

Digifotokate puhul on olukord üldiselt lihtne, kuna enamus neist toimivad USB-pulgana, mille kasutamine Linuxis on lihtne. Gphoto on tarkvara, mis võimaldab osadest kaameratest rohkem infot kätte saada, osade puhul aga teeb üldse suhtlemise võimalikuks (Canoni omad näiteks). Gphoto ise ei oma graafilist kasutajaliidest, selleks sobib hästi näiteks digikam nimeline programm mis võimaldab peale fotode tirimise ka hallata albumeid.

Veebikaamerad

Veebikaamerad enamasti Linuxis vaikimis ei tööta, vajalikud on lisadraiverid. Philips chipiga kaameratele on draiver pwc, paljudele teistele sobib gspcav1, [[4]]

ID-kaart

ID-kaardi jaoks on vaja mitmeid erinevaid komponente. Pcsc-lite on draivereid kontrolliv programm, mis korraldab omavahelist suhtlust kaartide ja rakenduste vahel. OpenCT on 1 pakett draivereid, mis aga minu arusaamist mööda eriti ei tööta. OpenSC on vahevara, mis korraldab suhtlust kas läbi openct kaardiga või läbi pcsc. Ccid on CCID kaartide kasutamise draiver, mille abiga toimivad Linuxis uued odavad ID-kaardilugejad ja ka Elioni stardikomplekti lugejad.

ID-kaardi seadistamiseks häid ja mugavaid graafilisi vahendeid pole, see tuleb teha kõik käsurealt.

Toimiva peavad PCSC deemon, draiver seal PCSC deemonis, Opensc ja Mozillasse tuleb lisada opensc mozilla plugin. Eestikeelsed juhendid on sellisel aadressil, mis on ID-kaardi Linuxiarendajate koduleht: [[5]]

Kasulik on meeles pidada, et opensc-tool -l näitab leitud kaardilugemisseadmeid.

Draiverid ja Linux

Nii nagu Windowsiga, on ka Linuxiga draiverite osas selline seis, et on

  • suur osa draivereid on OSis kohe sees, kõik asjad on kaasas ja probleeme ei ole
  • osadele seadmetele draiverid puuduvad
  • Draiverid on olemas, kuid nende käimaajamine nõuab tööd

Linuxi ja firmade tehtud draiverite lihtsat läbisaamis raskendab fakt, et Linuxi tuumal ei ole standardiseeritud ja alati toimivat ABIt ega isegi mitte APIt. Ehk seega, kes tahab, et tema draiver igas Linuxis töötaks peab pidevalt kaasas käima Linuxi tuuma arendusega ning uuendama seda siis kui vaja. See muudab aga raskeks iseseisvate Linuxi tuumas toimivate draiverite loomise.

Vabavaralised draiverid selle all eriti ei kannata, kuna kui nad on viisakalt kirjutatud lisatakse nad kernelisse ning edaspidi hoiavad silma peal juba Linuxi arendajad. Linuxi arendajad on välja kuulutanud ka pakkumise, et nad kirjutavad seadmetele ise draiverid, kui tuuakse neile seadmete spetsifikatsioonid.

Kõige tüüpilisemad probleemid on seotud NVidia ja ATI videokaartidega, mille kõigi võimaluste kasutamiseks on vajalikud vastavate firmade draiverite paigaldused. Mõlemal leiab draiverite paigalduskomplektid kodulehelt.

Mõlemate puhul on vaja koos draiveritega paigaldada ka kompilaator ja Linuxi tuuma ehk kerneli arenduspaketid (kernel-source või kernel-devel) paketid vastavalt distributsioonile.

Peale linuxi tuuma uuendust tuleb draiverid uuesti paigaldada, kuna kerneli moodulid on tehtud konkreetse kerneli versiooni jaoks. Nii Nvidial kui ATI-l on olemas ka oma utiliidid X-windowsi lihtsamaks seadistamiseks, vastavalt siis: nvidia-xconfig, aticonfig.

Mandriva kommertsversioon valdab neid draivereid, ning sinna on kõik need ka kenasti integreeritud seadistusvahenditesse.

Mitmed firmad teevad aga ka ise koostööd Linuxi arendajatega, Intel on ennast näidanud väga tugevana selles osas. Inteli võrgu- ja wifikaartidel on draiverid Linuxis olemas, samuti videokaartidel.

Codecid ja vidinad

Internetis on väga paljude jaoks oluliseks saanud kiirsuhtlus. Ka Linuxil on olemas populaarsemate kiirsuhtluskeskkondade kliendid, sh:

  • Skype: Skype teeb ise oma klienti linuxile, saadaval www.skype.com
  • MSN: MSN jaoks on olemas hulgaliselt kliente, näiteks: amsn, pidgin (varasem nimi gaim), kopete. Amsn ja kopete toetavad ka veebikaamerate kasutamist.

Paljude veebisaitide kasutamiseks ei piisa ainult brauserist, palju nö "aktiivset sisu" on realiseeritud ka Javas või Flashis, samuti on kasutusel ka erinevad videoformaadid ja mängijad.

[[6]] on saadaval Flash player erinevatele distributsioonidele pakendatud kujul. Mandriva kommertsversiooni on Flash ka lisatud.

Adobe Reader on ka Linuxile olemas, kuigi suurt vajadust selle järele tegelikult ei ole, kuna KPDF ja teised PDF lugejad näitavad PDF-e tegelikult väga hästi.

  • Adobe Readeri saab tirida [[7]] veebilehelt.
  • RealPlayeri saab tirida [[8]] veebilehelt.
  • Java saab tirida [[9]] veebilehelt.

Jällegi, Mandriva kommertsversioonis on kõik need paketid olemas ja kenasti integreeritud ka süsteemi. Teiste asjade puhul tuleb silmas pidada, et vastavate pluginate .so failid oleks olemas ka /usr/lib/mozilla/plugins kataloogis, kust firefox nad üles leiab.

Automatix on selline vahend, millega saab paigaldada selliseid asju Ubuntusse. Automatixi leiab [[10]].

Lisaks nendele rakendustele on veel hulk selliseid asju, mille levitamine võib olla tetud riikides illegaalne. Näiteks USAs on kasutusel tarkvarapatendid, mille tõttu võib osutuda ühe või teise tarkvaratüki levitajal sellega seotud patentide litsenseerimine patentide valdajalt. Mandrivas on selliste pakettide jaoks allikas nimega PLF, milles on siis tarkvara mille legaalsus eelkõige USAs on küsitav. Tegemist ei ole otseselt piraattarkvaraga vaid just vahenditega, mis on ühes või teises maailma nurgas keelatud. Eelkõige on need seotud multimeediaga.

Selliste paketteide paigaldamiseks on lihtsaim viis Mandrivas lisada PLF-allikad, [[11]] veebilehelt leiab selle jaoks juhendid. Ära tasub märkida ka w32codecs pakk, mis sisaldab Windowsi jaoks loodud vabu Codeceid, mis on siis kokku kogutud ja üheks paketiks pandud. Antud paketti osakavad kasutada Linuxi meediafailide mängija xine ja mplayer.

Veebist videote näitamiseks tasub paigaldada selline pakett nagu mplayerplugin, mis oskab siis näidata veebilehtedesse põimitud WMV ja ka teistes videoformaadis videod.

Elekter ja selle säästmine

Linux toetab ACPIt ja selle abil elektri säästmist. ACPI võib aga teatud tingimustel ka probleeme tekitada, kui on tegemist konkreetses arvutis imeliku ACPI realisatsiooniga. Sellisel juhul saab ACPI ka välja lülitada, lisades bootloaderi seadistustesse kerneli käivitusparameetrite reale kas acpi=off või acpi=ht

Esimene neist lülitab ACPI välja, teine lubab seda kasutada vaid hyperthreadingu seadistamiseks.

Linuxis on olemas ka erinevaid deemoneid mis vaatavad erinevaid parameetreid (aku täituvus, elektrijuhtme olemasolu, käimasolevad programmid) ning sellele vastavalt reguleerivad elektrikulu, eelkõige siis protsessori kiirust.

Nendeks programmideks on näiteks powersave ja cpufreqd. Programmide vaikeseadistused on enamasti mõistlikud, tuleb lihtsalt kontrollida et ta sisse oleks lülitatud.

Rakenduste seadistused

Aeg-ajalt võib tekkida ka probleeme konkreetse rakendustega, mis oma seadistused rikuvad ning seejärel korrektselt ei tööta. Linuxi süsteemsed seadistused on valdavalt kataloogis /etc ja seal alamkataloogides, samuti /usr/share/apps. Omad seadistused on oma kodukataloogis, valdavalt punktiga algavates kataloogides. rpm -ql paketinimi dpkg -L paketinimi näitavad paketti kuuluvaid faile, mille hulgas on ka seadistustefailid, vastavalt siis RPM ja DEB süsteemides.

Partitsioonid ja kettad

Kui arvuti kõvakettal on Linux, on seal enamasti vähemalt 2 partitsiooni: 1 neist on swap ala ehk siis koht, kuhu Linux kirjutab asju mälust mida on otstarbekam millegi muuga asendada, ning andmekettad. Neid võib olla ka mitu, väga sageli on näiteks jaotatud veel partitsioonideks - juurkataloog ja eraldi kasutajate kodukataloogid /home kataloogi all, või siis eraldi /boot partitsioon (BIOS probleemide ennetamiseks).

Ketast saab jaga Linuxis mitut moodi: 1 neist on traditsiooniline, PC partitsioonidega süsteem, kus kettale on võimalik teha kuni 64 partitsiooni ning teine on LVM ehk Logical Volume Managemnt. Veel on Linuxil olemas väga hästi toimiv tarkvaraline RAID. Tarkvaraline raid võimaldab mitmeid RAID tasemeid: 0, 1 ja 5. Tarkvaraline RAID on odav ja hea viis ennetada kõige tüüpilisemat andmekaoga lõppevad arvutiriistvara probleemi, kõvaketta tõrget.

Paljudel tänapäevastel emaplaatidel on mingi nö RAID kaasas, kuid enamasti on see tegelikult realiseeritud tarkvaras ning vajalik vaid Windowsile, mis ei suuda oma käivitusketast tarkvararaidiga tööle panna.

Linuxi kernel leiab ise üles kõikidel seadmetel olevad partitsioonid, volumed ja RAID kettad, probleeme võib tekkida vaid juhul, kui on kasutusel mingi selline kettakontroller, mida konkreetne Linux ei tunne.

Iga ketta, partitsiooni ja volume kohta on Linuxis omaette fail, millega opereerides saab siis temaga töötada. Ketaste nimed on kujul /dev/hd? või /dev/sd? kus küsimärgi asemel käib mingi täht, esimene IDE ketas on siis /dev/hda, teine /dev/hdb jne. Partitsioonide nimetamiseks lisatakswe veel 1 number, ehk siis esimese ketta esimene partitsioon on faili /dev/hda1 küljes, esimene extended partitsioon on näiteks /dev/hda5.

Millised partitsioonid on süsteem üles leidnud, saab vaadata /proc/partitions failist, näiteks käsuga

cat /proc/partitions. 

Linuxi tarkvaraRAIDi volumete kohta leiab infot /proc/mdstat failisüsteemist, kus on peale kõige muu ka kirjas see, kui toimib RAID resünkroniseerimine või on mõni RAID ketas puudu. Seadmefailid on kujul /dev/md? kus küsimärgi asemele käib mingi number. Mdstat fail näeb välja nii:

Personalities : [raid1]
read_ahead 1024 sectors
Event: 2
md0 : active raid1 hda2[0] hdd2[1]
	19864256 blocks [2/2] [UU]

	md1 : active raid1 hda1[0] hdd1[1]
	      104320 blocks [2/2] [UU]
	
	unused devices: <none>

LVM volumed on kujul /dev/VGNAME/LVNAME, kus VGNAME on volume grupi nimi ja LVNAME on Logical volume name.

Linuxis on kasutuses hulk erinevaid partitsioonikoode, mis siis on erinevateks otstareveteks. 0x82 on Linuxi saaleala (swap), 0x83 on Linuxi tavaline failisüsteem, 0xFD on Linux Raid autodetect, 0x8e on Linux LVM. Üldiselt pole partitsiooni tüübid Linuxis väga olulised, enamasti tuvastatkse ketta partitsiooni sisu ikkagi signatuuri järgi, mitte numbri järgi. Kuid õigete partitsiooninumbrite kasutamine aitab kaasa süsteemihaldusvahendite korrektsele tööle ja lihtsustab süsteemi haldamist.

Nendel partitsioonidel võivad Linuxis olla veel erinevad failisüsteemid. Linux toetab väga erinevaid failisüsteeme, alates FAT/NTFS, lõpetades Veritas FS ja Solarise UFSiga.

Kõiki neid loomulikult samas arvutis ei kasutata, kuid üldiselt on Linux selline universaalne süsteem, millega saab suvalise teise süsteemi kettalt andmeid kätte ja ära kopeerida.

Linuxis enimkasutatavaim failisüsteem on ext3, selle süsteemiga on tehtud enamus Linuxi paigaldustest. Ext3 on Linuxis on olnud juba kaua, see süsteem on väga stabiilne; näiteks RedHat Enerprise Linuxis on vaid Ext3 toetatud tavaliste failisüsteemide tegemisel.

Järgmised populaarsuselt on Reiserfs, Jfs ja XFS. Neil kõigil on olemas oma tootjafirma või firma kes on vastava koodi Linuxisse annetanud, neil on kõigil erinevad omadused ja isemoodi kettaformaat.

Õnneks pole vaja meelde jätta kõikide jaoks eraldi käske, käsud on kõigi puhul samad. Vajalikdu käsud on fsck ja mkfs, mkfs puhul tuleb mkfs -t failisüsteeminimi öelda failisüsteemi tüüp, fsck tunneb ise ära.

Kui süsteem on käivitatud mingilt LiveCD plaadilt siis ei pruugi olla teada, mis partitsioon on see, kus on juurfailisüsteem. See on aga oluline, kuna sellest algab Linuxi failipuu, ning sinna külge tulevad kõik muud failisüsteemid. Kui partitsioone pole palju võib neid proovida oma süsteemi külge haakida ning seejärel vaadata kas on olemas kataloog etc ning selle sees fail fstab. Kui see on olemas, on üsna kindel, et tegemist on juurfailisüsteemiga.

Failis /etc/fstab on kirjas info selle kohta milline failisüsteem millise kataloogi külge käib. Näiteks minu arvutis on selline fstab:

/dev/sda6 / ext3 noatime 1 1
/dev/sr0 /mnt/cdrom auto umask=0,users,iocharset=utf8,noauto,ro,exec 0 0
/dev/sda1 /mnt/windows ntfs umask=0,nls=utf8,ro 0 0
none /proc proc defaults 0 0
/dev/sda5 swap swap defaults 0 0

Siit on näha siis, et juurfailisüsteem on seadmel /dev/sda6 (esimesel SCSI kettal teine extended partitsioon. /dev/sr0 saab haakida /mnt/cdrom kataloogi. /dev/sda1 (esimene ketas, esimene partitsioon on NTFS ja haagitakse /mnt/windows, veel on /proc failisüsteem ja /dev/sda5 on saaleala.

Mis failis täpselt kirjas on, võib erineda, nimelt toetab Linux haakimist väga erinevate parameetrite järgi, mitte ainult seadmefaili järgi. Haakida võib ka failisüsteemi unikaalse identifikaatori ehk UUID järgi, Labeli ehk failisüsteemi märgi järgi jne.

Veel on /etc/fstabis kirjas ka automaatselt haagitavad võrgufailisüsteemid, samuti saab Linuxis haakida katalooge ühest kohast teise, ka selle saab kirja panna sinna faili.

Kui olete arvuti käivitanud plaadilt ja vaja on külge saada kõik failisüsteemid, siis kõige lihtsam viis on nii: otsite üles juurfailisüsteemi, haagite selle näiteks kataloogi /a ning seejärel kirjutate nii:

chroot /a /bin/bash
mount -a

Esimene käsk kahest kinnistab /bin/bash kataloogi /a nii, et see protsess ei näe ja ei tea midagi sealt väljastpoolt, seega käivitub ta nö virtuaalselt kõvakettal olevas süsteemis. Teine käsk võtab külge kõik /etc/fstab failis olevad failisüsteemid.

/etc/fstab (aga ka teistes Linuxi seadistustefailides) on väga oluline, et faili süntaks oleks korrektne, näiteks fstab failis peab iga rida olema täielik ning sisaldama korrektseid võtmeid. Peale selle faili muutmist on soovitav seda faili kontrollida, näiteks proovides haakida või muuta haakeseadeid muudetud rea kohal käsuga

mount -o remount /kataloog

Katkised failisüsteemid

Ka linuxi failisüsteemid lähevad katki. Näiteks XFS ja JFS puhul olek kohanud seda, et need on läinud rikki tarkvaravigade tõttu, ext3 puhul mina seda näinud pole, enamasti lähevad failisüsteemid rikki ikkagi mingi riistvaravea tõttu, elektrikõikumiste tõttu, mis on põhjustanud kõvakettale vale info kirjutamise vms.

Tavaliselt suudab Linux oma failisüsteemi ise ära parandada, nimelt on Linuxi failisüsteemid žurnaalivad, mis tähendab, et esmalt salvestatakse muudatuste kirjeldused ning siis andmed ise kõvakettale. Nii saab muudatused alati tagasi võtta ning failisüsteem jääb toimisvasse seisu.

Kuid alati see ei aita, tõsisemate rikete puhul võib olla rikutud ka failisüsteemi logi, ning siis tuleb kasutada spetsiaalseid tööriistu, mis failisüsteemi ära parandaks. Selline käsk on fsck.

Kasutamine käib nii:

fsck -Y /dev/seadmenimi

-Y võti tähendab, et vastatakse muudatused tehakse ära ilma küsimata. NB haagitud failisüsteemid, mis on parasjagu kasutusel on niikuinii mingil määral "mittekorrektses" seisus, kuna kõik andmed ei pruugi olla kettale kirjutatud. samuti võivad nad töö käigus muutuda. Seetõttu kasutuses failisüsteeme ei saa kontrollida fsck käsuga. Kui on aga vaja kontrollida failisüsteemi, mis on kasutuses tuleb ta haakida enne ainult lugemiseks käsuga

mount -o remount,ro /kataloog.

Enamasti on selliset asja vaja vaid juurfailisüsteemi haakimisel, kui plaati pole käepärast. Kui Linux ei saa ise failisüsteemi parandamisega hakkama tuleb enamasti selline kiri:

/usr: UNEXPECTED INCONSISTENCY; RUN fsck MANUALLY.
(i.e., without -a or -p options)
[FAILED]

*** An error occurred during the file system check.
*** Dropping you to a shell; the system will reboot
*** when you leave the shell.
Give root password for maintenance:


Üks võimalik viga on ka see, et mingil põhjusel saab partitsioonitabel rikutud. Sellisel puhul aitab lihtne programm nimega testdisk, mis otsib üles kõik kadunud partitsioonide algused failisüsteemide signatuuride järgi. Testdisk tumneb palju erinevaid ja mitte ainult Linuxi failisüsteeme ning seetõttu võib abiks olla igasuguse süsteemi parandamisel.

Kui nüüd kettaseade on katki ja ikkagi sooviks midagi kätte saada, siis ei maksa hakata fsck rakendama katkise ketta peal, see võib asja veel hullemaks muuta. Esimene liigutus tuleks sel puhul teha selline, et terve ketta image kuhugi ära kopeerida. näiteks sellise käsuga:

dd if=/dev/hdX of=failinimi bs=512 conv=noerror,sync

See käsk siis kopeerib kogu hdX kõvaketta sisu faili nimega failinimi ning kui ei saa lugeda, siis täidab vastava ala nullidega. Seejärel tasub juba toimetada selle kettaimagega. Lihtsam võib isegi see olla, kui mitte kopeerida dd käsuga tervet ketast vaid ainult vajalikud partitsioonid. Terve kettaimage seest tuleb veel failisüsteemid ka üles leida.

Muud rikked, mida siin pole kajastatud

Kindlasti võib Linux ka teistmoodi rikki minna, kui siia on kirja pandud. Linux on avatud süsteem ja tõenäoliselt leiad internetist abi. Algatuseks tasub alati veateated lüüa Googlesse ning vaadata vastused. Kui see ei aita, tasub proovida kontakteerumist tõrkuva tarkvaratüki autoritega internetis läbi projekti kodulehe.

Vaata ka