Error Messages Explained

From LXF Wiki

Revision as of 14:21, 15 Oct 2008; view current revision
←Older revision | Newer revision→

Graham Morrison decodes the secret meaning behind the most common Linux error messages and helps you cure the problems in the process. Wiki post by Mr. Ben Figueroa. Original version written by Mr. Graham Morrison in LXF 109 (September 2008). For the original article in PDF click here.

Some people are scared of Linux because the error messages it produces seem to imply the coming of the apocalypse. And there’s a great number of them. If you search for the word ‘Error’ in our forums, you get more than 150 pages of results. That’s a lot of people experiencing a lot of problems.

The biggest difficulty for these users isn’t the number of error messages; it’s trying to get something useful out of them. What does ‘Kernel Oops’ mean, for example, or ‘PCI Can’t Allocate’? Linux error messages are obtuse, difficult to understand and rarely helpful. Which is a pity, because the vast majority of problems can be solved quite easily, and a considerable number involve the same problems recurring again and again. In business speak, these are low-hanging fruit. And it’s these problems we want to target. You shouldn’t need to be a Linux expert to get your machine to boot, or a programmer to play a movie file. Yet it’s this level of expertise that most error messages seem to assume of their users. We want to demystify these common errors, and provide solutions that should help ordinary Linux users side-step the problem and get their machine back on track. We’ve chosen areas we think are the most problematic. These include booting problems, general software usage, the filesystem, networking and distro installation.

We’ve picked a few of the most common errors from each, and explained what’s happening along with the solution. The intention is that even if the problems don’t apply to you, you can get an idea of how and why Linux error messages might seem arcane and a little intimidating. And hopefully, this will leave you with the knowledge to find a better solution that might help you to solve your own problems.

Distro installation

Every Linux distribution has a different installation routine, and each creates problems. Ubuntu might work for one machine and not for another. A machine with a working Ubuntu installation may not work with Fedora, or OpenSUSE, or Linux Mint, or Mandriva...

  • ERROR Can’t boot from CD/DVD

If you’re new to Linux, this is often your first experience of the operating system: you insert your new disc into the drive and restart the machine, only to be greeted by the same operating system you were using before. The problem is that your hard drive has a higher boot priority than your optical drive. Many modern BIOSes include a boot menu from where you can change the priority of your devices on the fly – try pressing the ‘Escape’ key or F12 when you first see something on the screen. From there, you can simply choose to boot from the optical drive.

Older machines might not have the same facility. You will then need to press either the F2 or ‘Del’ key at boot time to enter the system BIOS, and change the boot order from there. You can usually find the option under the ‘Boot’ menu, and you will need to save these changes to be able to boot from the optical drive. This is the same procedure you would use if you needed to boot from an external drive or USB stick, which can be just as useful if you find yourself in an internet cafe or in front of a corporate machine.

  • ERROR PCI: cannot allocate

There are many errors like this, and they mostly occur at boot time. They all share the same cause – badly behaved power management. The culprit is something called ACPI, the Advanced Configuration and Power Interface. Despite being a standard for power management, it has been causing problems for over ten years. The trouble is that hardware drivers have a habit of not fully implementing the specification. Whenever your machine’s power management spins into action, such as when you turn on your machine, or resume from sleep, certain devices cause problems. Live CD installations make this problem worse, because they don’t have the luxury of probing for exact hardware matches when they boot, or including every possible driver for every device, which is why this problem often occurs when installing off a Live CD.

There’s only one thing you can do – turn off ACPI. You can sometimes do this from your system BIOS, but if not, you’ll need to disable ACPI at boot time. Press Escape when booting to enter the Grub menu and select the option you normally use. Go down to the line that starts with kernel and press E to edit the line. At the end of this line add acpi=off noapic, press return and B to start the boot process. You should find that your machine boots without problems, and if you go on to install Linux, your distro should make a better job of choosing the correct drivers for the installation.

Booting problems

