Modprobe can't locate module, XXX
in podobno
(Program modprobe
ne najde modula ,,XXX
``.)
Te vrste sporočila se pokažejo predvsem ob zagonu ali izklopu sistema.
Če se modprobe
, insmod
, ali rmmod
pritožujejo, da ne najdejo modula, dodajte naslednje v datoteko
/etc/modules.conf
ali v /etc/modutils/aliases
,
katero pač že imate v svojem sistemu:
In uporabite ime modula, ki se pokaže v sporočilu o napaki.alias <ime_modula> off
[J. H. M. Dassen]
Unknown terminal type linux
(neznan tip terminala linux
) in podobno.
V zgodnjih jedrih so razvijalci spremenili privzeto vrsto zaslona s
console
na linux
. Popraviti morate datoteko
/etc/termcap
in spremeniti vrstico, ki se glasi
v vrsticoconsole|con80x25:\
linux|console|con80x25:\
(Morda je v tej vrstici še beseda dumb
; če je, jo odstranite.)
Če želite, da bo vaš urejevalnik besedil deloval normalno, morate
morda najprej za lupini bash
in ksh
napisati:
ali za lupino$ TERM=console
csh
ali tcsh
:
$ setenv TERM console
Nekateri programi namesto datoteke /etc/termcap
uporabljajo
datoteko /usr/lib/terminfo
. Za uporabo takih programov
morate nadgraditi terminfo
, ki je del ncurses
.
Enako velja za prikaze v X-terminalih. Če vaša distribucija nastavi
TERM
na nekaj čudnega kot xterm-24-color
, ga lahko v
ukazni vrstici preprosto vnovič nastavite na splošno vrednost:
Namesto$ TERM="xterm"; export TERM
xterm
lahko po potrebi uporabite tudi vt100
ali kaj drugega.
INET: Warning: old style ioctl... called!
(INET
: Pozor: kličete zastarel ioctl
.)
Poskušate uporabljati stare pripomočke za nastavitev omrežja. Nove najdete na mestu ftp://ftp.linux.org.uk/pub/linux/Networking/PROGRAMS/NetTools/ (žal le izvirno kodo).
Upoštevajte, da teh programov ne morete uporabljati tako kakor starejših. Oglejte si NET-2 HOWTO za navodila o pravilni nastavitvi starejših omrežnih programov. Še bolje: oglejte si NET-3 HOWTO in nadgradite svoje omrežno programje.
ld: unrecognized option '-m486'
(ld
: neznana izbira '-m486
')
Uporabljate staro različico povezovalnika ld
. Namestite
novejši paket binutils
-- vsebuje tudi najnovejši
ld
. Poglejte na
ftp://tsx-11.mit.edu/pub/linux/packages/GCC/, datoteka je
binutils-2.6.0.2.bin.tar.gz
.
Internal compiler error.
Če je napaka ponovljiva (tj. vedno se pokaže na istem kraju na isti
datoteki -- tudi če znova zaženete računalnik in poskusite še
enkrat, s stabilnim jedrom), ste odkrili hrošč prevajalnika
GCC. Pošljite opis hrošča razvijalcem -- podrobnosti si oglejte
v dokumentaciji GCC Info (F1-i
v Emacsu in izberite GCC) -- preverite,
ali imate zadnjo dostopno različico GCC.
Težava pravzaprav verjetno ni specifična za Linux; če niste prevajali
programa, ki ga prevaja veliko uporabnikov Linuxa, ne pošiljajte
poročila o napaki v skupine comp.os.linux.*
.
Če napaka ni ponovljiva, imate verjetno težave s pomnilnikom -- glej razdelek make pravi Error 139.
make
pravi Error 139
(Napaka št. 139.)
Vaš prevajalski gonilnik (gcc
) je izvrgel posmrtne ostanke.
Verjetno imate pokvarjeno, hroščato ali staro različico GCC --
omislite si najnovejšo izdajo EGCS. Lahko pa vam tudi zmanjkuje
izmenjalnega prostora -- več o tem v razdelku
Zakaj moj računalnik deluje zelo počasi, ko uporabljam GCC/X/...?.
Če to ne odpravi težav, imate verjetno pokvarjen pomnilnik ali disk. Preverite frekvenco ure, čakalna stanja in osvežilne čase za vaše čipe SIMM in predpomnilnik (včasih se moti tudi strojni priročnik). Če je vse nastavljeno, kot mora biti, imate najbrž zanič SIMM ali matično ploščo ali disk ali krmilnik.
Kot drugi Unixi je tudi Linux zelo dober preizkuševalnik pomnilnika -- veliko boljši kakor dosovski, posebej za to namenjeni programi.
Poročajo, da povzročajo kloni nekaterih matematičnih koprocesorjev x87
določene težave; poskusite prevesti jedro s posnemanjem matematičnih
ukazov, glej
Kako prevedem/nadgradim jedro?. Morda boste morali uporabiti v
pozivniku LILO ukaz no387
, da bo jedro uporabljalo
posnemanje, ali pa bo posnemanje uporabljalo samo včasih, večinoma pa
pravi koprocesor.
Veliko več informacij o tem najdete v svetovnem spletu na http://www.bitwizard.nl/sig11/.
shell-init: permission denied
, ko se prijavim.
Branje in poganjanje programov v vašem korenskem imeniku in vseh
imenikih do vašega domačega mora biti dostopno vsem. Za odpravo
težav si oglejte stran v priročniku za chmod
(man
chmod
) ali kakšno knjigo o Unixu.
No utmp entry. You must exec ...
, ko se prijavim.
Vaša datoteka /var/run/utmp
je zavožena. V svojih prijavnih
skriptih /etc/rc.local
ali /etc/rc.d/*
morate imeti
vrstico:
> /var/run/utmp
Glej razdelek
Kako lahko popravim svoj sistem, če sem ga zavozil in se ne morem prijaviti?. Vedite, da lahko v starejših sistemih najdete
utmp
tudi v imenikih /var/adm/
ali /etc/
.
Warning--bdflush not running.
Sodobna jedra uporabljajo boljšo strategijo za pisanje predpomnjenih
diskovnih blokov. Poleg sprememb v jedru to zajema tudi zamenjavo
starega programa update
, ki je izpisoval vse na vsakih 30
sekund, z novejšim, bolj izpiljenim demonom (pravzaprav z dvema),
imenovanim bdflush
. Omislite si datoteko
bdflush-n.n.tar.gz
z mesta, na katerem ste dobili izvirno
kodo jedra (razdelek
Kako nadgradim/prevedem jedro?) in ga prevedite ter namestite; zagnati se
mora pred običajnim zagonskim preverjanjem datotečnega sistema. Novi
demon bo odlično deloval tudi s starimi jedri, zato ni razloga, da bi
še obdržali stari update
.
Warning: obsolete routing request made.
(Pozor: poslali ste zastarelo zahtevo po usmerjanju.)
Nikar si ne delajte skrbi; to pomeni le, da je različica vašega
programa route
nekoliko zastarela glede na jedro. Sporočilo
lahko izklopite tako, da dobite novo različico route
z istega
mesta kot izvirno kodo jedra (razdelek
Kako nadgradim/prevedem jedro?).
EXT2-fs: warning: mounting unchecked filesystem.
(EXT2-fs
: pozor: nameščam nepregledan datotečni sistem.)
Pognati morate e2fsck
(ali fsck -t ext2
, če ga
imate) z izbiro -a
, ki zbriše zastavico ,,umazanosti`` in
potem na čisto odmesti razdelek po vsakem pravilnem izklopu
sistema.
Najlaže to storite z najnovejšimi ukazi fsck
,
umount
in shutdown
. Dobite jih v paketu Rika Faitha
util-linux
(glej razdelek
Kako dobim stvari za Linux po FTP?). Preverite, ali jih prijavni skripti
/etc/rc*
uporabljajo pravilno.
NB: Ne poskušajte preverjati datotečnega sistema, ki je nameščen v bralno-pisalnem načinu -- to zajema korenski razdelek, če ob zagonu ne vidite sporočila
VFS: mounted root ... read-only
Urediti morate tako, da se korenski datotečni sistem namesti le v
bralnem načinu, se preveri, če je treba, in potem namesti v
bralno-pisalnem načinu. Preberite si dokumentacijo z util-linux
za podrobnosti.
Upoštevajte, da morate določiti pri ukazu mount
izbiro
-n
in tako preprečiti, da bi osvežil /etc/mtab
, saj
je korenski datotečni sistem še vedno le bralni in lahko sicer
mount
spodleti!
EXT2-fs warning: maximal count reached.
To sporočilo izpiše jedro, ko namesti datotečni sistem, označen kot
,,čist``, katerega ,,število priklopov po zadnjem preverjanju`` pa
presega določeno vrednost. Rešitev je poiskati najnovejšo različico
uporabnih programov za ext2fs (v času pisanja je to
e2fsprogs-0.5b.tar.gz
) na običajnih mestih (glej razdelek
Kako dobim stvari za Linux po FTP?).
Največje število priklopov (mount) lahko vidite in spremenite s
programom tune2fs
iz tega paketa.
EXT2-fs warning: checktime reached.
(Čas za pregled datotečnega sistema.)
Jedra od različice 1.0 naprej podpirajo preverjanje datotečnega sistema na določen čas ali na določeno število priklopov. Omislite si najnovejšo različico uporabnih programov za ext2fs (glej razdelek EXT2-fs warning: maximal count reached.).
df
izpiše Cannot read table of mounted filesystems.
Verjetno je nekaj narobe z datoteko /etc/mtab
ali
/etc/fstab
. Če imate skoraj novo različico programa
mount
, morate ob zagonu izprazniti ali zbrisati datoteko
/etc/mtab
(to določite v /etc/rc.local
ali
/etc/rc.d/*
), nekako takole:
$ rm -f /etc/mtab*
Nekatere starejše distribucije Linuxa so naredile vnos za korenski
razdelek v /etc/mtab
z uporabo rdev
v
/etc/rc*
. To je napačno -- nove različice ukaza mount
to storijo samodejno.
Druge starejše distribucije imajo tako vrstico v /etc/fstab
:
/dev/sdb1 /root ext2 defaults
Tudi to je napačno, vnos /root
bi se moral glasiti preprosto
/
.
fdisk
izpiše Partition X has different physical/logical ...
Če je število razdelka (X, zgoraj) enako 1, je to enak problem kakor v razdelku fdisk: Partition 1 does not start on cylinder boundary.
Če se razdelek začne ali konča s številko cilindra, večjo od 1024, je to zato, ker se standardna dosovska informacija o geometriji diska ne zna spopadati s števili cilindrov, večjimi od 10 bitov. Glej razdelek Kako naj prepričam Linux, da bo delal z mojim diskom?.
fdisk: Partition 1 does not start on cylinder boundary
Različica fdisk
, priložena številnim linuxaškim sistemom,
ustvari razdelke, ki ne ustrezajo niti lastnemu preverjanju. Žal ne
morete storiti veliko, če ste že namestili svoj sistem, razen da
prepišete podatke z razdelka, ga zbrišete, na novo ustvarite in
prepišete podatke nazaj.
Problemom se lahko izognete z uporabo najnovejšega fdisk
,
ki je v paketu Rika Faitha util-linux
(dostopnega na vseh
običajnih mestih za FTP). Alternativa temu, če ustvarjate novi
razdelek št. 1, ki se začne na prvem cilindru, bi bila, da naredite
naslednje (za ustvaritev razdelka, ki je všeč fdisk
u):
fdisk
om. Izpis
p
bo izpisal pritožbo, da je z razdelkom nekaj narobe.u
, da nastavite sektorski način in spet naredite
p
. Prepišite številko s stolpca End
.p
.
Nastavite zadnji sektor na vrednost, opisano zgoraj v drugi točki.u
za vnovični zagon cilindrskega načina in nadaljujte z
drugimi razdelki.Prezrite sporočila o nealociranih sektorjih -- nanašajo se na sektorje prve sledi, razen tistih iz glavnega zagonskega zapisa (Master Boot Record), ki se ne uporabljajo, če zaženete prvi razdelek na 2. sledi.
fdisk
izpiše partition n has an odd number of sectors.
Diskovna razdelitvena shema v računalnikih PC deluje s 512-zlogovnimi sektorji, vendar Linux uporablja bloke velikosti 1 Kb. Če imate razdelek z lihim številom sektorjev, ostane zadnji sektor neuporabljen. Prezrite sporočilo.
mtools
izpiše cannot initialize drive X
To pomeni, da mtools
nima dostopa do pogona. Vzrokov je
lahko več.
Pogosto je to zaradi napačnih dovoljenj disketnih napravah
(/dev/fd0*
in /dev/fd1*
) -- uporabnik, ki kliče
mtools
, mora imeti ustrezen dostop. Za podrobnosti si oglejte
referenčni priročnik, kako se uporablja chmod
.
Večina različic mtools
, ki jih dobite poleg Linuxa (a ne
standardna različica GNU), uporablja vsebino datoteke
/etc/mtools
za podatek o tem, katere naprave in gostote
zapisa naj uporablja, namesto da bi imela to informacijo prevedeno v
izvedljivi datoteki. Pogosto to sploh ni dokumentirano.
Najlažji dostop do dosovskih datotek (predvsem tistih na
razdelkih diska) najdete v razdelku
Kako dostopam do datotek na dosovskem razdelku ali disketi?. Pazite, da ne boste nikoli uporabljali mtools
za dostop do datotek na razdelku, priklopljenim z datotečnim sistemom
msdosfs.
Memory tight
To pomeni, da imate zelo veliko jedro, kar pomeni, da mora Linux opravljati posebne čarovnije s pomnilnikom, da bi se lahko zagnal z biosa. To dejstvo ni povezano s količino fizičnega pomnilnika v vašem stroju. Ignorirajte sporočilo ali prevedite jedro le z gonilniki in lastnostmi, ki jih potrebujete (glej vprašanje Kako nadgradim/prevedem jedro?).
`end_request: I/O error, ...'.
To sporočilo o napaki in podobna sporočila skoraj vedno kažejo na strojno napako, povezano z diskom.
To je splošni indikator strojne napake. Edini način, kako
preprečiti nadaljnjo izgubo podatkov je popoln, pravilen izklop sistema
(s shutdown
). Zagotoviti morate tudi, da so vsi podatki na
pogonu rezervno arhivirani, in jih obnoviti na delujočem disku.
To sporočilo o napaki lahko pomeni tudi slabo povezavo s pogonom, posebno pri doma narejenih sistemih. Če sami nameščate disk IDE, vedno uporabite nove kable. Najbrž je to dobra zamisel tudi pri diskih SCSI.
V nekem primeru je ta problem sovpadal z ozemljitvenimi težavami med sistemsko ploščo in ohišjem enega od strojev. Preden zvalite krivdo na disk, preverite, ali so vse električne povezave čiste in trdne.
[Peter Moulder, Theodore T'so]
You don't exist. Go away.
(Ne obstajaš. Izgini!)
Ne gre za okužbo z virusom. To sporočilo pride od programov, kot so
write
, talk
in wall
, če kličoče število
UID ne ustreza nobenemu uporabniku (verjetno zato, ker je datoteka
/etc/passwd
pokvarjena) ali če zveza (navadno psevdoterminal)
ni pravilno zapisana v utmp
(verjetno zato, ker ste jo
čudno vzpostavili).
Operation not permitted.
(Operacija ni dovoljena.)
Eden ali več bitov z lastnostmi datoteke ali imenika je nastavljen
nepravilno. Če je, na primer, nastavljen bit ,,I
``, ne boste
mogli spreminjati dovoljenja datoteke s chmod
.
Rešitev je, da uporabite lsattr
za prikaz lastnosti datoteke
in imenika, in chattr
, da jih prižgete ali ugasnete.
Dokumentacija o programih je na straneh referenčnega priročnika.
[Paul Campbell]
error in loading shared libraries: lib.xxx.so.
Ali tudi: x: cannot open shared object file: No such file or
directory
.
Podobno sporočilo, ko program, ki ga skušate zagnati, uporablja deljene knjižnice, navadno pomeni eno od dvojega: program je bodisi preveden na stroju z drugim naborom knjižnic ali poti do knjižnic, kot so vaše; ali pa ste nadgradili svoje knjižnice, ne pa tudi programa.
Izvedljivi programi, ki so povezani z dinamičnimi knjižnicami, pričakujejo polno ime do vsake knjižnične datoteke, ki jih zahtevajo. Deljene knjižnice, ki se zanašajo na druge knjižnice, prav tako. To je zato, da so odvisnosti med odvisnostmi deljenih predmetov jasne, kolikor je mogoče, in zaradi varnosti.
Če ne morete prevesti izvedljive datoteke, je verjetno dolgoročno najbolj zaželena alternativa, da ugotovite, katere knjižnice izvedljiva datoteka potrebuje z ukazom:
Izhod je seznam deljenih knjižnic v sistemu, ki jih mora program poganjati, kot tudi manjkajoče knjižnice. Potem lahko dodaste knjižnične pakete ali pa, če knjižnice že obstajajo v drugem imeniku, lahko ustvarite simbolno povezavo, da jih program lahko najde. Na primer, če program zahtevaldd ime-programa
/usr/lib/libncurses.so.2
in ima vaš stroj /lib/libncurses.so.2
, lahko ustvarite
povezavo, kjer program pričakuje, da bo našel knjižnico, npr.:
Vedeti pa morate, da lahko ustvarjanje povezav do knjižnic kot te smatramo tudi za varnostno tveganje, in da dodatne povezave, ki jih boste ustvarili, ne bodo združljive s prihodnjimi nadgradnjami. To je le hiter popravek za združljivost nazaj.# cd /usr/lib && ln -s /lib/libncurses.so.2 .
Morda bo treba tudi nekaj ugibanja, da bi ugotovili, v natanko katerem
od sistemskih knjižničnih imenikov program pričakuje, da bo našel
datoteko z deljeno knjižnico, saj ldd
ne našteva poti do
knjižnic, ki jih ne more najti. Program bo verjetno povedal tekočemu
povezovalniku /lib/ld.so
, naj gleda za deljene knjižnice v
/lib
, /usr/lib
, /usr/local/lib
ali
/usr/X11R6/lib
, če je odjemnik za X. Vendar to ne pomeni, da
knjižnic ni moč namestiti drugam. Pomaga, če imate pred nadaljevanjem nekaj pojma o izvirni nastavitvi knjižnic.
Preverite tudi, ali po izdelavi simbolne povezave poganjate
ldconfig
, tako da ima ld.so
osveženi pogled
sistemskih knjižnic. Preveriti morate tudi, ali so vsi knjižnični
imeniki našteti v /etc/ld.so.conf
in morda v okoljski
spremenljivki LD_LIBRARY_PATH
.
(init: Id "x" se prehitro znova vali: onemogočeno za 5 minut.)
V večini distribucij to pomeni, da se sistem privzeto zaganja v raven
teka 5, ki naj bi znova izvalil (znova zagnal, ko zapustite) grafično
prijavo prek xdm
, kdm
, gdm
ali česarkoli že, in
sistem ne najde programa.
Vendar lahko ,,Id`` pomeni tudi odsotnost ali napačno nastavitev
drugega programa, kot mingetty
, če init
skuša znova
izvaliti sebe več kot desetkrat v 2 minutah.
Id ,,x`` je številka najbolj levega stolpca v datoteki
/etc/inittab
:
Če zakomentirate kritično vrstico in potem popravite pokvarjeni program in ga preskusite v ukazni vrstici, boste videli sporočila o napakah, ki gredo na standardni izhod za napake (konzolo), če napake ne gredo v sistemsko dnevniško datoteko. Odkomentirajte vrstico in znova zaženite# Run gettys in standard runlevels 1:2345:respawn:/sbin/mingetty tty1 2:2345:respawn:/sbin/mingetty tty2 3:2345:respawn:/sbin/mingetty tty3 4:2345:respawn:/sbin/mingetty tty4 5:2345:respawn:/sbin/mingetty tty5 6:2345:respawn:/sbin/mingetty tty6
init
s ,,kill -SIGHUP 1
`` ali
,,telinit q
``, da se init
znova inicializira in
prebere datoteko /etc/inittab
.
Po drugi strani pa nekateri sistemi med zagonom pišejo prek
/etc/inittab
. V tem primeru si oglejte stran referenčnega
priročnika za init
in/ali nastavitve v
/etc/sysconfig/init
.
Za podrobne informacije si oglejte referenčne strani za init
in /etc/inittab
.
[Carl King]
421 service not available, remote server has closed connection.
(Storitev 421 ni na voljo, oddaljeni strežnik je zaprl povezavo.)
Če strežnik FTP ne dovoljuje prijav, je verjetno pravilno nastavljen,
a težava je verjetno pri istovetenju uporabnikov med prijavo.
Strežniki za FTP v trenutnih distribucijah pogosto istovetijo
uporabnike s knjižnico PAM (angl. Pluggable Authentication Modules,
vstavljivi moduli za istovetenje), in v tem primeru bi morala
biti na voljo datoteka za istovetenje /etc/pam.d/ftp
. Splošna
datoteka za istovetenje bi morala biti videti takole. (Prelom prve
vrstice ,,auth
`` je zaradi lažjega branja. Ta vnos je
pravzaprav ena sama dolga vrstica.)
Prepričajte se tudi, da je datoteka#%PAM-1.0 auth required /lib/security/pam_listfile.so item=user sense=deny file=/etc/ftpusers onerr=succeed auth required /lib/security/pam_pwdb.so shadow nullok auth required /lib/security/pam_shells.so account required /lib/security/pam_pwdb.so session required /lib/security/pam_pwdb.so
/etc/ftpusers
ali
katerakoli datoteka z uporabniki v prvi vrstici ,,auth
``
pravilno nastavljena.
Mimogrede, vzorčna datoteka ftp
zgoraj je pravzaprav datoteka
ftpd/ftp.pam.sample
iz paketa ftpd-BSD-0.3.1.tar.gz
.
Hvala lepa Davidu A. Madoreu za ta prenos, ki smo ga zelo potrebovali.