PAE非対応のCPUにRHEL6をインストールできなかった

Intel Pentium M 1.4

一昔前の古いノート PC に RHEL 6系(というかCentOS)をインストールするという後ろ向きなお仕事を振られ、いざインストールしようとすると、

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

というようなエラーメッセージが表示されて、インストール出来なかった。

paePhysical Address Extension(物理アドレス拡張) のことで、32-bit の x86 プロセッサーで 4 GB 以上のメモリを扱う技術。Linux カーネル では 2.3.23 から PAE が正式にサポートされている。

結局 Cent 5.9 を入れることにしたのだけど、せっかくなので PAE についてメモ

ディストリビューションの PAE 対応状況

RHEL の場合

今回インストールしようとした RedHat は 6 以降では x86 で PAE に対応した CPU が必須

12.6.1. Physical Address Extension (PAE)
The Physical Address Extension (PAE) is a feature implemented in modern x86 processors. PAE extends memory addressing capabilities, allowing more than 4 gigabytes (GB) of random access memory (RAM) to be used. The default kernel shipped with the x86 architecture version of Red Hat Enterprise Linux 6 is PAE enabled. A PAE enabled processor is a minimum requirement for the x86 variant of Red Hat Enterprise Linux 6.
https://access.redhat.com/knowledge/docs/en-US/Red_Hat_Enterprise_Linux/6/html/6.0_Release_Notes/kernel.html

なお RHEL 6.0 のリリースは 2011-07-10。

Ubuntu の場合

Ubuntu の場合、12.10 (Quantal) から必須。それ以前の場合は、RAM がたくさん積んであると判断した場合のみ、PAE を有効にしたカーネルがインストールされる。
via https://help.ubuntu.com/community/EnablingPAE

どうやってインストールすればよい?

問題は PAE 非対応の CPU にどうやって PAE を有効にしたカーネルをインストールするか?

RHEL の場合

CentOS の FAQ では 6 は諦めて 5 をインストールするよう書かれている。
時間がなかったので、今回はこれを採用。

4. Why does CentOS-6 refuse to install on my i686 CPU?

Upstream has made the decision not to support non-PAE capable CPUs. If your CPU does not support PAE then when running the installer you will see the error:

This kernel requires the following features present on the CPU pae cx8
You can still install CentOS-5 but will not be able to run CentOS-6.

http://wiki.centos.org/FAQ/CentOS6#head-d31388203ee81d3a47cb97bfc1c8206c3de85095

Ubuntu の場合

RedHat とはカルチャーが違う Ubuntu は、コミュニティーのフォーラムに「らしい」回答があった

How can I install on a non-PAE CPU? (error “Kernel requires features not present on the CPU: PAE”)
http://askubuntu.com/questions/117744/how-can-i-install-on-a-non-pae-cpu-error-kernel-requires-features-not-present

複数の案が提示されているが、有力なものは以下の手順でインストールする。

  1. PAE 非対応でもインストール可能な 12.04 をインストールする
  2. fake-pae というプログラムをインストールし、モンキーパッチ的に /proc/cpuinfo を書き換えて pae フラグを有効にする
  3. PAE 必須な 12.10 にアップグレードする

※自分では検証していない

搭載されていた CPU

問題のノート PC に搭載されていた CPU は Pentium M 1.3MHz だった。flags をみても pae は見当たらない。コアも当然のごとく一つしか無い。

# cat /proc/cpuinfo
processor       : 0
vendor_id       : GenuineIntel
cpu family      : 6
model           : 9
model name      : Intel(R) Pentium(R) M processor 1300MHz
stepping        : 5
cpu MHz         : 1300.000
cache size      : 1024 KB
fdiv_bug        : no
hlt_bug         : no
f00f_bug        : no
coma_bug        : no
fpu             : yes
fpu_exception   : yes
cpuid level     : 2
wp              : yes
flags           : fpu vme de pse tsc msr mce cx8 mtrr pge mca cmov pat clflush dts acpi mmx fxsr sse sse2 tm pbe up est tm2
bogomips        : 2597.95

カーネルオプションを調べる

カーネルのオプションを調べたい場合は、/boot/config-*** にあるカーネルオプションを確認すれば良い。

PAE 対応

$ egrep "HIGHMEM|X86_PAE" /boot/config-`uname -r`
# CONFIG_NOHIGHMEM is not set
# CONFIG_HIGHMEM4G is not set
CONFIG_HIGHMEM64G=y
CONFIG_HIGHMEM=y
CONFIG_X86_PAE=y
CONFIG_DEBUG_HIGHMEM=y

PAE 非対応

$ egrep "HIGHMEM|X86_PAE" /boot/config-`uname -r`
# CONFIG_NOHIGHMEM is not set
CONFIG_HIGHMEM4G=y
# CONFIG_HIGHMEM64G is not set
CONFIG_HIGHMEM=y
CONFIG_DEBUG_HIGHMEM=y

via http://serverfault.com/questions/247080/how-do-i-find-out-if-pae-is-enabled

Windows の場合

Windows では Windows 8 以降は PAE 対応が必須。
また、Windows には PAE に似た仕組みとして 4-gigabyte tuning (4GT)Address Windowing Extensions (AWE) というのもある。

PAE, 4-gigabyte tuning (4GT), and Address Windowing Extensions (AWE) serve different purposes and can be used independently of each other:

  • PAE allows the operating system to access and use more than 4 GB of physical memory.
  • 4GT increases the portion of the virtual address space that is available to a process from 2 GB to up to 3 GB.
  • AWE is a set of APIs that allows a process to allocate nonpaged physical memory and then dynamically map portions of this memory into the virtual address space of the process.

http://msdn.microsoft.com/en-us/library/aa366796(VS.85).aspx

サクッと検証環境を構築する予定が外れてしまって残念。
お客さんのいう「古い」は想像以上に古かった。

Advertisements
Tagged with: , , , ,
Posted in Hardware, linux
2 comments on “PAE非対応のCPUにRHEL6をインストールできなかった
  1. […] ブートできなればインストールできませんから、さてどうしましょう? ということで、google先生に訊いてみたところ、要するに6.xはインストールできないけど5.xならいけるからそれを使え、ということのようでした。 […]

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

Archives
%d bloggers like this: