To poglavje obravnava najpomembnejše stvari, ki jih morate vedeti o sistemskem upravljanju pod Linuxom, in vključuje dovolj podrobnosti, da začnete udobno uporabljati sistem. Da bi bilo to poglavje obvladljivo, pokriva le osnove in izpušča številne pomembne podrobnosti. Knjiga Linux System Administrator's Guide (SAG) Larsa Wirzeniusa (glejte dodatek A) govori o občutno več podrobnostih v zvezi s sistemskim upravljanjem. Pomagala vam bo bolje razumeti, kako stvari delujejo skupaj in se medsebojno navezujejo. Vsaj površno preletite SAG, da boste vedeli, kaj vsebuje in kakšne vrste pomoč lahko pričakujete od nje.
Linux loči med različnimi uporabniki. Določeno je, kaj lahko storijo drug drugemu in sistemu. Dovoljenja datotek so urejena tako, da običajni uporabniki ne morejo brisati ali spreminjati datotek v imenikih, kot so /bin in /usr/bin. Večina uporabnikov ščiti svoje lastne datoteke z ustreznimi dovoljenji, da drugi uporabniki ne morejo dostopati do njih ali jih spreminjati. (Nezaželeno je, da bi lahko kdorkoli bral tuja ljubezenska pisma.) Vsakemu uporabniku je dan račun, ki vključuje uporabniško ime in domači imenik. Poleg tega obstajajo posebni, sistemsko definirani računi, ki imajo posebne privilegije. Najpomembnejši od teh je korenski račun, ki ga uporablja upravitelj sistema. Po dogovoru je sistemski upravitelj uporabnik, imenovan root.
Za uporabnika root ni omejitev. Lahko bere, spreminja ali pobriše katerokoli datoteko na sistemu, spreminja dovoljenja in lastništvo katerekoli datoteke in poganja posebne programe, kot so tisti, ki razdelijo trdi pogon ali ustvarijo datotečne sisteme. Osnovna zamisel tega je, da se oseba, ki skrbi za sistem, prijavi v sistem kot root ter izvaja opravila, ki jih ne bi mogla izvajati kot običajni uporabnik. Ker lahko root naredi karkoli, je mogoče narediti napake s katastrofalnimi posledicami.
Če navaden uporabnik nenamenoma poskuša pobrisati vse datoteke v imeniku /etc, mu sistem tega ne bo dovolil. Če pa isto poskusi root, se sistem sploh ne bo pritožil. Ko uporabljate sistem Linux kot root, je zelo lahko pokvariti sistem. Najboljši način za preprečitev nesreč je:
Predstavljajte si račun root kot poseben čarovniški klobuk, ki vam daje ogromno moč, s katero lahko, z zamahom svoje roke, uničite celotna mesta. Dobra zamisel je, da ste malce previdni pri tem, kar počnete s svojimi rokami. Ker je lahko zamahniti z vašimi rokami na uničevalen način, kljub čudovitemu občutku ni dobra zamisel, da bi nosili čarovniški klobuk takrat, ko to ni potrebno.
O odgovornostih sistemskega upravitelja bomo spregovorili podrobneje
od strani naprej.
Nekateri ljudje zaganjajo Linux z diskete, ki vsebuje kopijo jedra za Linux. To jedro ima vkodirano korensko particijo Linuxa, zato ve, kje mora iskati korenski datotečni sistem. Takšne vrste je na primer disketa, ki jo Slackware ustvari med namestitvijo.
Za ustvarjanje vaše lastne zagonske diskete poiščite sliko jedra na vašem trdem disku. Morala bi biti v datoteki /vmlinuz ali /vmlinux. V nekaterih namestitvah je /vmlinuz simbolna povezava na pravo jedro, zato boste morda morali izslediti jedro s sledenjem povezavam.
Ko enkrat veste, kje je jedro, nastavite korensko napravo slike jedra na ime vaše korenske particije Linuxa z ukazom rdev. Skladnja za uporabo tega ukaza je
rdev ime-jedra korenska-napravakjer je ime-jedra ime slike jedra in korenska-naprava ime korenske particije Linuxa. Na primer, za nastavitev korenske naprave v jedru /vmlinuz na /dev/hda2, uporabite ukaz
# rdev /vmlinuz /dev/hda2Ukaz rdev lahko nastavlja tudi druge izbire v jedru, kot je privzeti način SVGA za uporabo ob zagonu. Ukaz
# rdev -hizpiše sporočilo s pomočjo na zaslon. Ko usposobite korensko napravo (angl. root device), preprosto prekopirajte sliko jedra na disketo. Pred kopiranjem podatkov na katerokoli disketo je vendarle dobra zamisel, da uporabite pripomoček MS-DOS-a FORMAT.COM ali program fdformat v Linuxu za formatiranje diskete. To zapiše informacije o sektorjih in sledeh, ki so ustrezne za kapaciteto diskete.
Disketni formati in gonilniki naprav zanje so nadalje obravnavani,
začenši s stranjo .
Datoteke gonilnikov naprav, kot je bilo že omenjeno, počivajo v imeniku /dev. Za prepis jedra iz datoteke /vmlinuz na disketo v /dev/fd0 uporabite ukaz
# cp /vmlinuz /dev/fd0Ta disketa bi zdaj morala pognati Linux.
LILO je ločen zagonski nalagalnik, ki počiva na vašem trdem disku. Izvede se le, ko zaganja sistem s trdega pogona in lahko samodejno zažene Linux iz slike jedra, shranjene tam.
LILO se lahko uporablja kot prvostopenjski zagonski nalagalnik za precej operacijskih sistemov, kar vam omogoča, da ob zagonu izberete operacijski sistem kot je Linux ali MS-DOS. Z uporabo LILO se zažene privzeti operacijski sistem, razen če med zagonskim zaporedjem pritisnete Shift ali je podano navodilo za pozornik prompt v datoteki lilo.conf. V obeh primerih vam bo priskrbljen zagonski pozornik, kjer vpišete ime operacijskega sistema, ki naj se požene (kot ,,linux`` ali ,,msdos``). Če v zagonskem pozorniku pritisnete Tab, se prikaže seznam operacijskih sistemov, ki jih pozna sistem LILO.
Najpreprostejši način za namestitev nalagalnika LILO je ureditev nastavitvene datoteke /etc/lilo.conf. Ukaz
# /sbin/liloprepiše spremenjeno nastavitev lilo.conf na zagonski sektor trdega diska in se mora pognati vsakič, ko spremenite lilo.conf.
Nastavitvena datoteka za LILO vsebuje ,,kitico`` za vsak operacijski sistem, ki ga želite zagnati. Najboljši način za demonstracijo tega je s primerom. Datoteka lilo.conf spodaj je za sistem, ki ima korensko particijo Linuxa na /dev/hda1 in particijo za MS-DOS na /dev/hda2.
# Naroči LILU naj spremeni zagonski zapis na /dev/hda (prvi # trdi pogon ne-SCSI). Če ne zaganjate iz pogona /dev/hda, # spremenite naslednjo vrstico. boot = /dev/hda # Nastavi zdrav grafični način. vga = normal # Nastavi premor v mili-sekundah. To je čas, ki ga imate # za pritisk tipke 'SHIFT', da se prikaže pozornik LILO:, # če niste določili navodila 'prompt'. delay = 60 # Ime zagonskega nalagalnika. Ni razloga za spreminjanje # tega, razen če ste resno hekali po nalagalniku LILO. install = /boot/boot.b # To prisili LILO, da vas vpraša, kateri OS bi radi pognali. # Tipka 'TAB' v pozorniku LILO: bo izpisala seznam OS-ov, # dostopnih za zagon, glede na imena, našteta v spodnjem # navodilu 'label='. prompt # Naj LILO izvede nekatere optimalizacije. compact # Kitica za korensko particijo Linuxa na /dev/hda1. image = /vmlinuz # Lokacija jedra label = linux # Ime OS-a (za zagonski menu LILA) root = /dev/hda1 # Lokacija korenske particije read-only # Priklopi le za branje # Kitica za particijo MSDOS-a na /dev/hda2. other = /dev/hda2 # Lokacija particije table = /dev/hda # Lokacija particijske tabele za /dev/hda2 label = msdos # Ime OS-a (za zagonski menu)
Kitica o prvem operacijskem sistemu določa privzeti operacijski sistem, ki naj ga LILO zažene. Vedite tudi, da ni razloga, da bi z rdev določili korensko particijo v sliki jedra, če uporabljate vrstico ,,root =``. LILO to nastavi ob zagonu sistema.
Namestitveni program za Microsoft Windows '95 prepiše zagonski upravljalnik LILO. Če boste po namestitvi LILA namestili na vašem sistemu Windows '95, se prepričajte, da boste najprej ustvarili zagonsko disketo (glejte razdelek 4.2). Z zagonsko disketo lahko poženete Linux in ponovno namestite LILO, ko se namestitev Windows '95 konča. To se naredi preprosto kot root z vnosom ukaza /sbin/lilo, enako kot v zgornjem koraku. Particije z Windows '95 se lahko nastavijo tako, da se zaženejo z nalagalnikom LILO z uporabo enakih vnosov v lilo.conf kot tistih za zagon s particije MS-DOS.
Več podatkov o nalagalniku LILO boste našli v Linux FAQ (glejte dodatek A), vključno s tem, kako uporabljati LILO za zagon z zagonskim upravljalnikom Boot Manager sistema OS/2.
Zaustavitev sistema Linux je lahko zapletena. Nikoli ne bi smeli preprosto izključiti elektrike ali pritisniti tipke za reset. Jedro shranjuje informacije o branju/pisanju podatkov na disk v vmesnih pomnilnikih (angl. buffers) v RAM-u. Če ponovno zaženete sistem, ne da bi dali jedru priložnost, da zapiše svoje vmesne pomnilnike na disk, lahko pokvarite datotečne sisteme.
Med zaustavitvijo se upoštevajo tudi drugi previdnostni ukrepi. Vsem procesom se pošlje signal, ki jim omogoča milo smrt (tako da najprej zapišejo in zaprejo vse datoteke, na primer). Datotečni sistemi se zaradi varnosti odklopijo. Če želite, lahko sistem tudi opozori uporabnike, da se sistem ustavlja, in jim da priložnost za odjavo.
Najpreprostejši način za ustavitev sistema je z ukazom shutdown. Format tega ukaza je
shutdown čas opozoriloArgument čas je čas zaustavitve sistema v obliki uu:mm:ss in opozorilo je sporočilo, ki se pred zaustavitvijo prikaže na vseh uporabniških terminalih. Alternativno lahko določite čas kot ,,now`` (zdaj!) za takojšnjo zaustavitev. Izbira -r pomeni ukazu shutdown ponoven zagon sistema po njegovi zaustavitvi.
Na primer, za ustavitev in ponoven zagon sistema ob 20h uporabite ukaz
# shutdown -r 20:00
Za takojšnjo zaustavitev sistema brez opozorilnih sporočil ali čakanja lahko uporabite ukaz halt. Ukaz halt je uporaben, če ste edini, ki uporablja sistem, in bi radi zaustavili in izključili stroj.
¤ Ne izključujte napetosti ali zaganjajte sistema, dokler ne vidite sporočila, da je sistem zaustavljen:
The system is halted
Zelo je pomembno, da sistem ustavite ,,na čist način``, z uporabo ukaza shutdown ali halt. Na nekaterih sistemih bo pritisk Ctrl-Alt-Del prestrežen in bo pognal shutdown. Na drugih sistemih bo uporaba ,,triprstnega pozdrava`` takoj ponovno zagnala sistem in povzročila katastrofo.
Ko se zažene, init ostaja tiho v ozadju, pregleduje, in če je potrebno, spreminja tekoče stanje sistema. Obstaja veliko podrobnosti, na katere mora gledati program init. Ta opravila so definirana v datoteki /etc/inittab. Primer datoteke /etc/inittab je prikazan spodaj.
¤ Nepravilno spreminjanje datoteke /etc/inittab vam lahko onemogoči prijavo v vaš sistem. Kot minimum, ko spreminjate datoteko /etc/inittab, imejte v roki izvod originala, pravilno datoteko in zagonsko/korensko rešilno disketo, če slučajno naredite napako.
# # inittab Ta datoteka opisuje, kako naj bi procesi INIT # nastavili sistem za delovanje določenega # načina delovanja (angl. run-level). # # Različica: @(#)inittab 2.04 17/05/93 MvS # 2.10 02/10/95 PV # # Avtor: Miquel van Smoorenburg, # <miquels@drinkel.nl.mugnet.org> # Spremenil: Patrick J. Volkerding, # <volkerdi@ftp.cdrom.com> # Manjše popravke naredil: # Robert Kiesling, <kiesling@terracom.net> # # Privzeti način delovanja. id:3:initdefault: # Sistemska inicializacija (teče, ko se sistem zaganja). si:S:sysinit:/etc/rc.d/rc.S # Skript za preklop v enouporabniški način (način delovanja 1). su:1S:wait:/etc/rc.d/rc.K # Skript za preklop v večuporabniški način. rc:23456:wait:/etc/rc.d/rc.M # Kaj storiti ob Ctrl-Alt-Del ca::ctrlaltdel:/sbin/shutdown -t5 -rfn now # Način delovanja 0 zaustavi sistem. l0:0:wait:/etc/rc.d/rc.0 # Način delovanja 6 ponovno zažene sistem. l6:6:wait:/etc/rc.d/rc.6 # Kaj storiti, ko zmanjka električne napetosti (izključitev # sistema v enouporabniški način). pf::powerfail:/sbin/shutdown -f +5 "ZMANJKUJE NAPETOSTI" # Če se napetost vrne pred ugasnitvijo (angl. shutdown), # prekliči tekoče ugašanje. pg:0123456:powerokwait:/sbin/shutdown -c "NAPETOST SE JE VRNILA" # Če se napetost vrne v enouporabniškem načinu, se vrni # v večuporabniški način. ps:S:powerokwait:/sbin/init 5 # Getty-ji v večuporabniškem načinu na konzolah in zaporednih # linijah. # # POZOR POZOR POZOR - Nastavite to na vaš getty, sicer se ne # boste mogli prijaviti!! # # Pazite: za 'agetty' uporabljate obliko hitrost-linije, linija. # Za 'getty_ps' uporabljate linija, hitrost-linije in tudi # uporabite 'gettydefs' c1:1235:respawn:/sbin/agetty 38400 tty1 linux c2:1235:respawn:/sbin/agetty 38400 tty2 linux c3:1235:respawn:/sbin/agetty 38400 tty3 linux c4:1235:respawn:/sbin/agetty 38400 tty4 linux c5:1235:respawn:/sbin/agetty 38400 tty5 linux c6:12345:respawn:/sbin/agetty 38400 tty6 linux # Zaporedne linije # s1:12345:respawn:/sbin/agetty -L 9600 ttyS0 vt100 s2:12345:respawn:/sbin/agetty -L 9600 ttyS1 vt100 # Klicne linije d1:12345:respawn:/sbin/agetty -mt60 38400,19200,9600,2400,1200 ttyS0 vt100 #d2:12345:respawn:/sbin/agetty -mt60 38400,19200,9600,2400,1200 ttyS1 vt100 # Način delovanja 4 je bil včasih sistem le z X-window, # dokler nismo ugotovili, da vrže init v zanko, ki vseskozi # vzdržuje vašo povprečno obremenjenost vsaj na 1. Torej je # zdaj odprta prijavna seja z getty na tty6. Upajmo, da ne # bo nihče opazil. ;^) # Morda tako ali tako ni slabo imeti vsaj eno tekstovno konzolo, # za vsak slučaj, če se kaj zgodi z X. x1:4:wait:/etc/rc.d/rc.4 # Konec datoteke /etc/inittab
Ob začetku ta /etc/inittab požene šest navideznih konzol, prijavni pozornik za modem, priključen na /dev/ttyS0, in prijavni pozornik za znakovni terminal, povezan po zaporedni liniji RS-232 na /dev/ttyS1.
Na kratko, init stopa skozi vrsto načinov delovanja (angl. run levels), ki ustrezajo različnim delovnim stanjem sistema. V način delovanja 1 se vstopi takoj, ko se sistem zažene, načina delovanja 2 in 3 sta običajna, večopravilna delovna načina sistema, način delovanja 4 požene X Window System s prikaznim upravljalnikom xdm in način delovanja 6 ponovno zažene sistem. Načini delovanja, povezani z vsakim ukazom, so druge postavke v vsaki vrstici datoteke /etc/inittab.
Na primer, vrstica
s2:12345:respawn:/sbin/agetty -L 9600 ttyS1 vt100
bo vzdrževala prijavni pozornik na zaporednem terminalu za načine delovanja 1-5. Postavka ,,s2`` pred prvim dvopičjem je simbolni identifikator, ki ga interno uporablja init. Postavka respawn je ključna beseda programa init, ki se pogosto uporablja v povezavi z zaporednimi terminali. Če po določenem časovnem obdobju program agetty, ki poraja terminalski prijavni pozornik, ne prejme vhoda s terminala, se čas programu izteče in izvajanje se prekine. Postavka ,,respawn`` pove init-u, naj spet izvede agetty ter tako zagotovi, da je na terminalu vedno prijavni pozornik, ne glede na to, ali je kdo prijavljen ali ne. Ostali parametri se predajo neposredno programu agetty in mu povedo, naj porodi prijavno ukazno lupino, podatkovno hitrost zaporedne linije, zaporedno napravo in terminalski tip, kot so definirani v datoteki /etc/termcap ali /etc/terminfo.
Program /sbin/agetty ureja mnoge podrobnosti, povezane s terminalskim vhodom/izhodom sistema. Obstaja nekaj različic, ki se uporabljajo na sistemih Linux. Te vključujejo mgetty, psgetty ali preprosto getty.
V primeru vrstice v /etc/inittab
d1:12345:respawn:/sbin/agetty -mt60 38400,19200,9600,2400,1200 ttyS0 vt100ki dovoljuje uporabnikom prijavo po modemu, priključenem na zaporedno linijo /dev/ttyS0, so parametri za /sbin/agetty enaki ,,-mt60``, kar dovoljuje sistemu, da se sprehodi skozi vse hitrosti modema, ki jih lahko uporablja klicoči, ko se prijavlja v sistem, in da ustavi /sbin/agetty, če po 60 sekundah še ni povezave. Temu se reče dogovarjanje povezave. Podprte hitrosti modema so naštete tudi v ukazni vrstici, kot tudi zaporedna linija za uporabo in terminalski tip. Seveda, oba modema morata podpirati hitrost prenosa podatkov, za katero se stroja končno dogovorita.
V tem razdelku smo prezrli mnoge pomembne podrobnosti. Opravila, ki jih vzdržuje /etc/inittab, bi lahko sestavljala svojo knjigo. Za nadaljnje informacije so dobre začetne točke strani priročnika o programih init in agetty in spis Serial HOWTO Dokumentacijskega projekta za Linux. Dostopen je iz virov, naštetih v dodatku A.
Še eno opravilo za upravitelja sistema je skrb za datotečne sisteme. Večino tega sestavljajo periodična preverjanja datotečnih sistemov, da ne vsebujejo napak ali pokvarjenih datotek. Veliko sistemov Linux tudi samodejno preverja datotečne sisteme v času zagona.
Preden je datotečni sistem dostopen, mora biti priklopljen na
imenik. Na primer, če imate datotečni sistem na disketi, ga morate
priklopiti pod imenikom, kot je /mnt, če želite dostopati do
datotek na disketi (glejte stran ). Po priklopu
datotečnega sistema se vse datoteke datotečnega sistema prikažejo v
tem imeniku. Po odklopu datotečnega sistema bo imenik (v tem primeru
/mnt) prazen.
Enako velja tudi za datotečne sisteme na trdem disku. Sistem samodejno priklopi datotečne sisteme na vašem trdem disku v času zagona. Tako imenovani ,,korenski datotečni sistem`` se priklopi na imenik /. Če imate poseben datotečni sistem za /usr, se priklopi na /usr. Če imate le korenski datotečni sistem, bodo vse datoteke (vključno s tistimi iz /usr) obstajale na tem datotečnem sistemu.
Ukaza mount in umount (ne unmount) se uporabljata za priklop in odklop datotečnih sistemov. Ukaz
mount -avse samodejno požene iz izvedljivega skripta /etc/rc v času zagona ali iz skripta /etc/rc.d/boot (glejte stran
# naprava imenik tip izbire /dev/hda2 / ext2 defaults /dev/hda3 /usr ext2 defaults /dev/hda4 none swap sw /proc /proc proc none
Prvo polje, naprava, je ime particije za priklop. Drugo polje
je točka priklopa. Tretje polje je tip datotečnega sistema kot
ext2 (za ext2fs) ali minix (za datotečne sisteme
vrste Minix). Tabela 4.1 našteva
različne tipe datotečnih sistemov, ki se lahko priklopijo v
Linux.4.1 Morda
vsi ti tipi datotečnih sistemov ne bodo dostopni na vašem sistemu, ker
mora biti v jedro prevedena podpora zanje. Glejte
stran za informacije o gradnji jedra.
Zadnje polje v datoteki fstab so izbire za priklop z mount. To je običajno nastavljeno na privzeto vrednost, defaults.
Izmenjalne particije so vključene v datoteko /etc/fstab. Kot imenik za priklop imajo navedeno vrednost none, za tip pa swap. Ukaz swapon -a, ki se izvede iz /etc/rc ali /etc/init.d/boot, se uporablja za vklop izmenjevanja na vseh izmenjalnih napravah, ki so naštete v /etc/fstab.
Datoteka /etc/fstab vsebuje poseben vnos za datotečni sistem
/proc. Kot je opisano na strani , se
datotečni sistem /proc uporablja za shranjevanje informacije
o sistemskih procesih, dostopnem pomnilniku in tako naprej. Če
datotečni sistem /proc ni priklopljen, ukazi, kot je
ps, ne bodo delovali.
¤ Ukaz mount lahko uporablja le root. To zagotavlja varnost sistema. Saj ne želite, da običajni uporabniki priklapljajo in odklapljajo datotečne sisteme ob vsakem preblisku. Obstaja precej dostopnih programskih paketov, ki dovoljujejo nekorenskim uporabnikom priklapljanje in odklapljanje datotečnih sistemov, posebej disket, ne da bi bila prizadeta varnost sistema.
Ukaz mount -av pravzaprav priklopi vse datotečne sisteme, razen korenskega (v zgornji tabeli, /dev/hda2). Korenski datotečni sistem samodejno priklopi že jedro v času zagona.
Namesto uporabe mount -av lahko priklopite datotečni sistem na roke. Ukaz
# mount -t ext2 /dev/hda3 /usrje ekvivalenten priklopu datotečnega sistema z vnosom za /dev/hda3 v zgornji zgledni datoteki /etc/fstab.
Ta imena naprav uporabljajo tudi pogoni CD-ROM in tračne enote, ki uporabljajo razširjeni vmesnik pogona IDE/ATAPI.
Mnogi stroji, vključno z osebnimi računalniškimi delovnimi postajami zgornjega razreda in stroji, ki tečejo na procesorju Alpha izdelovalca Digital Equipment Corporation, pa uporabljajo vmesnik SCSI (angl. Small Computer System Interface, sistemski vmesnik za male računalnike). Poimenovalni dogovori za naprave SCSI se zaradi večje prožnosti naslavljanja SCSI nekako razlikujejo od zgornjih. Prvi trdi disk SCSI na sistemu je /dev/sda, drugi disk SCSI je /dev/sdb in tako naprej. Seznam pogostih naprav SCSI je podan v tabeli 4.3.
Upoštevajte, da se CD-ROM-i in tračni pogoni imenujejo drugače kot
trdi diski SCSI. Odstranljivi mediji SCSI, kot je pogon Iomega Zip,
upoštevajo poimenovalne dogovore za ne-odstranljive pogone SCSI.
Uporaba pogona Zip za izdelovanje varnostnih kopij vaših podatkov je
opisana od strani naprej.
Tokovni tračni pogoni,
kot so tisti, ki berejo in pišejo magnetne trakove formatov QIC-02,
QIC-40 in QIC-80, imajo svoj lastni nabor imen naprav, ki so
opisane na strani .
Disketni pogoni uporabljajo spet drugo shemo poimenovanja, ki je
opisana na strani .
Navadno je dobro vsake toliko časa pregledati vaše datotečne sisteme, ali vsebujejo pokvarjene datoteke. Nekateri sistemi samodejno preverjajo datotečne sisteme v času zagona (z ustreznimi ukazi v /etc/rc ali /etc/init.d/boot).
Ukaz za preverjanje datotečnega sistema je odvisen od vrste datotečnega sistema. Za datotečne sisteme ext2fs (najpogosteje uporabljano vrsto) je ta ukaz e2fsck. Na primer, ukaz
# e2fsck -av /dev/hda2preveri datotečni sistem ext2fs na /dev/hda2 in samodejno odpravi vsakršne napake.
Navadno je koristno odklopiti datotečni sistem pred njegovim preverjanjem, to je celo potrebno, če ga namerava e2fsck popravljati. Ukaz
# umount /dev/hda2odklopi datotečni sistem na /dev/hda2. Izjema je korenski datotečni sistem, ki ga ni mogoče odklopiti. Za preverjanje korenskega datotečnega sistema, ko je odklopljen, bi morali uporabiti vzdrževalno zagonsko/korensko disketo (glejte stran
Drugi tipi datotečnih sistemov uporabljajo drugačne oblike ukaza e2fsck, kot sta efsck in xfsck. Na nekaterih sistemih lahko preprosto uporabite ukaz fsck, ki samodejno ugotovi tip datotečnega sistema in izvede ustrezni ukaz.
¤ Če e2fsck poroča, da je izvedel popravila na priklopljenem datotečnem sistemu, morate takoj ponovno zagnati računalnik. Izdati morate ukaz shutdown -r s katerim se izvede ponovni zagon. To dovoljuje sistemu, da spet uskladi informacije o datotečnem sistemu, ki ga je e2fsck spremenil.
Datotečnega sistema /proc ni treba nikoli preveriti na ta način. /proc je pomnilniški datotečni sistem in ga neposredno upravlja jedro.
Namesto da bi rezervirali posebno particijo za izmenjalni prostor, lahko uporabljate izmenjalno datoteko (angl. swap file). Vendar morate namestiti Linux in doseči, da vse deluje, preden ustvarite izmenjalno datoteko.
Ko je Linux nameščen, lahko uporabite naslednje ukaze za ustvarjanje izmenjalne datoteke. Spodnji ukaz ustvari izmenjalno datoteko velikosti 8208 blokov (približno 8 MB).
# dd if=/dev/zero of=/swap bs=1024 count=8208Ta ukaz ustvari izmenjalno datoteko /swap. Parameter ,,count=`` je velikost izmenjalne datoteke v blokih. Velikost bloka smo določili s parametrom ,,bs=``.
# mkswap /swap 8208Ta ukaz inicializira izmenjevalno datoteko. Spet, nadomestite ime in velikost izmenjevalne datoteke z ustreznimi vrednostmi.
# syncZdaj sistem izmenjuje podatke med pomnilnikom in diskom na datoteko /swap. Ukaz sync zagotavlja, da je datoteka res zapisana na disk.
# swapon /swap
Precej slaba stran uporabe izmenjalne datoteke je, da se ves dostop do izmenjalne datoteke opravlja preko datotečnega sistema. To pomeni, da si bloki, ki sestavljajo izmenjalno datoteko, morda ne bodo blizu. Izvajanje morda ne bo tako hitro kot pri izmenjalni particiji, kjer bloki vedno ležijo skupaj in se V/I zahteve sklicujejo neposredno na napravo.
Še ena slaba stran velike izmenjalne datoteke je, da je večja nevarnost okvare datotečnega sistema, če gre kaj narobe. Ločevanje običajnih datotečnih sistemov in izmenjalnih particij preprečuje, da bi se to zgodilo.
Izmenjalne datoteke so lahko uporabne, če morate začasno uporabljati več izmenjalnega prostora. Če prevajate ogromen program in bi radi nekako pospešili stvari, lahko ustvarite začasno izmenjalno datoteko in jo uporabljate kot dodatek k običajnemu izmenjevalnemu prostoru.
Za odstranitev izmenjalne datoteke najprej uporabite swapoff kot v ukazu
# swapoff /swapPotem lahko pobrišete datoteko.
# rm /swap
Vsaka izmenjevalna datoteka ali particija je lahko velika do 16 megabajtov, vendar lahko na vašem sistemu hkrati uporabljate do 8 izmenjevalnih datotek ali particij.
Tudi če ste edini uporabnik na vašem sistemu, je pomembno razumeti vidike upravljanja z uporabniki pod Linuxom. Imeti bi morali vsaj račun zase (drugega kot root) za opravljanje večine vašega dela.
¤ Vsak uporabnik bi moral imeti svoj lastni račun. Le izjemoma je sprejemljivo, da si več ljudi deli isti račun. Vprašljiva je varnost, saj računi edinstveno istovetijo uporabnike sistema. Imeti morate možnost slediti, kaj kdo počne.
Vse te informacije so shranjene v datoteki /etc/passwd. Vsaka vrstica te datoteke ima obliko
uporabniško ime:šifrirano geslo:UID:GID:polno ime:domači imenik:prijavna lupinaPrimer bi lahko bil
kiwi:Xv8Q981g71oKK:102:100:Laura Poole:/home/kiwi:/bin/bashV tem primeru je prvo polje, ,,kiwi``, uporabniško ime.
Naslednje polje, ,,Xv8Q981g71oKK``, je šifrirano geslo. Gesla se na sistemu ne shranjujejo v obliki, primerni za človeško branje. Geslo se šifrira s seboj kot skrivnim ključem. Z drugimi besedami, če želi kdo odšifrirati geslo, ga mora poznati. Ta oblika šifriranja je zmerno varna.
Nekateri sistemi uporabljajo ,,senčna gesla`` (angl. shadow passwords), pri katerih se informacije o geslu shranjujejo v datoteki /etc/shadow. Ker lahko /etc/passwd bere ves svet, datoteka /etc/shadow priskrbi določeno stopnjo dodatne varnosti, saj so dovoljenja za dostop do nje precej bolj omejena. Senčna gesla ponujajo tudi druge lastnosti, kot je prenehanje veljavnosti gesla po določenem časovnem obdobju.
Tretje polje, ,,102``, je UID. Ta številka mora biti različna za vsakega uporabnika. Četrto polje, ,,100``, je GID. Ta uporabnica pripada skupini, oštevilčeni s 100. Informacije o skupinah se shranjujejo v datoteki /etc/group. Glejte razdelek 4.7.5 za več informacij.
Peto polje je polno ime uporabnice, ,,Laura Poole``. Zadnji dve polji sta uporabničin domači imenik (/home/kiwi) in njena prijavna ukazna lupina (/bin/bash), po vrsti. Ni nujno, da ima uporabničin domači imenik isto ime, kot je uporabniško ime. To le pomaga identificirati imenik.
Ob dodajanju uporabnikov je treba narediti več korakov. Najprej se uporabniku dodeli zapis v /etc/passwd z enkratnim uporabniškim imenom in UID. Določena morajo biti polja o GID, uporabniškem imenu in drugih informacijah. Ustvarjen mora biti uporabnikov domači imenik, dovoljenja za ta imenik pa morajo biti nastavljena tako, da je uporabnik lastnik imenika. V domači imenik morajo biti nameščene inicializacijske datoteke za ukazno lupino in na sistemu morajo biti nastavljene druge datoteke (na primer čakalni imenik za prihajajočo uporabnikovo e-pošto).
Dodajanje uporabnikov na roko ni težko, a če poganjate sistem z mnogimi uporabniki, je zelo lahko kaj pozabiti. Najpreprostejši način za dodajanje uporabnikov je uporaba interaktivnega programa, ki samodejno osveži vse sistemske datoteke. Ime tega programa je useradd ali adduser, odvisno od nameščenega programja.
Ukaz adduser vzame potrebne informacije iz datoteke /etc/adduser.conf, ki definira standardno, privzeto nastavitev za vse nove uporabnike.
Tipična datoteka /etc/adduser.conf je prikazana spodaj.
# /etc/adduser.conf: nastavitev programa `adduser'. # Za popolno dokumentacijo glejte adduser(8) in adduser.conf(5). # Spremenljivka DSHELL določa privzeto prijavno ukazno lupino # na vašem sistemu. DSHELL=/bin/bash # Spremenljivka DHOME določa imenik, ki vsebuje domače imenike # uporabnikov. DHOME=/home # Če je GROUPHOMES "yes", potem bodo domači imeniki uporabniki # ustvarjani kot /home/ime-skupine/uporabnik. GROUPHOMES=no # Če je LETTERHOMES "yes", potem bodo ustvarjeni domači imeniki # imeli dodaten imenik - prvo črko uporabniškega imena. Na primer: # /home/u/uporabnik. LETTERHOMES=no # Spremenljivka SKEL določa imenik, ki vsebuje "skeletne" # uporabniške datoteke; z drugimi besedami, datoteke, kot je # vzorčni skript .profile, ki se bodo prepisale v domači # imenik novega uporabnika, ko je ta ustvarjen. SKEL=/etc/skel # Nabor UID-ov za dinamično dodeljevane upravljalne in sistemske # račune sega od FIRST_SYSTEM_UID do vključno LAST_SYSTEM_UID. FIRST_SYSTEM_UID=100 LAST_SYSTEM_UID=999 # Nabor UID-ov za dinamično dodeljevane uporabniške račune # sega od FIRST_UID do vključno LAST_UID. FIRST_UID=1000 LAST_UID=29999 # Spremenljivka USERGROUPS je lahko nastavljena na "yes" ali "no". # Če je "yes", je privzeto vsakemu ustvarjenemu uporabniku dodeljena # lastna skupina za uporabo in njegov domači imenik bo g+s. # Če je "no", bo vsak novi uporabnik priključen skupini, katere # gid je USERS_GID (glejte spodaj). USERGROUPS=yes # Če je USERGROUPS "no", potem mora biti USERS_GID GID skupine # `users' (ali druge primerne skupine) na vašem sistemu. USERS_GID=100 # Če je nastavljen QUOTAUSER, bo za novega uporabnika določena # privzeta kvota z ukazom `edquota -p QUOTAUSER newuser' QUOTAUSER=""
Poleg definiranja že nastavljenih spremenljivk, ki jih uporablja ukaz adduser, /etc/adduser.conf določa tudi, kje so shranjene privzete sistemske nastavitvene datoteke za vsakega uporabnika. V tem primeru se nahajajo v imeniku /etc/skel, kot definira zgornja vrstica SKEL=. Datoteke, ki so postavljene v ta imenik, bo ukaz adduser samodejno namestil v domači imenik novega uporabnika, podobno kot sistemske, privzete datoteke .profile, .tcshrc ali .bashrc.
Uporabnike brišemo z ukazom userdel ali deluser, odvisno od programja, nameščenega na sistem.
Če bi radi začasno ,,onemogočili`` uporabniku, da bi se prijavil v sistem, ne da bi izbrisali njegov račun, preprosto pripnite zvezdico (,,*``) v polje za geslo v datoteki /etc/passwd. Na primer, sprememba vnosa za kiwi v /etc/passwd
kiwi:*Xv8Q981g71oKK:102:100:Laura Poole:/home/kiwi:/bin/bashonemogoča kiwi, da bi se prijavila v sistem.
Ko ste ustvarili uporabnika, boste morda želeli zanj spremeniti atribute, kot so domači imenik ali geslo. Najpreprostejši način za to je neposredna sprememba vrednosti v datoteki /etc/passwd. Za nastavitev uporabniškega gesla uporabite passwd. Ukaz
# passwd larrybo spremenil larry-jevo geslo. Le root lahko na tak način spreminja gesla drugih uporabnikov. Navadni uporabniki lahko spreminjajo le svoja lastna gesla.
Na nekaterih sistemih ukaza chfn in chsh omogočata uporabnikom, da si nastavijo svoje polno ime in atribute prijavne lupine. Če ne, mora ta atributa zanje spremeniti sistemski upravitelj.
Kot smo že omenili zgoraj, vsak uporabnik pripada eni ali več skupinam. Edini pravi namen povezovanja v skupine se nanaša na dovoljenja za uporabo datotek. Kot se spomnite iz razdelka 3.10, ima vsaka datoteka ,,skupinsko lastništvo`` in nabor skupinskih dovoljenj, ki definirajo, kako lahko uporabniki iz te skupine dostopajo do datoteke.
Obstaja več skupin, ki jih definira sistem, kot so bin, mail in sys. Uporabniki ne bi smeli pripadati nobeni od teh skupin; uporabljajo se za sistemska dovoljenja datotek. Namesto tega bi morali uporabniki pripadati posamezni skupini, kot je users. Vzdržujete lahko tudi več skupin za uporabnike, kot studenti, osebje in predavatelji.
Datoteka /etc/group vsebuje informacije o skupinah. Oblika vsake vrstice je
ime skupine:geslo:GID:drugi članiNekatere zgledne skupine so lahko:
root:*:0:Prva skupina, root, je posebna sistemska skupina, rezervirana za račun root. Naslednja skupina, users, je za običajne uporabnike. Ima GID 100. Uporabnika mdw in larry sta člana te skupine. Spomnite se, da je v /etc/passwd vsakemu uporabniku prirejena privzeta številka GID. Vendar lahko uporabniki pripadajo več kot eni skupini, tako da so njihova imena našteta v vrsticah drugih skupin v datoteki /etc/group. Ukaz groups našteva, do katerih skupin imate dostop.
users:*:100:mdw,larry
guest:*:200:
other:*:250:kiwi
Tretja skupina, guest, je za gostujoče uporabnike in other za ,,druge`` uporabnike. Uporabnica kiwi ima dostop tudi do te skupine, poleg tega je privzeto že članica skupine users, saj je njena številka GID enaka 100.
Polje ,,geslo`` v datoteki /etc/group se včasih uporablja za nastavljanje gesla za skupinski dostop. To je le redko potrebno. Za zavarovanje uporabnikov, da se ne bi spremenili v privilegirane skupine (z ukazom newgroup), nastavite polje z geslom na ,,*``.
Za dodajanje skupin na vaš sistem lahko uporabljate addgroup ali groupadd. Navadno je preprosteje, če sami dodate vnose v datoteko /etc/group, saj za skupino ni potrebno nobeno drugo nastavljanje. Skupino izbrišete preprosto tako, da izbrišete njen vnos v datoteki /etc/group.
Ker ima sistemski upravitelj tako veliko moči in odgovornosti, nekateri uporabniki izkoristijo prvo priložnost, ko se lahko prijavijo kot root na sistemu Linux ali drugje, da zlorabijo privilegije korenskega uporabnika. Poznal sem tako imenovane ,,sistemske upravitelje``, ki so brali pošto drugih uporabnikov, brisali uporabniške datoteke, ne da bi o tem opozorili njihove lastnike in se v splošnem obnašali kot otroci, ko jim je dana tako silna ,,igrača``.
Ker ima upravitelj takšno moč nad sistemov, je potrebna določena stopnja zrelosti in samonadzora, da uporablja račun root, za kar je namenjen - za tek sistema. Obstaja nepisani zakonik časti, ki obstaja med sistemskim upraviteljem in uporabniki na sistemu. Kako bi se počutili, če bi vaš sistemski upravitelj bral vaša e-pisma ali pregledoval vaše datoteke? Še vedno ni vplivnega pravnega precedensa za elektronsko zasebnost na večuporabniških računalniških sistemih. Na sistemih Unix ima uporabnik root možnost, da obide vse varnostne in zasebnostne mehanizme sistema. Pomembno je, da sistemski upravitelj s svojimi uporabniki razvije zaupanja vredno zvezo. To želimo še posebej poudariti.
Sistemski upravitelji lahko izberejo dva principa, ko imajo opravka z zlonamernimi uporabniki: lahko so paranoični ali zaupljivi. Paranoični sistemski upravitelj navadno povzroči več škode, kot jo prepreči. Eden mojih priljubljenih izrekov je, ,,Nikoli ne pripisujte zlobi česarkoli, kar lahko pripišete neumnosti``. Z drugimi besedami, večina uporabnikov nima zmožnosti ali znanja, da bi zares škodovali sistemu. V devetdesetih odstotkih, kadar uporabnik povzroča težave na sistemu (denimo, zapolnjuje uporabniško particijo z velikimi datotekami ali poganja več izvodov velikega programa), se uporabnik preprosto ne zaveda, da ustvarja problem. Izsledil sem uporabnike, ki so povzročali ogromno težav, vendar so preprosto delovali iz nevednosti - ne iz zlobe.
Ko imate opraviti z uporabniki, ki povzročajo potencialne težave, ne bodite obtoževalni. Breme dokaza leži na vas; se pravi, še vedno velja pravilo, da je uporabnik ,,nedolžen, dokler se ne dokaže, da je kriv``. Najbolje je, da se preprosto pogovorite z uporabnikom in ga povprašate o težavah, namesto da bi se spuščali v spore. Zadnja stvar, ki jo želite, je, da bi se zamerili uporabniku. To bi sprožilo veliko sumov o vas - sistemskem upravitelju - da morda sistema ne poganjate pravilno. Če uporabnik misli, da mu ne zaupate ali da ga ne marate, vas lahko obtoži izbrisa datotek ali kršitve zasebnosti na sistemu. To vsekakor ni položaj, v katerem bi se radi znašli.
Če ugotovite, da uporabnik poskuša ,,vlamljati`` ali drugače namenoma škodovati sistemu, ne vrnite zlobnega obnašanja z lastno zlobo. Namesto tega ga posvarite, vendar bodite prožni. V veliko primerih lahko ujamete uporabnika ,,na delu`` škodovanja sistemu. Posvarite ga. Povejte mu, da naj se to ne zgodi več. Vendar če ga spet ujamete, da dela škodo, bodite popolnoma prepričani, da je bilo to namenoma. Ne želim niti začeti opisovati številnih primerov, kjer se je zdelo, da uporabnik povzroča težave, v resnici pa je šlo za nezgodo ali mojo lastno napako.
Najboljša pot za tek sistema ni z železno roko. Tako se morda priganja vojsko, a Linux ni zasnovan za takšno disciplino. Razumno se zdi zapisati nekaj preprostih in prožnih vodnikov. Manj kot imate pravil, manj verjetno je, da bodo kršena. Tudi če so vaša pravila popolnoma razumna in jasna, jih bodo uporabniki občasno še vedno prekršili, ne da bi to nameravali. To je posebej res za nove uporabnike, ki se uvajajo v sistem. Ni povsem očitno, da ne bi smeli pobrati gigabajta datotek in jih poslati po pošti vsem uporabnikom sistema. Uporabniki potrebujejo pomoč, da razumejo pravila in zakaj so ta tukaj.
Če določite pravila za uporabo vašega sistema, se prepričajte tudi, da je pojasnilo za določen napotek jasno. Če ne, bodo uporabniki iznašli vse vrste ustvarjalnih načinov, da se bodo izognili pravilu in ne bodo vedeli, da ga kršijo.
Ne razlagamo vam do zadnje podrobnosti, kako poganjajte vaš sistem. To je odvisno od tega, kako ga uporabljate. Če imate veliko uporabnikov, so stvari zelo drugačne, kot če jih imate le malo ali če ste edini uporabnik na sistemu. Vendar je vedno koristno - v vsakem primeru - da razumete, kaj zares pomeni to, da ste sistemski upravitelj.
Če ste sistemski upravitelj, še ne pomeni, da ste čarovnik Linuxa. Obstaja veliko upraviteljev, ki vedo zelo malo o Linuxu. Podobno, veliko ,,običajnih`` uporabnikov ve več o Linuxu kot katerikoli sistemski upravitelj. To, da ste sistemski upravitelj, vam tudi ne dovoljuje, da stresate zlobo na uporabnike. Če sistem dovoljuje upraviteljem brkljanje po uporabniških datotekah, to še ne pomeni, da imajo pravico to tudi početi.
Biti sistemski upravitelj ni velika reč. Ni pomembno, ali je vaš sistem drobcena 386 ali superračunalnik Cray. Poganjanje sistema je enako ne glede na velikost. S poznavanjem korenskega gesla si ne boste prislužili denarja ali slave. Omogočilo vam bo, da vzdržujete sistem in poskrbite, da bo tekel. To je to.
Preden spregovorimo o varnostnih kopijah (angl. backups), moramo uvesti orodja, ki se uporabljajo za arhiviranje datotek na sistemih Unix.
Najpogosteje se uporablja za arhiviranje datotek ukaz tar. Njegova ukazna skladnja je
tar izbire datotekekjer je izbire seznam ukazov in izbir za tar in datoteke seznam datotek za dodajanje ali izločitev iz arhiva.
Na primer, ukaz
# tar cvf rezerva.tar /etczapakira vse datoteke v imeniku /etc v arhivsko datoteko rezerva.tar. Prvi argument ukaza tar, ,,cvf``, je ,,ukaz`` tar-u. Izbira c naroči tar-u, da naj ustvari novo arhivno datoteko. Izbira v prisili tar, da uporablja gostobesedni način, izpisujoč vsako ime datoteke, ko se arhivira. Izbira ,,f`` pove tar-u, da je naslednji argument rezerva.tar ime arhivne datoteke, ki naj se ustvari. Ostanek argumentov ukaza tar predstavljajo imena datotek in imenikov, ki naj se dodajo v arhiv.
Ukaz
# tar xvf rezerva.tarbo odarhiviral arhivno datoteko rezerva.tar v trenutni imenik.
¤ Stare datoteke z enakim imenom so prepisane, ko se datoteke odtarajo v obstoječi imenik.
Preden odarhivirate datoteke v formatu za tar, je pomembno vedeti, kje bi morale biti datoteke odpakirane. Denimo, da arhivirate naslednje datoteke: /etc/hosts, /etc/group in /etc/passwd. Če uporabite ukaz
# tar cvf rezerva.tar /etc/hosts /etc/group /etc/passwdje ime imenika /etc/ dodano pred vsakim imenom datoteke. Za odtaranje datotek na pravilno mesto uporabite
# cd /saj so datoteke odtarane z imenom poti, shranjenim v arhivni datoteki.
# tar xvf rezerva.tar
Vendar če arhivirate datoteke z ukazom
# cd /etcse ime imenika ne shrani v arhivno datoteko. Zato morate pred odtaranjem datotek narediti ,,cd /etc``. Kot lahko vidite, način izdelave datoteke tar določa veliko razliko, kje jo morate odtarati. Ukaz
# tar cvf rezerva.tar hosts group passwd
# tar tvf rezerva.tarse lahko uporablja za prikaz izpisa datotek v arhivu, ne da bi jih odtarali. Vidite lahko imenik, relativno na katerega so datoteke v arhivu shranjene, in odtarate arhiv na pravo mesto.
Za razliko od arhivnih programov za MS-DOS, tar samodejno ne stiska datotek, ko jih arhivira. Če arhivirate dve enomegabajtni datoteki, bo končna datoteka .tar velika malo več kot dva megabajta. Ukaz gzip stisne podatke v datoteki (ki ni nujno datoteka .tar). Ukaz
# gzip -9 rezerva.tarstisne datoteko rezerva.tar v datoteko rezerva.tar.gz. Izbira -9 pove gzip-u, da naj uporabi največji faktor stiskanja.
Ukaz gunzip se lahko uporablja za razširjanje gzipane datoteke. Enako lahko uporabljate tudi ,,gzip -d``.
Pripomoček gzip je relativno novo orodje v skupnosti Unixa. Mnogo let se je namesto njega uporabljal ukaz compress. Vendar zaradi različnih dejavnikov, vključno s pričkanji o patentu za algoritem stiskanja podatkov programa compress in dejstva, da je gzip veliko bolj učinkovit, compress počasi izginja.
Datoteke, ki jih obdela compress, se končajo z ,,.Z``. Datoteka rezerva.tar.Z je s compressom stisnjena različica datoteke rezerva.tar, medtem ko je rezerva.tar.gz, z gzipom stisnjena različica4.2. Ukaz uncompress se uporablja za razširitev datoteke, zgoščene s compress-om. Je ekvivalenten ukazu ,,compress -d.`` Tudi ukaz gunzip ve, kako mora obravnavati datoteke, stisnjene s compress-om.
Za arhiviranje skupine datotek in stiskanje rezultata uporabite ukaza:
# tar cvf rezerva.tar /etcRezultat je rezerva.tar.gz. Za odpakiranje te datoteke uporabite obratna ukaza:
# gzip -9 rezerva.tar
# gunzip rezerva.tar.gzVedno se prepričajte, da ste v pravilnem imeniku, preden odpakirate datoteko tar.
# tar xvf rezerva.tar
Z nekaj spretnosti lahko vse to opravite tudi v eni vrstici.
# tar cvf - /etc | gzip -9c > rezerva.tar.gzTukaj pošiljamo datoteko tar na ,,-``, kar označuje standardni izhod iz programa tar. Ta se po cevi usmeri na standardni vhod za program gzip, ki stisne prihajajočo datoteko tar. Rezultat se shrani v datoteko rezerva.tar.gz. Izbira -c naroči gzip-u, naj pošlje svoj izhod na standardni izhod, ki ga preusmerimo v rezerva.tar.gz.
En sam ukaz za odpakiranje te arhivske datoteke bi bil:
# gunzip -c rezerva.tar.gz | tar xvf -Spet, gunzip razširi vsebino datoteke rezerva.tar.gz in pošlje rezultat, datoteko tar, na standardni izhod. Ta se po cevi prenese do tar-a, ki prebere ,,-``, tokrat se ta znak nanaša na standardni vhod za tar.
Na srečo ukaz tar vključuje tudi izbiro z za samodejno sprotno zgoščevanje/razširitev datotek z uporabo algoritma zgoščevanja gzip.
Ukaz
# tar cvfz rezerva.tar.gz /etcje ekvivalenten ukazoma
# tar cvf rezerva.tar /etcKot lahko uporabite tudi ukaz
# gzip rezerva.tar
# tar xvfz rezerva.tar.Znamesto ukazov
# uncompress rezerva.tar.Z
# tar xvf rezerva.tar
Poglejte strani priročnika za tar in gzip za podrobnejša navodila.
Kot je bilo omenjeno, morajo biti diskete formatirane z programom FORMAT.COM za MS-DOS ali programom fdformat za Linux. Ta zapiše informacije o sektorjih in sledeh, ki so primerne, glede na zmogljivost diskete.
Nekaj imen naprav in formatov disket, ki so dostopne v Linuxu, je podanih v tabeli 4.4.
Naprave, ki se začenjajo s fd0, so prvi disketni pogon, ki se v MS-DOS-u imenuje A:. Imena datotek gonilnikov druge diskovne naprave se začenjajo s fd1. V splošnem jedro Linuxa lahko zazna format diskete, ki je že bila formatirana - lahko preprosto uporabite /dev/fd0 in zaznavanje formata prepustite sistemu. A ko prvič uporabite popolnoma nove, neformatirane diskete, boste morda morali uporabiti določitve gonilnika, če sistem ne more zaznati tipa disket.
Popoln seznam naprav Linuxa z imeni gonilnikov teh naprav je podan v spisu Linux Allocated Devices H. Petra Anvina (glejte dodatek A).
Diskete lahko uporabljate tudi za hranjenje posameznih datotečnih sistemov in z mount priklopite disketo, da dostopate do podatkov na njej. Glejte razdelek 4.9.4.
# tar cvfzM /dev/fd0 /bo naredil popolno varnostno kopijo vašega sistema z uporabo disketnega pogona /dev/fd0. Izbira ,,M`` ukaza tar dovoljuje, da se varnostne kopije raztezajo prek več delov; se pravi, ko je ena disketa polna, bo tar prosil za naslednjo. Ukaz
# tar xvfzM /dev/fd0obnovi celotno varnostno kopijo. Ta metoda se lahko uporablja tudi s tračno enoto, priključeno na vaš sistem. Glejte razdelek 4.9.3.
Obstajajo različni drugi programi za izdelavo večdelnih varnostnih kopij; morda bo priročen program backflops, ki ga najdete na tsx-11.mit.edu.
Izdelava popolne varnostne kopije sistema z disketami je lahko časovno in zmogljivostno potratna. Mnogi sistemski upravitelji uporabljajo politiko diferenčnih varnostnih kopij (angl. incremental backup). Vsak mesec se naredi popolno varnostno kopijo, vsak teden pa se naredi le varnostna kopija tistih datotek, ki so se spremenile v zadnjem tednu. Če sesujete sistem sredi meseca, lahko v tem primeru preprosto obnovite zadnjo popolno mesečno varnostno kopijo in potem po potrebi obnovite zadnje tedenske varnostne kopije.
Ukaz find je uporaben za iskanje datotek, ki so bile spremenjene po določenem datumu. Veliko skriptov za upravljanje diferenčnih varnostnih kopij lahko najdete na metalab.unc.edu.
Izdelava varnostnih kopij na pogon Zip je podobna izdelavi varnostnih kopij na diskete, a ker imajo diski Zip največkrat kapaciteto 98 MB, je mogoče uporabiti en sam priklopljen disk Zip za en sam varnostni arhiv.
Pogoni Zip so dostopni s tremi različnimi strojnimi vmesniki:
vmesnikom SCSI, vmesnikom IDE in vmesnikom vzporednih vrat PPA.
Podpora za pogon Zip ni vključena kot že prevedena izbira v Linuxu, a
se lahko določi ob gradnji prirejenega jedra za vaš sistem.
Stran opisuje namestitev gonilnika za
napravo Iomega Zip.
Pogona Zip z vmesnikoma SCSI in PPA uporabljata vmesnik SCSI in
sledita poimenovalnim dogovorom za druge naprave SCSI, ki so opisani
na strani .
Diski Zip so navadno vnaprej formatirani z datotečnim sistemom za MS-DOS. Lahko uporabljate bodisi obstoječi datotečni sistem MS-DOS, ki mora biti podprt v vašem jedru Linuxa, bodisi mke2fs ali podoben program za zapis datotečnega sistema za Linux na disk.
Disk Zip, ko je priklopljen kot prva naprava SCSI, je /dev/sda4.
# mount /dev/sda4 /mnt
Pogosto je udobno priskrbeti dodatno točko priklopa za datotečne sisteme diska Zip; na primer /zip. Naslednji koraki, ki morajo biti izvedeni kot root, bodo ustvarili točko priklopa:
# mkdir /zipPotem lahko uporabljate imenik /zip za priklop datotečnega sistema diska Zip.
# chmod 0755 /zip
Pisanje arhivov na diske Zip je podobno arhiviranju na diskete. Za arhiviranje in stiskanje imenika /etc na priklopljen pogon Zip bi bil uporabljen ukaz
# tar zcvf /zip/etc.tgz /etc
Ta ukaz se lahko izvede iz poljubnega imenika, saj določa absolutna imena poti. Arhivno ime etc.tgz je potrebno, če pogon Zip vsebuje datotečni sistem za MS-DOS, saj morajo tedaj imeti vse datoteke, zapisane na disk, imena, ki zadoščajo poimenovanju datotek tipa 8+3 v MS-DOS-u; sicer bo ime datoteke krajšano.
Podobno, izločanje tega arhiva zahteva ukaza
# cd /
# tar zxvf /zip/etc.tgz
Za ustvarjanje, na primer, datotečnega sistema ext2 na pogonu Zip bi podali ukaz (za nepriklopljeni disk Zip)
# mke2fs /dev/sda4
S pogonom Zip, priklopljenim na ta način, z datotečnim sistemom ext2, je mogoče napraviti varnostne kopije celotnih datotečnih sistemov z enim samim ukazom.
# tar zcvf /zip/local.tar.gz /usr/local
Upoštevajte, da je izdelava varnostnih kopij z ukazom tar v veliko primerih še vedno bolj zaželena kot preprosta izdelava arhivskega izvoda z ukazom cp -a, saj tar ohranja čas spremembe izvornih datotek.
Arhiviranje na tračno napravo brez zaustavljanja je podobno izdelavi varnostnih kopij na disketni datotečni sistem, le z drugim gonilnikom naprave. Trakovi so tudi formatirani in obravnavani drugače kot diskete. Nekateri reprezentativni gonilniki tračnih enot za sisteme Linux so izpisani v tabeli 4.5.
|
Za arhiviranje imenika /etc na tračno enoto z uporabo ukaza tar uporabite ukaz
# tar cvf /dev/qft0 /etc
Podobno za izločitev datotek s traku uporabite ukaza
# cd /
# tar xvf /dev/qft0
Ti trakovi morajo biti pred uporabo formatirani, tako kot diskete. Gonilnik ftape lahko formatira trakove pod Linuxom. Za formatiranje traku formata QIC-40 uporabite ukaz
# ftformat --format-parameter qic40-205ft --mode-auto --omit-erase --discard-headerDruge tračne enote imajo lastno programje za formatiranje. Preverite strojno dokumentacijo za tračno enoto ali dokumentacijo za gonilnik naprave za Linux, ki ji pripada.
Preden se trakovi lahko odstranijo iz enote, morajo biti previti in V/I vmesni pomnilniki zapisani na trak. To je analogno odklopu diskete, preden jo izvržemo, saj tračni gonilnik tudi predpomni podatke. Standardni ukaz Unixa za nadzor operacij tračne enote je mt. Vaš sistem morda ne bo ponujal tega ukaza, odvisno od tega, ali ima zmožnosti uporabe tračne enote. Gonilnik ftape ima podoben ukaz, ftmt, ki se uporablja za nadzor tračnih operacij.
Za previjanje traku, preden ga odstranite, uporabite ukaz
# ftmt -f /dev/qft0 rewofflSeveda nadomestite ustrezni gonilnik tračne enote za svoj sistem.
Priporočljivo je tudi ponovno napenjanje traku, preden pišete nanj, saj so magnetni trakovi občutljivi za natezanje. Ukaz se glasi
# ftmt -f /dev/qft0 retension
Za branje statusa tračne enote s formatiranim trakom v enoti, izdajte ukaz
# ftmt -f /dev/qft0 status
# mke2fs /dev/fd0 1440ustvari datotečni sistem na disketi v /dev/fd0. Velikost datotečnega sistema mora ustrezati velikosti diskete. 3,5" diskete visoke gostote so velike 1,44 megabajtov ali 1440 blokov. 5,25" diskete visoke gostote so velike 1200 blokov. Če sistem ne more samodejno zaznati kapacitete diskete, je nujno določiti velikost datotečnega sistema v blokih.
Za dostopanje do diskete morate priklopiti datotečni sistem, ki je na njej. Ukaz
# mount /dev/fd0 /mntbo priklopil disketo v /dev/fd0 na imenik /mnt. Zdaj se bodo vse datoteke na disketi pojavile pod imenikom /mnt na vašem pogonu.
Točka priklopa, imenik, kamor priklopite datotečni sistem,
mora že obstajati, ko uporabljate ukaz mount. Če še ne
obstaja, jo ustvarite z ukazom mkdir, kot je opisano na
strani .
Glejte stran za več informacij o datotečnih
sistemih, priklapljanju in točkah priklopa.
¤ Upoštevajte, da se ves V/I za disketo predpomni enako kot V/I za trdi disk. Če spreminjate podatke na disketi, morda ne boste videli lučke na disketni enoti, dokler jedro ne izprazni svojega V/I vmesnega pomnilnika. Pomembno je, da ne odstranite diskete, dokler je ne odklopite z ukazom
# umount /dev/fd0Disket ne smete preprosto zamenjati, kot bi to storili v sistemu MS-DOS. Vsakič, ko zamenjate disketo, uporabite umount za prvo disketo in mount za naslednjo.
Še ena dolžnost sistemskega upravitelja je nadgradnja in nameščanje nove programske opreme.
Razvoj sistema Linux je hiter. Novo jedro izide vsakih nekaj tednov in drugo programje se ažurira skoraj tako pogosto. Zaradi tega novi uporabniki Linuxa pogosto čutijo potrebo po nenehni nadgradnji njihovih sistemov, da bi sledili hitremu tempu sprememb. To ni potrebno in je izguba časa. Če bi sledili vsem spremembam v svetu Linuxa, bi porabljali ves svoj čas za nadgrajevanje in vam ga ne bi ostalo nič za uporabo sistema.
Nekateri ljudje menijo, da bi morali nadgraditi, ko je narejena nova izdaja distribucije; na primer, ko Slackware izda novo različico. Mnogi uporabniki Linuxa ponovno v celoti namestijo svoje sisteme z vsako najnovejšo izdajo distribucije Slackware.
Najboljši način za nadgradnjo vašega sistema je odvisen od distribucije Linuxa, ki jo imate. Debian, S. u. S. E., Caldera in Red Hat Linux imajo vsi inteligentno programje za upravljanje paketov, ki dovoljuje preproste nadgradnje z nameščanjem novih paketov. Na primer, prevajalnik za C, gcc, se dobi kot vnaprej pripravljen binarni paket. Ko se namesti, so vse datoteke starejših različic prepisane ali odstranjene.
V največji meri brezumno nadgrajevanje, samo da ,,sledite trendu``, sploh ni pomembno. To ni MS-DOS ali Microsoft Windows. Ni bistvenega razloga za poganjanje novejših različic vsega programja. Če ugotovite, da bi želeli ali potrebovali zmožnosti, ki jih ponuja nova različica, potem nadgradite. Sicer ne nadgradite. Z drugimi besedami, nadgradite le to, kar morate in kadar morate. Ne nadgrajujte zaradi nadgrajevanja. To zapravlja veliko časa in naporov.
Izvorna koda jedra izhaja kot z gzip-om stisnjena datoteka .tar. Na primer, datoteka, ki vsebuje izvorno kodo jedra 2.0.33, je linux-2.0.33.tar.gz.
Izvorna koda jedra se odpakira v imenik /usr/src, tako da ustvari imenik /usr/src/linux. Splošna praksa je, da je /usr/src/linux simbolna povezava na drug imenik, ki vsebuje številko različice kot /usr/src/linux-2.0.33. Tako lahko namestite novo izvorno kodo jedra in jo preizkusite, preden odstranite staro izvorno kodo jedra. Ukazi za ustvarjanje povezave imenika z jedrom so:
# cd /usr/src
# mkdir linux-2.0.33
# rm -r linux
# ln -s linux-2.0.33 linux
# tar xzf linux-2.0.33.tar.gz
Ko nadgrajujete na novi nivo popravkov iste različice jedra, lahko datoteke s popravki jedra (angl. kernel patch files) prihranijo čas prenosa, saj je izvorna koda jedra velika okoli 7 MB, ko je že stisnjena z gzip-om. Za nadgradnjo z jedra 2.0.31 na jedro 2.0.33 bi pobrali datoteki s popravki patch-2.0.32.gz in patch-2.0.33.gz, ki ju najdete na istih mestih za FTP kot celotno izvorno kodo jedra. Ko ste položili popravka v imenik /usr/src, ju zaporedno uporabite na jedru, da boste osvežili izvorno kodo. Eden od načinov za to bi bil
# cd /usr/srcKo je izvorna koda odpakirana in so bili uporabljeni popravki, se boste morali prepričati, da so tri simbolne povezave v /usr/include pravilne za vašo distribucijo jedra. Za ustvarjanje teh povezav uporabite ukaze
# gzip -cd patch-2.0.32.gz | patch -p0
# gzip -cd patch-2.0.33.gz | patch -p0
# cd /usr/includeKo ustvarite te povezave, ni razloga, da bi jih ponovno ustvarjali, ko nameščate nove popravke jedra ali novejšo različico jedra. (Glejte razdelek 3.11 za več o simbolnih povezavah.)
# rm -rf asm linux scsi
# ln -s /usr/src/linux/include/asm-i386 asm
# ln -s /usr/src/linux/include/linux linux
# ln -s /usr/src/linux/include/scsi scsi
Za prevajanje jedra morate imeti na vašem sistemu nameščen prevajalnik za C gcc. Za prevajanje jedra 2.0 je potrebna različica gcc 2.6.3 ali poznejša.
Najprej naredite cd v /usr/src/linux. Ukaz make config vas sprašuje o številnih nastavitvenih izbirah. To je korak, kjer izberete strojno opremo, ki jo bo podpiralo vaše jedro. Največja napaka, ki se ji je treba izogniti, je, da ne vključite podpore za vaš krmilnik trdega diska. Brez pravilne podpore za trdi disk v jedru se sistem ne bo niti zagnal. Če niste prepričani, kaj pomeni izbira jedra, je kratek opis dostopen s pritiskom na ? in Enter.
V novejših različicah Linuxa sta dostopna tudi zaslonsko usmerjena ekvivalenta ukaza make config. Za zaslonsko različico nastavitvenih izbir za jedro napišite make menuconfig, če pa imate na vašem sistemu nameščen grafični vmesnik X Window System, lahko uporabite tudi make xconfig. Uporaba obeh je precej intuitivna in gotovo ju boste uporabljali raje kot make config.
Nato poženite ukaz make dep za ažuriranje vseh odvisnosti izvorne kode. To je pomemben korak. Ukaz make clean odstrani stare binarne datoteke iz drevesa izvorne kode jedra.
Ukaz make zImage prevede vaše jedro in ga zapiše v datoteko /usr/src/linux/arch/i386/boot/zImage. Jedra za Linux na sistemih Intel so vedno stisnjena. Včasih je jedro, ki ga želite prevesti, preveliko, da bi bilo lahko stisnjeno po metodi, ki jo uporablja make zImage. Jedro, ki je preveliko, bo izšlo iz prevajanja jedra s sporočilom o napaki: Kernel Image Too Large. Če se to zgodi, poskusite ukaz make bzImage. Ta uporablja program za stiskanje, ki podpira tudi večja jedra. Jedro se zapiše v datoteko /usr/src/linux/arch/i386/boot/bzImage.
Ko ste enkrat prevedli jedro, ga morate prekopirati na zagonsko
disketo (z ukazom, kot ,,cp zImage /dev/fd0``) ali pa
namestiti sliko tako, da bo LILO lahko zaganjal sistem z vašega
trdega pogona. Glejte stran za več informacij.
Stran opisuje, kako uporabljati pogon Iomega
Zip za izdelavo rezerv. Podpora za pogon Iomega Zip, kot za mnoge
druge naprave, ni splošno prevedena v zalogo distribucijskih jeder
Linuxa - različnost naprav je preprosto prevelika, da bi podpirali
vse od njih v uporabnem jedru. Vendar pa je izvorna koda za gonilnik
naprave Zip na vzporednih vratih vključena kot del distribucije
izvorne kode jedra. Ta razdelek opisuje, kako dodati podporo za pogon
Iomega Zip na vzporednih vratih in doseči sobivanje s tiskalnikom,
priključenim na druga vzporedna vrata.
Pogoj je, da ste namestili in uspešno zgradili prilagojeno jedro za Linux, kot je opisano v prejšnjem razdelku.
Izbor naprave ppa za pogon Zip kot možnost za jedro zahteva, da odgovorite z Y na primerna vprašanja med korakom make config, ko določate sestavo prilagojenega jedra. Posebej pri napravi ppa morate odgovoriti z ,,Y`` na tri izbire:
SCSI support? [Y/n/m] Y
SCSI disk support? [Y/n/m] Y
IOMEGA Parallel Port Zip Drive SCSI support? [Y/n/m] Y
Ko ste uspešno pognali make config z vsemi podpornimi izbirami, ki jih želite vključiti v jedro, pognali make dep, make clean in make zImage za gradnjo jedra, morate povedati jedru, kako naj namesti gonilnik. To se naredi z ukazno vrstico v zagonskem nalagalniku LILO. Kot je bilo opisano v razdelku 4.2.1, ima nastavitvena datoteka za LILO /etc/lilo.conf ,,kitice`` za vsak operacijski sistem, ki ga pozna, in tudi navodila za predstavljanje teh izbir uporabniku v času zagona.
Drugo navodilo, ki ga LILO prepozna, je ,,append=``, ki dovoljuje dodajanje informacij, ki jih potrebujejo različni gonilniki naprav, ob času zagona v ukazno vrstico. V tem primeru gonilnik ppa za Iomega Zip potrebuje neuporabljeno prekinitev (angl. interrupt) in naslov vrat za V/I (angl. I/O port address). To je analogno določanju različnih tiskalniških naprav, kot sta v MS-DOS-u LPT1: in LPT2:.
Na primer, če vaš tiskalnik uporablja šestnajstiški (z osnovo 16) naslov vrat 0x378 (glejte namestitveni priročnik za vašo kartico vzporednih vrat, če ne veste, kakšen je naslov) in je izprašan (angl. polled, se pravi, ne potrebuje linije linije IRQ, pogosta nastavitev Linuxa), bi postavili naslednjo vrstico v vašo sistemsko datoteko /etc/lilo.conf:
append="lp=0x378,0"Velja omeniti, da Linux ob zagonu samodejno prepozna ena vrata /dev/lp, a ob določitvi prirejene nastavitve vrat so potrebna navodila v času zagona.
Število ,,0`` za naslovom vrat pove jedru, naj ne uporablja linije IRQ (zahteva prekinitve, angl. interrupt request) za tiskalnik. To je v splošnem sprejemljivo, saj so tiskalniki veliko počasnejši kot procesorji, zato počasnejša metoda dostopa do V/I naprav, znana kot izpraševanje (angl. polling), kjer jedro periodično na lastno pest preverja status tiskalnika, še vedno dovoljuje računalniku, da dohaja tiskalnik.
Vendar naprave, ki delujejo na višjih hitrostih, kot so serijske linije in diski, potrebujejo linijo IRQ ali linijo za zahtevo prekinitve. To je strojni signal, ki ga naprava pošlje procesorju, kadar naprava potrebuje njegovo pozornost; na primer, če ima naprava podatke, ki čakajo za vhod v procesor. Procesor preneha delati to, kar počne, in obdela zahtevo za prekinitev, ki jo je izdala naprava. Naprava ppa za pogon Zip potrebuje prosto prekinitev, ki mora ustrezati prekinitvi, ki je nastavljena na tiskalniški kartici, na katero povežete pogon Zip. V času tega pisanja gonilnik naprave ppa za Linux ne podpira ,,veriženja`` (angl. chaining) naprav na vzporednih vratih, in za napravo ppa za Zip in tiskalnik se morajo uporabljati ločena vrata.
Za ugotovitev, katere prekinitve se že uporabljajo na vašem sistemu, ukaz
# cat /proc/interruptprikaže seznam naprav in linije IRQ, ki jih uporabljajo. Vendar morate biti previdni, da ne uporabljate nobene od samodejno nastavljenih prekinitev serijskih vrat, ki morda niso naštete v datoteki /proc/interrupt.
Spis Serial HOWTO (iz projekta LDP), dostopen iz virov, naštetih v dodatku A, podrobno opisuje nastavitve serijskih vrat.
¤ Preveriti bi morali tudi strojne nastavitve različnih vmesnih kartic na vašem stroju - z odpiranjem ohišja stroja in ogledom nastavitev skakačev, če je potrebno - da zagotovite, da ne privzemate linije IRQ, ki jo že uporablja druga naprava. Več naprav, ki se bojujejo za prekinitveno linijo, je morda najpomembnejši razlog za nedelujoče sisteme Linux.
Tipična datoteka /proc/interrupt je videti nekako takole:
0: 6091646 timerTukaj je zanimiv prvi stolpec. To so številke linij IRQ, ki se uporabljajo na sistemu. Za gonilnik ppa želimo izbrati linijo, ki ni našteta. Pogosto je dobra izbira IRQ 7, saj je redko uporabljan v privzetih sistemskih nastavitvah. Določiti moramo tudi naslov vrat, ki jih bo uporabljala naprava ppa. Ta naslov mora biti fizično nastavljen za kartico vmesnika. Vzporednim V/I vratom so dodeljeni posebni naslovi, zato boste morali prebrati dokumentacijo za vašo kartico vzporednih vrat. V tem primeru bomo uporabljali V/I naslov vrat 0x278, ki ustreza tiskalniškim vratom LPT2: pod MS-DOS-om. Podporo za druga vzporedna vrata in prekinitveno linijo vklopimo z naslednjo vrstico v primerni kitici datoteke /etc/lilo.conf:
1: 40691 keyboard
2: 0 cascade
4: 284686 + serial
13: 1 math error
14: 192560 + ide0
append="lp=0x378,0 ppa=0x278,7"Ti stavki so pripeti začetnim parametrom jedra v času zagona. Zagotavljajo, da se katerikoli tiskalnik, priključen na sistem, ne vtika v delovanje pogona Zip. Seveda, če vaš sistem nima nameščenega tiskalnika, se navodilo ,,lp=`` lahko izpusti in bi se tudi moralo.
Ko namestite prirejeno jedro, kot je bilo opisano v razdelku 4.2.1, in preden ponovno zaženete sistem, se prepričajte, da ste že pognali ukaz
# /sbin/liloza namestitev nove nastavitve LILO na zagonski sektor trdega pogona.
Stran opisuje, kako narediti rezervne
kopije datotek na tračno enoto. Linux ponuja podporo za različne
tračne enote z vmesniki IDE, SCSI in nekaterimi lastniškimi
vmesniki. Drug pogosti tip tračnih enot se priključi neposredno
na krmilnik disketnega pogona. Linux priskrbi gonilnik naprave
ftape kot modul.
V času tega pisanja je najnovejša različica gonilnika ftape 3.04d. Paket lahko pridobite z arhiva za FTP metalab.unc.edu (glejte dodatek B za navodila). Arhivno datoteko za ftape najdete v imeniku /pub/Linux/kernel/tapes. Prepričajte se, da boste vzeli najnovejšo različico. V času tega pisanja je to ftape-3.04d.tar.gz.
Po odpakiranju arhiva ftape v imenik /usr/src bo ukaz make install v najvišjem imeniku ftape prevedel module gonilnika in pripomočke za ftape, če je potrebno, in jih namestil. Če izkušate združljivostne težave z izvedljivimi distribucijskimi datotekami za ftape in vašim sistemskim jedrom ali knjižnicami, bo izvajanje ukazov make clean in make install zagotovilo, da so moduli prevedeni na vašem sistemu.
¤ Za uporabo te različice gonilnika ftape morate imeti v jedro prevedeno podporo modulom (angl. module support) kot tudi podporo za jedrni strežnik (angl. kernel daemon) kerneld. Vendar ne smete vključiti zgrajene kode jedra za ftape kot izbiro jedra, saj novejši modul ftape popolnoma nadomesti to kodo.
Ukaz make install tudi namesti module gonilnikov naprav v ustreznih imenikih. Na standardnih sistemih Linux so moduli locirani v imeniku
/lib/modules/različica-jedraČe je vaša različica jedra 2.0.30, so moduli na vašem sistemu v imeniku /lib/modules/2.0.30. Korak make install tudi zagotavlja, da se ti moduli lahko najdejo, saj doda primerne stavke v datoteko modules.dep, ki je locirana v najvišjem imeniku datotek za module, v tem primeru /lib/modules/2.0.30. Namestitev za ftape dodaja naslednje module na vaš sistem (v tem primeru uporabljamo jedro različice 2.0.30):
/lib/modules/2.0.30/misc/ftape.o
/lib/modules/2.0.30/misc/zft-compressor.o
/lib/modules/2.0.30/misc/zftape.o
V sistemsko nastavitveno datoteko za module morajo biti dodana tudi navodila za nalaganje modulov. Ta datoteka se na mnogih sistemih imenuje /etc/conf.modules. Za samodejno nalaganje modulov za ftape na zahtevo dodajte naslednji vrstici v datoteko /etc/conf.modules:
alias char-major-27 zftapePrvi stavek naloži vse module, povezane s ftape, če je to potrebno, ko jedro dostopa do naprave z vélikim številom (angl. major number) 27 (naprava ftape). Ker podpora za modul zftape (ki priskrbi samodejno stiskanje podatkov za tračne enote) potrebuje podporo drugih modulov za ftape, so vsi naloženi ob zahtevi jedra. Druga vrstica določa nalagalne parametre za module. V tem primeru zagotavlja pripomoček /sbin/swapout, ki je poleg paketa ftape, da je dostopnega dovolj pomnilnika DMA za delovanje gonilnika ftape.
pre-install ftape /sbin/swapout 5
Za dostop do naprave ftape morate najprej v enoto vstaviti formatirani trak. Navodila za formatiranje trakov in delovanje tračne enote so podana v razdelku 4.9.3.
Če vidite sporočilo o nezdružljivi različici knjižnice
Incompatible library versionko poskušate pognati program, morate knjižnice nadgraditi na različice, ki jih potrebuje program. Knjižnice so za nazaj združljive. Program, preveden za uporabo starejše različice knjižnic, bi moral delovati tudi z nameščeno novo različico knjižnic. Obratno ni res.
Novejše različice knjižnic lahko najdemo na mestih za FTP datotek za Linux. Na metalab.unc.edu so zbrane v imeniku /pub/Linux/GCC. Datoteke o ,,izdaji`` (angl. release), ki jih najdete tam, bi morale pojasniti, katere datoteke morate vzeti in kako jih namestite. Na kratko, morali bi vzeti datoteki image-različica.tar.gz in inc-različica.tar.gz, kjer je različica različica knjižnic za namestitev, kot je 4.4.1. To sta z gzip-om stisnjeni datoteki za tar. Datoteka image vsebuje slike knjižnic za namestitev v imenika /lib in /usr/lib. Datoteka inc vsebuje glave za namestitev v imenik /usr/include.
Datoteka release-različica.tar.gz bi morala podrobno pojasniti namestitveni postopek (natančna navodila se razlikujejo z vsako izdajo). V splošnem morate namestiti knjižnične datoteke .a in .sa v imenik /usr/lib. To so knjižnice, ki se uporabljajo ob prevajanju.
Dodatno, datoteke libc.so.različica s slikami deljenih knjižnic se namestijo v imenik /lib. To so slike deljenih knjižnic, ki se naložijo pri poganjanju programov, ki uporabljajo knjižnice. Vsaka knjižnica ima simbolno povezavo in véliko številko različice knjižnice v /lib.
Knjižnica libc različice 4.4.1 ima véliko številko različice enako 4. Datoteka, ki vsebuje knjižnico, je libc.so.4.4.1. V imenik /lib je postavljena tudi simbolna povezava libc.so.4, ki kaže na knjižnico. Ko nadgrajujete knjižnice, morate spremeniti to simbolno povezavo. Na primer, ko nadgrajujete iz libc.so.4.4 na libc.so.4.4.1, morate spremeniti simbolno povezavo, da kaže na novo različico.
¤ Simbolno povezavo morate spremeniti v enem koraku, kot je opisano spodaj. Če pobrišete simbolno povezavo libc.so.4, bodo programi, ki so odvisni od te povezave (vključno z osnovnimi pripomočki kot ls in cat), nehali delovati. Uporabite naslednji ukaz za posodobljenje simbolne povezave libc.so.4, da bo kazala na datoteko libc.so.4.4.1:
# ln -sf /lib/libc.so.4.4.1 /lib/libc.so.4V enakem smislu morate spremeniti tudi simbolno povezavo libm.so.različica. Če nadgrajujete na drugačno različico knjižnic, zgoraj vstavite primerna imena datotek. Zapiski ob izdaji knjižnice bi morali pojasnjevati podrobnosti. (Glejte stran
Prevajalnik gcc za C in C++ se uporablja za prevajanje programja na vašem sistemu, najpomembneje za prevajanje jedra. Najnovejša različica prevajalnika gcc se nahaja na mestih za FTP Linuxa. Na metalab.unc.edu je locirana v imeniku /pub/Linux/GCC (skupaj s knjižnicami). Tam mora biti tudi datoteka release za distribucijo gcc, ki podrobno opisuje, katere datoteke morate prenesti in kako jih namestite. Večina distribucij (RedHat, Debian itd.) ima različice za nadgradnjo, ki delujejo z njihovim programjem za upravljanje programskih paketov. V splošnem so ti paketi veliko preprostejši za namestitev kot ,,splošne`` distribucije.
Nadgradnja drugega programja je pogosto le stvar nabiranja ustreznih datotek in njihovega nameščanja. Večina programja za Linux se razširja kot stisnjene datoteke .tar, ki vključujejo izvorno kodo, binarne datoteke ali oboje. Če binarne datoteke niso vključene v izdajo, jih boste morali prevesti sami. To pomeni, da boste morali vsaj vpisati make v imeniku z izvorno kodo.
Najpreprostejši način za obveščanje o novih izdajah programja je branje novičarske skupine Useneta comp.os.linux.announce. Ko iščete programje na mestu za FTP, je jemanje indeksne datoteke ls-lR z mesta za FTP in uporaba pripomočka grep za iskanje datotek, ki jih želite, najpreprostejši način za iskanje programja. Če vam je dostopen archie, vam je tudi ta lahko v pomoč4.3. Obstajajo tudi drugi viri Interneta, ki so posvečeni posebej Linuxu. Glejte dodatek A za več podrobnosti.
Verjeli ali ne, obstajajo številna oskrbniška opravila za sistemskega upravljalca, ki ne spadajo v nobeno od večjih kategorij.
V času zagona jedro porodi proces /etc/init. init je program, ki prebere svojo nastavitveno datoteko /etc/inittab in rodi druge procese glede na vsebino te datoteke. Eden od pomembnih procesov, ki se zaženejo iz inittab, je proces /etc/getty, ki se začne na vsaki navidezni konzoli (angl. virtual console, VC). Proces getty vzame navidezno konzolo, ki jo uporablja, in začne na njej prijavni proces z ukazom login. To vam dovoljuje, da se prijavite na vsako navidezno konzolo. Če /etc/inittab ne vsebuje procesa getty za določeno navidezno konzolo, se na to navidezno konzolo ne boste mogli prijaviti.
Še en proces, ki se izvede iz /etc/inittab, je
/etc/rc, glavna sistemska inicializacijska datoteka. Ta
datoteka je preprost skript ukazne lupine, ki izvaja vse
inicializacijske ukaze, potrebne v času zagona, kot so priklop
datotečnih sistemov (glejte stran ) in priprava
izmenjalnega prostora. Na nekaterih sistemih init izvaja
datoteko /etc/init.d/rc.
Vaš sistem lahko izvaja tudi druge inicializacijske skripte, na primer /etc/rc.local, ki navadno vsebuje pripravljalne ukaze, specifične za vaš lasten sistem, kot je nastavitev gostiteljskega imena (glejte naslednji razdelek). Skript rc.local se lahko zažene iz /etc/rc ali neposredno iz /etc/inittab.
V omrežnem okolju se gostiteljsko ime (angl. host name) uporablja za enoznačno določitev določenega stroja, medtem ko pri samostojnem stroju gostiteljsko ime preprosto daje sistemu osebnost in šarm. To je kot poimenovanje domače živali: vedno lahko rečete svojemu psu ,,Pes``, a je veliko bolj zanimivo, da poimenujete svojega psa z imenom, kot je Piko ali Runo.
Nastavitev gostiteljskega imena vašega sistema zadeva le uporabo ukaza hostname. Če ste na omrežju, bo vaše gostiteljsko ime polno gostiteljsko ime vašega stroja, kot je goober.norelco.com. Če niste na omrežju nobene vrste, lahko izberete poljubno ime gostitelja in domeno, kot loomer.vpizza.com, shoop.nowhere.edu ali floof.org.
Gostiteljsko ime se mora pojaviti v datoteki /etc/hosts, ki priredi naslove za IP vsakemu gostitelju. Tudi, če vaš stroj ni na omrežju, bi morali vključiti vaše lastno gostiteljsko ime v datoteko /etc/hosts. Če niste na omrežju TCP/IP in je vaše gostiteljsko ime floof.org, preprosto vključite naslednjo vrstico v /etc/hosts:
127.0.0.1 floof.org localhostTo dodeli vaše gostiteljsko ime floof.org zaprtozančnemu naslovu (angl. loopback address) 127.0.0.1. Povratni vmesnik je prisoten, če je stroj priključen na omrežje ali pa ne. Vzdevku localhost se vedno priredi ta naslov.
Če ste na omrežju TCP/IP, bi v datoteki /etc/hosts morala biti vaš naslov za IP in gostiteljsko ime. Na primer, če je vaše gostiteljsko ime goober.norelco.com in vaš naslov za IP 128.253.154.32, dodajte naslednjo vrstico v /etc/hosts:
128.253.154.32 goober.norelco.com
Za nastavitev vašega gostiteljskega imena preprosto uporabite ukaz hostname. Na primer, ukaz
# hostname -S goober.norelco.comnastavi gostiteljsko ime na goober.norelco.com. V večini primerov se ukaz hostname izvede iz ene od sistemskih zagonskih datotek, kot sta /etc/rc ali /etc/rc.local. Uredite ti dve datoteki in spremenite ukaz hostname, ki ga najdete tam, da bo odražal vaše lastno gostiteljsko ime. Po ponovnem zagonu bo sistem uporabljal novo ime.
V nekaterih primerih se bo sistemski upravitelj soočil s problemom okrevanja od popolne katastrofe, kot je pozaba korenskega gesla ali sesutje datotečnih sistemov. Najboljši nasvet je, brez panike. Vsakdo dela neumne napake - to je najboljši način za učenje sistemskega upravljanja: trnova pot.
Linux ni nestabilna različica Unixa. Pravzaprav sem imel manj problemov z obešanjem sistema kot pri komercialnih različicah Unixa na veliko platformah.
Prvi korak samostojne odprave problema je ugotovitev, kje problem sploh leži. Brskajte naokoli in opazujte, kako stvari delujejo. Velikokrat sistemski upravitelj obupano prosi za pomoč, še preden sploh ve, v čem je problem. Opazili boste, da je pravzaprav zelo lahko samostojno odpraviti težave. To je pot razsvetlitve in gurujstva.
Obstaja le nekaj primerov, ko je nujna ponovna namestitev sistema od samega začetka. Mnogo novih uporabnikov po nesreči pobriše kakšno nujno potrebno sistemsko datoteko in takoj posežejo po namestitvenih disketah. To ni dobra ideja. Preden uporabite tako drastične ukrepe, raziščite problem in poprosite druge za pomoč. V veliko primerih lahko obnovite vaš sistem z vzdrževalne diskete.
Kanonični primer zagonske/korenske diskete sta zagonski disketi za Slackware. Ti disketi vsebujeta zagonsko jedro in korenski datotečni sistem, vse na disketi. Njun namen je namestitev distribucije Slackware, a prideta prav tudi ob vzdrževanju sistema.
Drug primer vzdrževalne diskete je zagonska/korenska disketa H. J. Luja, dostopna iz imenika /pub/Linux/GCC/rootdisk na metalab.unc.edu. Če ste častihlepni, lahko naredite svojo lastno. V večini primerov pa so že narejene zagonske/korenske diskete veliko preprostejše za uporabo in bodo verjetno tudi popolnejše.
Uporaba zagonske/korenske diskete je zelo preprosta. Zaženite disketo na vašem sistemu in se prijavite kot root (navadno brez gesla). Za dostop do datotek na trdem pogonu boste morali ročno priklopiti datotečne sisteme. Na primer, ukaz
# mount -t ext2 /dev/hda2 /mntbo priklopil datotečni sistem ext2fs na /dev/hda2 pod /mnt. Ne pozabite, da je zdaj imenik / sama zagonska/korenska disketa; datotečne sisteme trdega pogona morate priklopiti pod kak imenik, če želite dostopati do datotek. Torej je /etc/passwd na vašem trdem pogonu zdaj /mnt/etc/passwd, če ste priklopili vaš običajni korenski datotečni sistem na /mnt.
root::0:0:root:/:/bin/shZdaj root nima gesla. Ko boste ponovno zagnali sistem s trdega pogona, bi morali biti sposobni prijave kot root in ponovne nastavitve gesla z uporabo ukaza passwd.
Kaj niste veseli, da ste se naučili uporabe urejevalnika vi? Verjetno na vaši zagonski/korenski disketi ne bodo dostopni urejevalniki, kot je Emacs, toda vi bi moral biti.
Pogost vzrok okvare datotečnega sistema je poškodovan superblok. Superblok (angl. super block) je ,,glava`` datotečnega sistema, ki vsebuje informacije o njegovem statusu, velikosti, prostih blokih in tako naprej. Če poškodujete superblok (na primer, z nenamernim pisanjem podatkov neposredno v particijsko tabelo datotečnega sistema), sistem verjetno sploh ne bo prepoznal datotečnega sistema. Poskus priklopa datotečnega sistema bo neuspešen in e2fsck ne bo mogel odpraviti problema.
Na srečo datotečni sistem ext2fs shranjuje kopije superbloka na mejah ,,skupin blokov`` na pogonu, navadno na vsakih 8 K blokov. Pripomočku e2fsck lahko naročite, naj uporabi kopijo superbloka z ukazom, kot je
# e2fsck -b 8193 particijakjer je particija particija, na kateri počiva datotečni sistem. Izbira -b 8193 pove e2fsck, naj uporablja kopijo superbloka, shranjeno na bloku številka 8193 v datotečnem sistemu.
# cp -a /bin/login /mnt/bin/loginIzbira -a naroči cp, da ohrani dovoljenja datotek, ki jih prepisuje.
Seveda, če datoteke, ki ste jih zbrisali, niso potrebne sistemske datoteke, ki imajo ustreznice na zagonski/korenski disketi, potem nimate sreče. Če redno delate varnostne kopije, jih lahko obnovite iz njih.