There’s nothing worse than an error that stops your system booting – mainly because you’re now without your primary problem solving tool. Yet booting problems are common. This is because we all like to install distributions, and we often run more than one on a single machine, as well as share a hard drive with Windows. Any one of these installations can mess up the boot routine, and getting a working installation back isn’t always so easy.

  • ERROR Grub...

If this is all you see when you turn on your machine, the Grub boot menu has been corrupted. This is the part of your Linux installation that’s responsible for booting the operating system. And the only thing you can do is boot Linux off some other media, preferably a Live Linux CD. When you get to the desktop, open a command line terminal, switch to the administrator account and type grub. This next step will also work if your Grub menu entries no longer point to your Linux partition.

Type find /boot/grub/stage1. This is searching for the location of the original boot drive, and it should return something along the lines of (hd0,0) – this is Grub’s own syntax for the location of the hard drive, and this is dependent on your own installation, so don’t assume it’s going to be (hd0,0). You should now type root (hd0,0) (or your equivalent) to tell Grub which partition is being used to boot from, followed by setup (hd0) to reinstall the boot loader into the disk’s master boot record. You should then be able to restart your machine and boot normally.

  • ERROR Out of range
  • ERROR Fatal server error: no screens found

This occurs when the preconfigured screen mode is incompatible with your monitor. Press Ctrl+Alt+F1 to switch to a console view, and log in as root (or use sudo from your normal user account in Ubuntu). Users of Debian-based distros can type dpkgreconfigure xserver-xorg to reconfigure the screen.

Other users will have to fix their settings manually as follows. First, type cd /etc/X11 followed by cp xorg.conf xorg.lxf to make a backup of your configuration file. Now open this file with whichever command line editor you’re most comfortable with. Type nano xorg.conf if you’re not sure. If you know your screen’s specification, scroll down the configuration file and look for ‘Section Monitor’. You then need to hand-edit the horizontal and vertical refresh rates. If you don’t know your screen’s resolution, scroll even further down the file until you find the Screen section. You need to delete all the high screen resolutions here, as we’re looking for the lowest common denominator (we’d suggest removing any resolution larger than 1024x768). You’ll be able to increase the resolution from the desktop when you get your screen working. If neither of these methods work, the last failsafe option is to change the ‘Device’ driver to “vesa”, sidestepping your graphics drivers entirely.

  • ERROR Kernel panic!

A ‘Kernel panic’ or ‘Kernel oops!’ message is the closest us Linux users get to the Blue Screen Of Death that still haunts Windows users. And like the Windows equivalent, there’s very little you can do when one occurs other than hold down the power button. The kernel is at the heart of your Linux system, and a panic is usually caused by misbehaving hardware forcing the kernel into uncharted areas of your system’s memory. The best solution is a kernel upgrade, as the hardware problem may have been solved in a newer version. But you may need to revert to an older version of the kernel from your boot menu to be able to use Linux, to then install the upgrade.

The other option is to identify the offending hardware. If you’ve just made a hardware change or installed a new driver, this is likely to be the culprit. Otherwise, you might have to resort to removing each piece of hardware in turn and seeing if your machine boots. Despite the reams of output from a kernel panic error, there’s usually very little the average user can understand, as the original error has sent the kernel in a completely random direction.

  • ERROR Incorrect username or password

You’d be surprised at just how many readers phone us to say they’ve forgotten their password, or even worse, promise they’ve never been asked for one. Fortunately, all is not lost. You need to boot your machine into single-user or recover mode. To do this, press the Escape key as soon as your computer leaves the BIOS screen on startup. This will show the Grub boot menu.

If there isn’t the option to boot into either a single user or recovery mode, choose the kernel that normally boots (usually top of the list), and press E to edit the boot parameters. Move to the line that begins kernel, then press E again to edit the text on that line. Make sure the cursor is at the end of the line and add the following: rw init=/bin/bash. Press Enter, followed by B to boot. We’ve just changed the default boot option to open a Bash terminal rather than the normal session. As with the safe and recovery modes, all you now need to do is type passwd followed by the name of the user whose password you need to change. Without a username, the passwd command will change the root password. Just restart the machine to use your new password.