|
|
17. Frequently
Encountered Error Messages
- Q: Modprobe
Can't Locate Module, XXX, and Similar Messages
- Q: Unknown Terminal Type
linux and Similar
- Q: INET: Warning: old
style ioctl... called!
- Q: ld: unrecognized option
'-m486'
- Q: GCC Says, Internal compiler error.
- Q: Make Says, Error 139.
- Q: Shell-Init: Permission
Denied when I Log In
- Q: No Utmp Entry. You Must Exec
... when Logging In
- Q: Warning--bdflush Not Running
- Q: Warning: obsolete
routing request made
- Q: EXT2-fs: warning:
mounting unchecked file system
- Q: EXT2-fs warning: maximal
count reached
- Q: EXT2-fs warning: checktime
reached
- Q: df Says, Cannot read
table of mounted file systems.
- Q: fdisk Says, "Partition
X has different physical/logical..."
- Q: fdisk: Partition
1 does not start on cylinder boundary
- Q: fdisk Says
Partition n Has an Odd Number of Sectors
- Q: Mtools Utilities Say
They Cannot Initialize Drive X
- Q: At the Start of Booting: Memory
tight
- Q: The System Log Says,
end_request: I/O error, ....
- Q: You don't exist. Go away.
- Q: Operation not permitted.
- Q: programname:
error in loading shared libraries: lib xxx..so.
x: cannot open shared object file: No such file
or directory.
- Q: init:
Id "x" respawning too fast: disabled for 5 minutes
.
- Q: FTP server says: "421 service
not available, remote server has closed connection."
Q: Modprobe
Can't Locate Module, XXX, and Similar Messages
A: These types of messages mostly occur at boot time
or shutdown. If modprobe, insmod, or rmmod complain about not
being able to find a module, add the following to the /etc/modules.conf
or /etc/modutils/aliases file, whichever is present
on your system.
$ alias <module-name> off
|
And use the name of the module that appears in the error message.
[J.H.M. Dassen]
Q: Unknown Terminal
Type linux and Similar
A: In early kernels the default console terminal type
has changed from console to linux. You must
edit /etc/termcap to change the line reading:
to
(there may be an additional dumb in there - if so
it should be removed.)
To get the editor to work you may need type:
(for bash and ksh), or
for csh or tcsh.
Some programs use /usr/lib/terminfo instead of /etc/termcap.
For these programs you should upgrade your terminfo package,
which is part of ncurses.
The same is true for X terminal displays. If your distribution
sets the TERM to something strange like xterm-24-color,
you can simply reset it to a generic value from the command line:
$ TERM="xterm"; export TERM
|
Q: INET: Warning:
old style ioctl... called!
A: You are trying to use the old network configuration
utilities. The new ones can be found on ftp://ftp.linux.org.uk/pub/linux/Networking/PROGRAMS/NetTools/
(source only, I'm afraid).
Note that they cannot be used just like the old-style programs.
See the NET-2 HOWTO for instructions on how to set up
the old-style networking programs correctly. Even better, see
the NET-3 HOWTO and upgrade your networking software.
Q: ld: unrecognized
option '-m486'
A: You have an old version of ld. Install a
newer binutils package that contains an updated ld. Look
on tsx-11.mit.edu in /pub/linux/packages/GCC/ for binutils-2.6.0.2.bin.tar.gz.
Q: GCC Says, Internal compiler
error.
A: If the fault is repeatable (i.e., it always happens
at the same place in the same file - even after rebooting and
trying again, using a stable kernel) you have discovered a bug
in GCC. See the GCC Info documentation (type F1-i
in Emacs, and select GCC from the menu) for details on how to
report the error. Make sure you have the latest version, though.
Note that this is probably not a Linux-specific problem. Unless
you are compiling a program many other Linux users also compile,
you should not post your bug report to any of the comp.os.linux
groups.
If the problem is not repeatable, you may be experiencing
memory corruption. Refer to the answer for Make
Says, Error 139..
A: Your compiler (GCC) dumped core. You probably have
a corrupted, buggy, or old version of GCC - get the latest release
or EGCS. Alternatively, you may be running out of swap space.
Refer to Why
Does the Machine Run Very Slowly with GCC / X / ...?.
If this doesn't fix the problem, you are probably having problems
with memory or disk corruption. Check that the clock rate, wait
states, and refresh timing for your SIMMS and cache are correct
(hardware manuals are sometimes wrong, too). If so, you may have
some marginal SIMMS, or a faulty motherboard or hard disk or
controller.
Linux is a very good memory tester - much better than MS-DOS
based memory test programs.
Reportedly, some clone x87 math coprocessors can cause problems.
Try compiling a kernel with math emulation (see How
To Upgrade/Recompile a Kernel). The no387 kernel
command line flag on the LILO prompt to force the kernel to use
math emulation, or it may be able to work and still use the '387,
with the math emulation compiled in but mainly unused.
More information about this problem is available on the Web
at http://www.bitwizard.nl/sig11/.
Q: Shell-Init:
Permission Denied when I Log In
A: Your root directory and all the directories up to
your home directory must be readable and executable by everybody.
See the manual page for chmod or a book on Unix for how
to fix the problem.
Q: No Utmp Entry. You Must
Exec ... when Logging In
Q: Warning--bdflush
Not Running
A: Modern kernels use a better strategy for writing
cached disk blocks. In addition to the kernel changes, this involves
replacing the old update program which used to write everything
every 30 seconds with a more subtle daemon (actually a pair),
known as bdflush. Get bdflush-n.n.tar.gz
from the same place as the kernel source code (see How
To Upgrade/Recompile a Kernel) and compile and install
it. bdflush should be started before the usual boot-time
file system checks. It will work fine with older kernels as well,
so there's no need to keep the old update around.
Q: Warning:
obsolete routing request made
A: This is nothing to worry about. The message means
that your version route is a little out of date, compared
to the kernel. You can make the message go away by getting a
new version of route from the same place as the kernel
source code. See How
To Upgrade/Recompile a Kernel.
Q: EXT2-fs:
warning: mounting unchecked file system
A: You need to run e2fsck (or fsck -t ext2
if you have the fsck front end program) with the -a
option to get it to clear the dirty flag, and then cleanly
unmount the partition during each shutdown.
The easiest way to do this is to get the latest fsck,
umount, and shutdown commands, available in Rik
Faith's util-linux package (see Where
Are the Linux FTP Archives?). You have to make sure that
your /etc/rc*/ scripts use them correctly.
NB: Don't try to check a file system that's mounted read/write.
This includes the root partition if you don't see
VFS: mounted root ... read-only
|
at boot time. You must arrange to mount the root file system
read/only to start with, check it if necessary, and then remount
it read/write. Almost all distributions do this. If your's doesn't,
read the documentation that comes with util-linux to
find out how to do this.
Note that you need to specify the -n option to mount
so it won't try to update /etc/mtab, since the root
file system is still read-only, and this will otherwise cause
it to fail.
Q: EXT2-fs warning:
maximal count reached
A: This message is issued by the kernel when it mounts
a file system that's marked as clean, but whose "number
of mounts since check" counter has reached the predefined
value. The solution is to get the latest version of the ext2fs
utilities (e2fsprogs-0.5b.tar.gz at the time of writing)
from the usual sites. See Where
Are the Linux FTP Archives?.
The maximal number of mounts value can be examined and changed
using the tune2fs program from this package.
Q: EXT2-fs warning:
checktime reached
A: Kernels from 1.0 onwards support checking a file
system based on the elapsed time since the last check as well
as by the number of mounts. Get the latest version of the ext2fs
utilities. See EXT2-fs warning:
maximal count reached.
Q: df Says, Cannot
read table of mounted file systems.
A: There is probably something wrong with your /etc/mtab
or /etc/fstab files. If you have a reasonably new version
of mount, /etc/mtab should be emptied or deleted at
boot time (in /etc/rc.local or /etc/rc.d/*),
using something like
Some old Linux distributions have an entry for the root partition
in /etc/mtab made in /etc/rc* by using rdev.
That is incorrectthe newer versions of mount do this automatically.
Some old distributions also have a line in /etc/fstab
that looks like:
/dev/sdb1 /root ext2 defaults
|
The entry for /root should read simply /.
Q: fdisk Says, "Partition
X has different physical/logical..."
A: If the partition number (X, above) is 1, this is
the same problem as in fdisk: Partition 1 does not start
on cylinder boundary.
If the partition begins or ends on a cylinder numbered greater
than 1024, this is because the standard DOS disk geometry information
format in the partition table can't cope with cylinder numbers
with more than 10 bits. You should see How
Can I Get Linux to Work With My Disk?.
Q: fdisk:
Partition 1 does not start on cylinder boundary
A: The version of fdisk that comes with many
Linux systems creates partitions that fail its own validity checking.
Unfortunately, if you've already installed your system, there's
not much you can do about this, apart from copying the data off
the partition, deleting and remaking it, and copying the data
back.
You can avoid the problem by getting the latest version of
fdisk, from Rik Faith's util-linux package (available
on all the usual FTP sites). Alternatively, if you are creating
a new partition 1 that starts in the first cylinder, you can
do the following to get a partition that fdisk likes.
Q: fdisk Says
Partition n Has an Odd Number of Sectors
A: The PC disk partitioning scheme works in 512-byte
sectors, but Linux uses 1K blocks. If you have a partition with
an odd number of sectors, the last sector is wasted. Ignore the
message.
Q: Mtools Utilities
Say They Cannot Initialize Drive X
A: This means that mtools is having trouble accessing
the drive. This can be due to several things.
Often this is due to the permissions on floppy drive devices
(/dev/fd0* and /dev/fd1*) being incorrect.
The user running mtools must have the appropriate access. See
the manual page for chmod for details.
Most versions of mtools distributed with Linux systems (not
the standard GNU version) use the contents of a file /etc/mtools
to determine which devices and densities to use, in place of
having this information compiled into the binary. Mistakes in
this file often cause problems. There is often no documentation
about this.
For the easiest way to access your MS-DOS files (especially
those on a hard disk partition) see How do I access files on
my DOS partition or floppy? Noteyou should never use mtools to
access files on an msdosfs mounted partition or disk!
Q: At the Start of Booting:
Memory tight
A: This means that you have an extra-large kernel,
which means that Linux has to do some special memory-management
magic to be able to boot itself from the BIOS. It isn't related
to the amount of physical memory in your machine. Ignore the
message, or compile a kernel containing only the drivers and
features you need. See How
To Upgrade/Recompile a Kernel.
Q: The System
Log Says, end_request: I/O error, ....
A: This error message, and messages like it, almost
always indicate a hardware error with a hard drive.
This commonly indicates a hard drive defect. The only way
to avoid further data loss is to completely shut own the system.
You must also make sure that whatever data is on the drive is
backed up, and restore it to a non-defective hard drive.
This error message may also indicate a bad connection to the
drive, especially with home brew systems. If you install an IDE
drive, always use new ribbon cables. It's probably is
a good idea with SCSI drives, too.
In one instance, this error also seemed to coincide with a
bad ground between the system board and the chassis. Be sure
that all electrical connections are clean and tight before placing
the blame on the hard drive itself.
[Peter Moulder, Theodore Ts'o]
Q: You don't exist.
Go away.
A: This is not a viral infection. It comes from programs
like write, talk, and wall, if your invoking
UID doesn't correspond to a valid user (probably due to /etc/passwd
being corrupted), or if the session (pseudoterminal, specifically)
you're using isn't properly registered in the utmp file
(probably because you invoked it in a funny way).
Q: Operation not permitted.
A: One or more of the file's or directory's attribute
bits are set incorrectly. If the I bit is set, for example,
you won't be able to change file permissions with chmod.
The solution is to use lsattr to display file and directory
attributes, and chattr to set and unset them. The programs'
documentation is contained in their manual pages.
[Paul Campbell]
Q:
programname: error in loading shared libraries:
lib xxx..so. x: cannot open
shared object file: No such file or directory.
A: A message like this, when the program that you're
trying to run uses shared libraries, usually means one of two
things: the program was either compiled on a machine that had
a different set of libraries or library paths than yours; or
you've upgraded your libraries but not the program.
Executable programs that are linked with dynamic libraries,
expect the full pathname of each of the library files it requires.
So do the shared libraries, if they rely on other libraries.
This is so the shared object dependencies remain as unambiguous
as possible, and also as a security measure.
Short of recompiling the executable file for the libraries
on the systemprobably the most desirable alternative in the long
run - you can try to determine which libraries the executable
file needs with the command: ldd programname.
The output will be a list of the shared libraries on the system
that the program needs to run, as well as the missing libraries.
You can then add the library packages, or if the libraries already
exist in a different directory, you can create a symbolic link
so the program can find it. For example, if the program requires
/usr/lib/libncurses.so.2, and your machine has /lib/libncurses.so.2,
you can create a link where the program expects to find the library;
e.g.:
# cd /usr/lib && ln -s /lib/libncurses.so.2 .
|
You should note, however, that creating library links like
these should be considered a security risk, and the additional
links you create will not be compatible with future upgrades.
It's simply a quick fix for backward compatibility.
Also, it may take some guesswork to determine in exactly which
of the system library directories the program expects to find
a shared library file, because ldd will not list the
paths of libraries it can't find. A program most likely will
tell the run-time linker, /lib/ld.so, to look for shared
libraries in /lib, /usr/lib, /usr/local/lib,
or /usr/X11R6/lib, if it's an X client. But that doesn't
mean that libraries can't be installed elsewhere. It helps to
have some idea of the original library configuration before proceeding.
Also be sure to run ldconfig after creating the symbolic
link, so that ld.so has an updated view of the system's
libraries. You should also make certain that all of the library
directories are listed in /etc/ld.so.conf, and perhaps
in the LD_LIBRARY_PATH environment variable.
Q:
init: Id "x" respawning too fast: disabled
for 5 minutes .
A: In most distributions this means that the system
is booting by default into runlevel 5, which is supposed to respawn
(re-start again after it's been exited) a graphical login via
xdm, kdm,
gdm, or whatever, and the system
can't locate the program.
However, Id can also indicate the absence or misconfiguration
of another program, like mingetty,
if init tries to respawn itself
more than 10 times in 2 minutes.
Id "x" is the number in the leftmost column of the
/etc/inittab file:
# 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
|
Commenting the offending line out and then fixing the errant
program and testing on the command line will allow you to see
any error messages that go to standard error output (console)
if the errors are not going to the system log file. Uncomment
the line and restart init with
kill -SIGHUP 1 or telinit
q to cause init to reinitialize
and reread the /etc/inittab file.
Some systems, however, rewrite /etc/inittab when
booting. In that case, refer to the init man page, and/or
the settings in /etc/sysconfig/init.
Refer to the init and /etc/inittab
man pages for detailed information.
[Carl King]
Q: FTP server says: "421
service not available, remote server has closed connection."
A: If an FTP server won't allow logins, it is probably
configured correctly, but the problem is probably with authorizing
users at login. FTP servers in current distributions often authorize
users with the Pluggable Authentication Modules library, in which
case there should be an authorization file /etc/pam.d/ftp.
A generic authorization file looks like this. (The line break
on the first "auth" line is for readability. The entry
is actually a single, long line).
#%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
|
Also, make sure the /etc/ftpusers file, or whatever
users file is named in the first "auth" line, is configured
correctly.
Btw, the sample ftp file above is actually the ftpd/ftp.pam.sample
file from the ftpd-BSD-0.3.1.tar.gz package. Many thanks
to David A. Madore for this much needed port.
|