In this article I will write about one of the errors you are probably going to encounter if you decide to follow the “Path of the Penguin” as I like to call it, when someone gives a chance to Linux an tries to install it. This error is none other than the title of this article: “This kernel requires the following features not present on the CPU: pae”, sometimes followed by “Unable to boot – please use a kernel appropriate for your CPU.”.
Why Path of the Penguin? Because he is cute and nerdy and no, this is not an article written by a girl, but as long as you do have a hear,at least a part of it will agree with me: Linux Mascot
I will try to present these errors in different environments and using different technologies and operating systems but mostly using Linux in Virtual Environments.
To learn a little more about processor technologies we have to first know that PAE stands for “Physical Address Extension”, NX for “no execute” and XD for “execute disable”. These three represent processor technologies which can cause trouble in virtual environments like VMWare or Oracle VM Environment.
You will have to keep in mind that this error is related to any of the three technologies I mentioned above, and can be a result of incompatibility between Host, Guest and Operating System. You can get the main error presented in this article or a few additional ones related to the same incompatibility between the entities. What I am trying to say is that you can get the same problem based on a combination of incompatibility of the following possibilities:
– Host that makes use of any of the three technologies
– Operating System that does not support the Host or Guest required technology out of the three of them (for PAE we call them non-PAE operating systems)
– Guest(s) managed on the Host that need PAE, NX or XD technology (PAE support is disabled by default in Oracle VM Virtualbox Guest Settings)
– Operating System that supports PAE, making them effectively PAE enabled (like in the case of the newest Linux distributions that by default come as PAE enabled version due to kernel build)
You will encounter the error “This kernel requires the following features not present on the CPU: pae” from time to time, depending if the possible conditions exist. It doesn’t matter the Operating System or Linux distribution you are about to install and don’t even think it will be different for virtual environments. I won’t waste time by testing it on each Linux distribution so I will assume it just happens on most of them, even if I can’t confirm for sure except only for Slackware and Ubuntu. Those of you who did meet it on a different one could confirm it or not. Keep in mind that, even if this is not always true, most of the times you will be facing this problem in virtual environments.
What the message actually means is that your CPU does not support PAE extensions, a technique that allows the use of more than 4 GB of memory address space on a 32bit CPU. Most of the latest Linux distributions, like in the case of Slackware 14.0 and Ubuntu 12.04 and above expect such capabilities from computers on which they are to be installed.
PAE technology is known to exist as capability on all new CPUs, starting with Intel Pentium Pro and later CPUs (Pentium Series Processors without the 400MHz bus version of the Pentium M) and also on other processors with similar architecture, such as some of the AMD Athlon series and later AMD processor models. Keep in mind that older systems that have the memory controller on the motherboard may not provide PAE support for CPUs, making them non-PAE due to this lack of feature exposing.
NX technology is known to exist in AMD processors like Athlon64 and Sempron (and others) while XD technology is available on Intel EMT64 processors.
Let’s say we are using an Oracle VM environment. Your computer will be the host for some virtual machines you will be creating on it.
I assume you know the role of a host in VM and I won’t have to cover this too, so I will go further with the example.
Let’s also say we have a few virtual machines on this host computer, called guests. If the operating system you are planning to install is PAE enabled and the guest or the host is NOT, prepare for trouble and an error message saying the above or a similar message with the same meaning. If the host is the culprit, there are a lot of chances that you won’t be able to fix it, as in many cases this happens when PAE is not supported by the host (computer or server). However, you can check the settings, sometimes you have some hidden feature or option that wasn’t really exposed but could help you to change this.
If the culprit is the guest (the virtual machine inside a virtual environment) you will have an option to enable or activate PAE support somewhere in the settings for that specific virtual computer, under a menu for processor settings or something similar, as you will see below.
If by any reason you can’t change this and the operating system still wants this option by default (as the latest Linux distributions were Developed), you will have to find a non-PAE version of the operating system.
There were reported cases when you could install a PAE enabled Linux distribution on a computer that usually does not support it because of an older CPU or hidden exposure by first installing an older version of the same OS, non-PAE, and then upgrading it to the latest version.
I won’t get into details because most of the time it won’t work, so I can’t offer you help here, as it depends on many things, but good luck with it if you decide to try. You can find more details about these things on Linux distributions official forums and if you will need help with it, I can even try to guide you further to some research material if you describe me your situation.
As you can see below, we have “This kernel requires the following features not present on the CPU: pae” in virtual machines using virtual environments. I have confirmed it using VMWare and Oracle VM VirtualBox but due to several reasons, I will attach a picture displaying it in Oracle’s free VM environment.
I got this error by trying to install a Slackware 14.0 distribution on a basic Oracle VM Virtualbox Machine using an Intel Dual-Core CPU E5300, after having confirmed the boot action with an Enter at the prompt dialog.
Solution for Oracle VM Virtualbox to “This kernel requires the following features not present on the CPU: pae”:
1. For Oracle you will have to open “Settings” for the Machine you are getting the error (If you have the window opened, just select the first option from the top left menu called Machine and select Settings).
2. Navigate to System – Processor – and you will have to check “Extended Features – Enable PAE/NX”.
Note: If the machine is turned on, the option will be grayed and you cannot enable it. You have to turn the virtual machine off, then navigate to this same menu, enable it and try to boot from the image (or dvd/cd) again. If the check is enabled as below, it will work this time.
Solution for VMWare to “This kernel requires the following features not present on the CPU: pae”:
1. You will have to power off the virtual machine when you intend to install the PAE Operating System.
2. Use a text editor to open the VMX file (.vmx) for the above virtual machine (the virtual machine that outputs the error when trying to install a PAE operating system)
3. Search for a line that contains “paevm =” without the quotes and when you find it, attach TRUE as a value. When you are done with it, it should look like below (WITH THE QUOTES):
paevm = “TRUE”
If the line does not exist, add the full syntax as in the above line including the TRUE value and the quotes.
Now you can TURN ON the virtual machine and install the operating system without the concern of the same error being triggered again.
Solution for VMWare to problems regarding NX and XD technology compatibility:
If you have an NX technology enabled system, change or upgrade the host operating system to one that supports the NX or XD feature, depending on which one is needed.
These problems are most likely not to happen so much out of the virtual environment world but if they do happen, it won’t be so easy to fix them just by enabling a checkbox in Oracle VM Virtualbox or editing a .vmx line in VMWare. If your CPU does not support PAE enabled operating systems, you will have to get a version for that operating system that doesn’t have PAE enabled (or another OS if the non-PAE OS you would like does not exist). If it is disabled, the solution is again to get a non-PAE OS like in the case of a non-supported function, or to deal with it and try to enable it, if possible.
If you have questions or problems regarding this subject I would be glad to help you, so give me a sign and we will troubleshoot them together.
For those of you who want more details from an official support for this matter you can check the following links: