旧バージョンのKernelインストール

新年あけましておめでとうございます。

年が明けて何を思ったのか自宅サーバ(CentOS6)のアップデートをしていました。
そうしたらサーバがリブートできなくなり、「init: Re-executing /sbin/init」まで表示されてハングするようになりました。
仮想マシンのログには次のように出力されているので、サポートされていないCPU(AMD FX-6300)を使っているのがダメなんでしょう。
vcpu-0| PerfCtrK7_EvtSelWrite: unimplemented event selector: 130076 rip=0xffffffff810410c8

あれこれと調査して/etc/init.d/haltを追ってみましたが、よくわからず。
結局、CentOS 6.5のKernelまで戻せば正常に再起動できるようになりました。

一応、備忘としてやり方を書いておきます。

/etc/yum.repos.d/CentOS-Base.repoの修正

CentOSのリポジトリは最新バージョンしか置いていないのでvault.centos.orgを見に行くように変えます。
mirrorlistをコメントアウトして、baseurlの箇所をvault.centos.orgに書き換えます。
01.# CentOS-Base.repo
02.#
03.# The mirror system uses the connecting IP address of the client and the
04.# update status of each mirror to pick mirrors that are updated to and
05.# geographically close to the client.  You should use this for CentOS updates
06.# unless you are manually picking other mirrors.
07.#
08.# If the mirrorlist= does not work for you, as a fall back you can try the
09.# remarked out baseurl= line instead.
10.#
11.#
12.[base]
13.name=CentOS-$releasever - Base
14.#mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=os&infra=$infra
15.baseurl=http://vault.centos.org/$releasever/os/$basearch/
16.gpgcheck=1
18.#released updates
19.[updates]
20.name=CentOS-$releasever - Updates
21.#mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=updates&infra=$infra
22.baseurl=http://vault.centos.org/$releasever/updates/$basearch/
23.gpgcheck=1
25.#additional packages that may be useful
26.[extras]
27.name=CentOS-$releasever - Extras
28.#mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=extras&infra=$infra
29.baseurl=http://vault.centos.org/$releasever/extras/$basearch/
30.gpgcheck=1
32.#additional packages that extend functionality of existing packages
33.[centosplus]
34.name=CentOS-$releasever - Plus
35.#mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=centosplus&infra=$infra
36.baseurl=http://vault.centos.org/$releasever/centosplus/$basearch/
37.gpgcheck=1
38.enabled=0
40.#contrib - packages by Centos Users
41.[contrib]
42.name=CentOS-$releasever - Contrib
43.#mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=contrib&infra=$infra
44.baseurl=http://vault.centos.org/$releasever/contrib/$basearch/
45.gpgcheck=1
46.enabled=0

/etc/yum/vars/releaseverの作成

戻したいバージョンのreleaseバージョンを書いたファイルを作ります。
# echo "6.5" > /etc/yum/vars/releasever

yumコマンドの実行

古いバージョンを見れるようになったので、yumコマンドでインストールします。
# yum clean all
# yum install kernel

Kernelバージョンの固定

Kernelが更新されないように/etc/yum.confに以下の行を追加します。
1.exclude=kernel*

うーん。そろそろVMware Serverから乗り換えないと新しいOS動かせないな...。