10. Frequently Encountered Error Messages
10.1. Modprobe Can't Locate Module, XXX, and Similar Messages.
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.
10.2. Unknown Terminal Type "linux" and Similar.
In early kernels the default console terminal type has changed from
"console" to "linux." You must edit /etc/termcap to change the line
(there may be an additional "dumb" in there--if so it should be
To get the editor to work you may need type:
(for bash and ksh), or
$ setenv TERM console
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
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
10.3. INET: Warning: old style ioctl... called!
You are trying to use the old network configuration utilities. The new
ones can be found on
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.
10.4. ld: unrecognized option '-m486'
You have an old version of ld. Install a newer binutils package--this
will contain an updated ld. Look on tsx-11.mit.edu in
/pub/linux/packages/GCC/ for binutils-126.96.36.199.bin.tar.gz.
10.5. GCC says, "Internal compiler error."
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
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--see ("Make Says, "Error 139."")
10.6. Make Says, "Error 139."
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--see ("My Machine Runs Very
Slowly when I Run 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 ("How Do I Upgrade/Recompile My
Kernel?") 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
10.7. Shell-Init: Permission Denied when I Log in.
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.
10.8. No Utmp Entry. You Must Exec ... when Logging in.
Your /var/run/utmp is screwed up. You should have
in your /etc/rc.local or /etc/rc.d/*. See, ("I Have Screwed Up My
System and Can't Log in to Fix It.") Note that the utmp may also be
found in /var/adm/ or /etc/ on some older systems.
10.9. Warning--bdflush Not Running.
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 ("How
Do I Upgrade/Recompile My 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.
10.10. Warning: obsolete routing request made.
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. ("How Do I Upgrade/Recompile My
10.11. EXT2-fs: warning: mounting unchecked file system.
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
("Where Can I Get Linux Material by FTP?") 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.
10.12. EXT2-fs warning: maximal count reached.
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. ("Where Can I Get Linux
Material by FTP?")
The maximal number of mounts value can be examined and changed using
the tune2fs program from this package.
10.13. EXT2-fs warning: checktime reached.
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. ("EXT2-fs warning:
maximal count reached.")
10.14. df Says, "Cannot read table of mounted file systems."
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
$ rm -f /etc/mtab*
Some old Linux distributions have an entry for the root partition in
/etc/mtab made in /etc/rc* by using rdev. That is incorrect--the 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 /.
10.15. fdisk Says, "Partition X has different physical/logical..."
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?")
10.16. fdisk: Partition 1 does not start on cylinder boundary.
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
* Create partition 1 in the normal way. A `p' listing will produce
the mismatch complaint.
* Type u to set sector mode and do p again. Copy down the number
from the End column.
* Delete partition 1.
* While still in sector mode, re-create partition 1. Set the first
sector to match the number of sectors per track. This is the
sector number in the first line of the p output. Set the last
sector to the value you wrote down in the step above.
* Type u to reset cylinder mode and continue with other partitions.
Ignore the message about unallocated sectors--they refer to the
sectors on the first track apart from the Master Boot Record, and they
are not used if you start the first partition in track 2.
10.17. fdisk Says Partition n Has an Odd Number of Sectors.
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.
10.18. A Mtools Utility Says It Cannot Initialize Drive XYZ.
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
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? Note--you should never use mtools to access files on an
msdosfs mounted partition or disk!
10.19. At the Start of Booting: Memory tight
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. ("How Do I
Upgrade/Recompile My Kernel?")
10.20. My Syslog says, "end_request: I/O error, ...."
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,
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
[Peter Moulder, Theodore Ts'o]
10.21. "You don't exist. Go away."
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).
10.22. "Operation not permitted."
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.
11. The X Window System
11.1. Does Linux Support X?
Yes. Linux uses XFree86 (the current version is 4.0, which is based on
X11R6). You need to have a video card which is supported by XFree86.
See the XFree86 HOWTO for more details. Most Linux distributions
nowadays come with an X installation. However, you can install or
upgrade your own, from "ftp://metalab.unc.edu/pub/Linux/X11/Xfree86-*"
and its mirror sites, or from http://www.xfree86.org/.
11.2. How Do I Get the X Window System to Work?
The answers to this question can, and do, fill entire books. If the
installation program wasn't able to configure the X server correctly,
Linux will most likely try to start the X display, fail, and drop back
into text-only terminal mode.
First and foremost, make certain that you have provided, as closely as
possible, the correct information to the installation program of your
video hardware: the video card and monitor. Some installation programs
can correctly guess a "least common denominator" screen configuration,
like a 640-by-480 VESA-standard display, but there are many possible
video hardware configurations that may not be able to display this
The X Window System configuration file is called (usually)
/etc/XF86Config, /etc/X11/XF86Config, or
If you need to manually configure the X server, there are several
* Try to use the XF86Setup program, which can help identify the
correct X server and monitor timings for the video hardware.
* Make sure that the X server has the correct options. If you log in
as the superuser, you should be able to use X --probeonly to get a
listing of the video card chipset, memory, and any special
graphics features. Also, refer to the manual page for the X
server. (E.g.; man X) Also, try running the X server and
redirecting the standard error output to a file so you can
determine what error messages the server is generating; e.g., X
* With that information, you should be able to safely refer to one
of the references provided by the Linux Documentation Project.
("Where can I get the HOWTO's and other documentation? ") There
are several HOWTO's on the subject, including a HOWTO to calculate
video timings manually if necessary. Also, the Installation and
Getting Started guide has a chapter with a step-by-step guide to
writing a XF86Config file.
Also, make sure that the problem really is an incorrect XF86Config
file, not something else like the window manager failing to start. If
the X server is working correctly, you should be able to move the
mouse cursor on the screen, and pressing Ctrl-Alt-Backspace will shut
down the X server and return to the shell prompt in one of the virtual
11.3. Where Can I Get a Ready-Made XF86Config for My System?
If you can't seem to get X working using the guidelines above, refer
to the XFree86 HOWTO, recent versions of Installation and Getting
Started, and the instructions for the XF86Setup program. The contents
of the XF86Config file depend on the your exact combination of video
card and monitor. It can either be configured by hand, or using the
XF86Setup utility. Read the instructions that came with XFree86, in
/usr/X11R6/lib/X11/etc. The file you probably need to look at most is
README.Config. You should not use the sample XF86Config.eg file which
is included with newer versions of XFree86 verbatim, because the wrong
video clock settings can damage your monitor. Please don't post to
comp.os.linux.x asking for an XF86Config, and please don't answer
such requests. If you have a laptop, look at the Linux Laptop Web page
("How Do I Know If My Notebook Runs Linux?") Many of the installation
notes also have the XF86Config file for the display. If you have a
desktop machine, there are a few sample XF86Config files at
Refer also to the XFree86 FAQ
and the monitor timings list
, and in the /usr/X11R6/lib/X11/
directory of your X distribution.
11.4. What Desktop Environments Run on Linux?
Linux with XFree86 supports the KDE, GNOME, and commercial CDE desktop
environments, and extended window managers like WindowMaker. Each uses
a different set of libraries and provides varying degrees of MS
Windows-like look and feel.
Information on KDE is available from http://www.kde.org/.
environment uses the Qt graphics libraries, available from
The desktop uses its own window manager, kwm, and
provides a MS Windows-like look and feel.
The GNOME home page is http://www.gnome.org/.
The environment uses the
free GTK libraries, available from http://www.gtk.org/
, and the
Enlightenment window manager, available from
The commercial CDE environment uses the Motif libraries and window
manager, mwm. Several vendors have made the source code of Motif
available and provided binary packages for Linux distributions.
Download and installation information is available at
A free version of Motif, called LessTiF, is available from
is a window manager that has
many desktop environment-like features. It provides support for
a clone of the commercial NeXTStep
11.5. xterm Logins Show Up Strangely in who, finger.
The xterm that comes with XFree86 2.1 and earlier doesn't correctly
understand the format that Linux uses for the /var/adm/utmp file,
where the system records who is logged in. It therefore doesn't set
all the information correctly. The xterms in XFree86 3.1 and later
versions fix this problem.
12. How to Get Further Assistance
12.1. You Still Haven't Answered My Question!
Please read all of this answer before posting. I know it's a bit long,
but you may be about to make a fool of yourself in front of 50,000
people and waste hundreds of hours of their time. Don't you think it's
worth spending some of your time to read and follow these
If you think an answer is incomplete or inaccurate, please e-mail
Robert Kiesling at email@example.com.
Read the appropriate Linux Documentation Project books--see ("Where
Can I Get the HOWTO's and Other Documentation?")
If you're a Unix or Linux newbie, read the FAQ for
comp.unix.questions, news.announces.newusers, and those for any of
the other comp.unix.* groups that may be relevant.
Linux has so much in common with commercial unices, that almost
everything you read there will apply to Linux. The FAQ's, like all
FAQ's, be found on rtfm.mit.edu in /pub/usenet/news.answers/ (the
firstname.lastname@example.org can send you these files, if you don't have
FTP access). There are mirrors of rtfm's FAQ archives on various
sites--check the Introduction to *.answers posting, posted, or look in
news-answers/introduction in the directory above.
Check the relevant HOWTO for the subject in question, if there is one,
or an appropriate old style sub-FAQ document. Check the FTP sites.
Try experimenting--that's the best way to get to know Unix and Linux.
Read the documentation. Check the manual pages (type man man if you
don't know about manual pages. Also try man -k subject and apropos
subject --they often list useful and relevant manual pages.
Check the Info documentation (type F1-i, i.e. the F1 function key
followed by "i" in Emacs). This isn't just for Emacs. For example, the
GCC documentation lives here as well.
There will also often be a README file with a package that gives
installation and/or usage instructions.
Make sure you don't have a corrupted or out-of-date copy of the
program in question. If possible, download it again and re-install
it--you probably made a mistake the first time.
Read comp.os.linux.announce--it often contains very important
information for all Linux users. General X Window System questions
belong in comp.windows.x.i386unix, not in comp.os.linux.x. But read
the group first (including the FAQ), before you post. Only if you have
done all of these things and are still stuck, should you post to the
appropriate comp.os.linux.* newsgroup. Make sure you read the next
question first. "( What to put in a request for help. )"
12.2. What to Put in a Request for Help.
Please read the following advice carefully about how to write your
posting or E-mail. Making a complete posting will greatly increase the
chances that an expert or fellow user reading it will have enough
information and motivation to reply.
This advice applies both to postings asking for advice and to personal
E-mail sent to experts and fellow users.
Make sure you give full details of the problem, including:
* What program, exactly, you are having problems with. Include the
version number if known and say where you got it. Many standard
commands tell you their version number if you give them a
* Which Linux release you're using (Red Hat, Slackware, Debian, or
whatever) and what version of that release.
* The exact and complete text of any error messages printed.
* Exactly what behavior you expected, and exactly what behavior you
observed. A transcript of an example session is a good way to show
* The contents of any configuration files used by the program in
question and any related programs.
* What version of the kernel and shared libraries you have
installed. The kernel version can be found by typing "uname -a,"
and the shared library version by typing "ls -l /lib/libc*."
* Details of what hardware you're running on, if it seems
You are in little danger of making your posting too long unless you
include large chunks of source code or uuencoded files, so err on the
side of giving too much information.
Use a clear, detailed Subject line. Don't put things like "doesn't
work," "Linux," "help," or "question" in it--we already know that.
Save the space for the name of the program, a fragment of an error
message, or summary of the unusual behavior.
Put a summary paragraph at the top of your posting.
At the bottom of your posting, ask for responses by email and say
you'll post a summary. Back this up by using "Followup-To: poster."
Then, actually post the summary in a few days or a week or so. Don't
just concatenate the replies you got--summarize. Putting the word
"SUMMARY" in your summary's Subject line is also a good idea. Consider
submitting the summary to comp.os.linux.announce.
Make sure your posting doesn't have an inappropriate References:
header line. This marks your article as part of the thread of the
article referred to, which will often cause it to be junked by
readers, along with the rest of a boring thread.
You might like to say in your posting that you've read this FAQ and
the appropriate HOWTO's--this may make people less likely to skip your
Remember that you should not post E-mail sent to you personally
without the sender's permission.
12.3. I Want to Mail Someone about My Problem.
Try to find the author or developer of whatever program or component
is causing you difficulty. If you have a contact point for your Linux
distribution, you should use it.
Please put everything in your E-mail message that you would put in a
posting asking for help.
Finally, remember that, despite the fact that most of the Linux
community are very helpful and responsive to E-mailed questions,
you're likely asking for help from unpaid volunteers, so you have no
right to expect an answer.
13. Acknowledgments and Administrivia
13.1. Feedback Is Invited.
Please send me your comments on this FAQ.
I accept contributions to the FAQ in any format. All contributions,
comments, and corrections are gratefully received. My E-mail address
If you wish to refer to a question in the FAQ, it's better for me if
you do so by the question heading, rather than number. The question
numbers are generated automatically, and I don't see them in the
source file I edit.
I prefer comments in English to patch files--context diff is not my
13.2. Formats in Which This FAQ Is Available.
This document is available as an ASCII text file, an HTML World Wide
Web page, Postscript, and as a USENET news posting.
HTML is generated from SGML source using the Jade DSSSL interpreter by
James Clark. Text versions are generated using lynx, which is part of
most Linux distributions. Hard-copy versions are further formatted
with JadeTeX, by Sebastian Rahtz.
The Usenet version is posted regularly to news.answers, comp.answers,
and comp.os.linux.misc. It is archived at
If you would like to receive the archived version of the FAQ by
E-mail, send the following in the body of an E-mail message to
Text, HTML, and SGML versions are available from the Linux archives at
metalab.unc.edu, and from http://www.linuxdoc.org/
, but they may be
out of date, owing to lack of time on the LDP maintainers' parts.
The up-to-date text and HTML versions are available at
and directly from the FAQ maintainer,
13.3. Authorship and Acknowledgments.
This FAQ is compiled and maintained by Robert Kiesling,
email@example.com, with assistance and comments from Linux
activists all over the world.
Special thanks are due to Matt Welsh, who moderated
comp.os.linux.announce and comp.os.linux.answers, coordinated the
HOWTO's and wrote substantial portions of many of them, Greg Hankins
the former Linux Documentation Project HOWTO maintainer, Lars
Wirzenius and Mikko Rauhala, the former and current moderators of
comp.os.linux.announce, Marc-Michel Corsini, who wrote the original
Linux FAQ, and Ian Jackson, the previous FAQ maintainer. Thanks also
to Roman Maurer for his many updates and additions, especially with
European Web sites, translations, and general miscellany.
Last but not least, thanks to Linus Torvalds and the other
contributors to Linux for giving us something to talk about!
13.4. Disclaimer and Copyright.
Linux Frequently Asked Questions with Answers may be reproduced and
distributed in its entirety (including this authorship, copyright, and
permission notice), provided that no charge is made for the document
itself, without the author's consent. This includes "fair use"
excerpts like reviews and advertising, and derivative works like
Note that this restriction is not intended to prohibit charging for
the service of printing or copying the document.
These conditions are in addition to the regular LDP distribution
license, at http://www.linuxdoc.org/manifesto.html/
Exceptions to these rules may be granted. I would be happy to answer
any questions regarding this copyright. E-mail me at
firstname.lastname@example.org. As the license, referred to above, says,
these restrictions are here to protect the contributors, not to
restrict you as educators and learners.