Help! My Linux won't boot.


LI (or similar, on boot)

Lilo is not correctly set up. (For example, issues with old versions of lilo above block 1024 of the disk drive). See LiloErrorCodes.

Loading Linux.......... Uncompressing the kernel. (stop)

  1. Are you using an InitialRamDisk - initrd(4)? If so, do you have CONFIG_BLK_DEV_RAM and CONFIG_BLK_DEV_INITRD enabled in your kernel?
  2. The kernel was compiled for a different architecture - for example, it has optimisations for AMD chips that don't work on an Intel chip, or vice-versa. If you changed the architecture of the kernel config (well, for kernel v 2.4 at least), you need to do a make clean afterwards, otherwise some object files that should be re-compiled aren't.

GRUB <blinking cursor>

GRUB is unable to load its first stage loader, use a rescue disk to start the machine. Reinstall GRUB; see the GrubNotes page.

GRUB loading stage 2

If this is the case your CMOS battery might have gone flat. They generally last 3-5 years and you lose your hard disk setup often if the battery dies which then causes this problem.

I get the GRUB command prompt instead of my menu...

...but if I type in configfile /grub/grub.conf the menu loads.

This may occur with a Mirrored SoftwareRaid setup. Reconfigure your grub.conf file and remove any reference to a root (*) device.

install --stage2=/boot/grub/stage2 (hd0,0)/grub/stage1 (hd0) (hd0,0)/grub/stage2 p /grub/grub.conf
install --stage2=/boot/grub/stage2 (hd1,0)/grub/stage1 (hd1) (hd1,0)/grub/stage2 p /grub/grub.conf

NB: This assumes a seperate /boot partition

I'm having the same problem, but I'm not using RAID or anything...

From all the research I've done, it seems like problems of this sort are always caused by grub.conf mistakes. Mine seemed to be OK though, but I was still seeing problems. I noticed that when I ran setup (hd0) at the GRUB prompt, it mentioned a file called menu.lst. I renamed grub.conf to menu.lst, and things are now working! (But you should make a SymLink from grub.conf to menu.lst instead of renaming.) Apparently there may be multiple default filename possibilities for the GRUB menu file.

During Kernel bootup

ESR value before enabling vector: 0000002

Various VIA chipset AMD Athlon/Duron motherboards (eg KT400, KM266) running kernel 2.4 (e.g. kernel 2.4.21) hang after printing this message. For example, Athlon XP2000+ on an AD77 motherboard (KT400), Athlon XP1800+/XP2400+ on a PC Chips M825L (KM266)). It is caused by APIC support in the kernel (not to be confused with ACPI). Booting with the noapic kernel flag doesn't fix it (although it can make the machine go into an infinite loop printing an error about apic on cpu 0). However, booting with nolapic kernel flag does in many cases work. Recompiling the kernel without APIC support resolves this. Note that the same motherboards will need the nolapic kernel flag to boot Knoppix - otherwise the screen just turns black and the computer hangs.

ACPI: setting ELCR to 0200 (from 1e20)

My KT400-based motherboard (that used to give the previous error message under older kernels) hangs immediately after printing this message with Ubuntu 5.10's default kernel (2.6.12-6). The message just before it is ACPI: Looking for DSDT in initrd... not found! Again, adding nolapic and noapic to the kernel boot command fixes this. Note that if your distribution uses the quiet kernel boot flag to hide all those messages then you'll never know that it's the BIOS's buggy APIC support at fault. This motherboard is an AD77 flashed with the latest BIOS (2004/11/02) so you will only be able to boot a linux kernel that is compiled or booted without APIC support.

Warning: unable to open an initial console

This is usually caused by a failure to find or mount /dev or a bad /dev being used. When remastering Knoppix this can be cause by failing to preserve the special nature of the device files under /dev while building remastering. See the dev option of mount(8).

Starting services

modprobe - Cannot find module char-major-##

Devices in Linux have major and minor numbers (unless you use the newer DevFs). Devices need to be implemented by the Kernel, either compiled in directly, or via a loadable Module. For example, serial ports are on char-major-4; eg ls -l /dev/ttyS0 shows major device number 4 and minor device number 64...

crw-rw---- 1 root dialout 4,  64 Feb 10 1998 /dev/ttyS0
                    major ^   ^^ minor

A common problem char-major-10 is misc devices such as psaux, watchdog, apm and nvram - cat /proc/misc should list the ones you're using. You will probably need to do some configuration in /etc/modules or /etc/modules.conf (see modules.conf(5)). Normally these messages don't cause problems later in life, but it's nice to have them cleaned up.

The allocation of each number to its respective device can be looked up in the file /usr/src/linux-$VERSION/Documentation/devices.txt, provided the Kernel sources have been installed. In this file you can find out what device and module are affected. It does not have to be an error, but perhaps only information about the module not having to be loaded any more because it is already loaded or is not required.

To see what module you're missing, use

grep char-major-10-135 /etc/modutils/arch/i386
  • char-major-6 is the parallel port and can be fixed by compiling CONFIG_PARPORT=m
  • char-major-10-135 is the Enhanced Realtime Clock and can be fixed by compiling CONFIG_RTC=m

See KernelErrorMessages for more information about missing modules.

Runlevel 2 and beyond

Loading syslog... (5 minute pause)
Loading MTA... (5 minute pause)
Loading apache... failed

Your problem is DNS, or the lack thereof. These services will all want to look up names in their configuration (normally your local machine name) and will be taking a month of sundays to time out as a result. Confirm this by typing host mydomain.tla at the root prompt.

A good solution for this is to make sure that your /etc/hostname file (which is set using hostname(1)) also appears in your /etc/hosts file, like such  localhost alias1 alias2
Eg  localhost firewall

Remember, /etc/hostname should contain the shortened version of the name, firewall, not the FQDN, and the first name for in /etc/hosts should be localhost.

The following authors of this page have not agreed to the WlugWikiLicense. As such copyright to all content on this page is retained by the original authors.
  • PrashantYadava
The following authors of this page have agreed to the WlugWikiLicense.

PHP Warning

lib/blame.php:177: Warning: Invalid argument supplied for foreach() (...repeated 2 times)

lib/plugin/WlugLicense.php:99: Warning: Invalid argument supplied for foreach()

lib/plugin/WlugLicense.php:111: Warning: in_array() [<a href=''></a>]: Wrong datatype for second argument