How to Check if PAE is Enabled in Linux: Command Line Methods


11 views

Physical Address Extension (PAE) is a processor feature that allows 32-bit systems to access more than 4GB of physical memory. While most modern 64-bit systems don't require PAE, checking its status remains relevant for:

  • Legacy 32-bit systems with >4GB RAM
  • Virtualization environments
  • Kernel debugging scenarios
# Method 1: Using cpuinfo flags
grep --color=always -i pae /proc/cpuinfo

# Example output for enabled PAE:
# flags           : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 syscall nx mmxext lm 3dnowext 3dnow

Alternative approaches:

# Method 2: Checking kernel parameters
dmesg | grep -i pae

# Method 3: Kernel configuration check
zgrep -i pae /proc/config.gz 2>/dev/null || echo "Config not available"

A positive PAE indication appears when:

  1. The 'pae' flag appears in cpuinfo
  2. Kernel boot messages show PAE activation
  3. CONFIG_X86_PAE=y appears in kernel config

For virtualization environments or custom kernels:

# Check kernel image features
file /boot/vmlinuz-$(uname -r) | grep -i pae

# Cross-verify with kernel modules
lsmod | grep -i pae

Create this reusable function in your .bashrc:

function check_pae() {
    if grep -q pae /proc/cpuinfo; then
        echo "PAE is ENABLED on this system"
        return 0
    else
        echo "PAE is NOT enabled" >&2
        return 1
    fi
}

Watch for these scenarios:

  • Virtual machines with nested paging
  • Systems with NX (No Execute) bit requirements
  • Certain ARM architectures that implement similar features

Physical Address Extension (PAE) is a processor feature that allows 32-bit systems to access more than 4GB of physical memory. This is particularly useful for servers or high-performance workstations running memory-intensive applications.

There are multiple ways to verify PAE support in Linux systems:

# Method 1: Using cpuinfo flags
grep --color=always -i pae /proc/cpuinfo

# Method 2: Checking kernel features
uname -a | grep PAE

# Method 3: Using dmidecode (root required)
sudo dmidecode -t processor | grep PAE

For Windows users, these methods can determine PAE status:

# PowerShell command:
Get-WmiObject Win32_OperatingSystem | Select-Object PAEEnabled

# Alternative via System Information:
msinfo32.exe

Positive results will typically show:

  • "pae" in CPU flags (Linux)
  • "PAE" in kernel version (Linux)
  • True/1 for PAEEnabled (Windows)

If PAE isn't showing as enabled but should be:

# Check kernel configuration (Linux)
grep CONFIG_X86_PAE /boot/config-$(uname -r)

# Windows boot configuration:
bcdedit | grep pae

While PAE enables access to more memory, be aware that:

  • Individual 32-bit processes are still limited to 4GB address space
  • There might be a minor performance overhead (1-3%)
  • Some older drivers may not be PAE-compatible