Ubuntu – How to install on a non-PAE CPU? (error “Kernel requires features not present on the CPU: PAE”)

kernelpaesystem-installation

After burning Ubuntu 12.04 to a CD, I tried booting and got the message:

This kernel requires the following features not present on the CPU:
pae

Unable to boot - please use a kernel appropriate for your CPU.

What does this mean?

Best Answer

  • The error message means that your CPU does not support PAE extensions - that is a technique which allows a 32bit CPU to address more than 4GB of memory address space.

    By default, 12.04 and later versions of Ubuntu expects a CPU with this capability:

    PAE is provided by Intel Pentium Pro and above CPUs, including all later Pentium-series processors (except the 400 MHz-bus versions of the Pentium M). It is also available on other processors with similar or more advanced versions of the same architecture, such as the AMD Athlon[dubious – discuss] and later AMD processor models. wikipedia

    While the above is strictly true, old systems which have the memory controller on the motherboard may not "expose" the CPU's PAE support, effectively making them non-PAE.

    There is a heated bug report about this; Canonical has decided that the default Ubuntu Desktop install will expect PAE support.

    A few suggested workarounds:

    Workaround 1: Install Lubuntu or Xubuntu, then install the regular Ubuntu Desktop

    • Install either Lubuntu 12.04 32-bit or Xubuntu 12.04 32-bit; both of these use a non-PAE kernel by default.
    • Once you boot into your new Lubuntu/Xubuntu, you can then switch to the default Unity desktop by installing the ubuntu-desktop package.

    Workaround 2: Install an older version and then upgrade to 12.04

    Install 10.04 or 11.10 and then upgrade to 12.04. See the linked question below for 12.10.

    Workaround 3: If you have a wired internet connection, use the "net install" mini-CD

    • You will need a reasonably fast wired connection for this method -- all packages will be downloaded over the internet.
    • Download the non-PAE netboot CD image mini.iso and burn it to a CD or USB.
    • Boot from it, follow the steps, and choose linux-generic when asked to choose a kernel, and ubuntu-desktop to get the "default" Ubuntu installation the regular Desktop CD would have given you, just with a non-PAE kernel.
      • You can also choose one of the other desktops. You should choose a desktop otherwise you will not have a GUI to play with after installation.

    Workaround 4: Ubuntu 12.04.5 and 14.04 (or later) on Pentium M only

    • Ubuntu 12.04.5 and 14.04 support an option ("forcepae") to enable PAE on Pentium M CPUs (where it is disabled by default). To enable it:

      • Boot the 32-bit Ubuntu (or Xubuntu etc.) installer
      • When the image of the keyboard and little man in circle appears hit the Tab key
      • "Choose your language" popup appears. Use the cursor keys and hit the Enter key to choose your language
      • Press F6, a grey menu will popup with some boot options
      • Press escape to close the window
      • You will now see a line that says:

      Boot Options file=/cdrom/preseed/ubuntu.seed boot=casper initrd=/casper/initrd.lz quiet splash --

      Edit this line and add the forcepae parameter with spaces twice around the -- at the end:

      Boot Options file=/cdrom/preseed/ubuntu.seed boot=casper initrd=/casper/initrd.lz quiet splash forcepae -- forcepae

      • forcepae -- forcepae note:

        forcepae is required twice because it sets the boot parameters for two different kernel boots - the kernel that runs as part of the installer (left of --), and the kernel that runs on the installed system (right of --).

        The text at the end should be -- forcepae not --forcepae. There is a space between -- and forcepae

      • Hit the Enter key, hopefully Ubuntu will boot and the rest of your install will be successful. If you have graphical problems with Unity, or just find it slow, try a more lightweight distribution like Xubuntu.


    Linked Question:

    1. How can I tell if a machine has PAE?
    2. Will it be possible to use a non-pae kernel in recent versions of Ubuntu?
  • Related Question