旧バージョンの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に書き換えます。
# CentOS-Base.repo
#
# The mirror system uses the connecting IP address of the client and the
# update status of each mirror to pick mirrors that are updated to and
# geographically close to the client.  You should use this for CentOS updates
# unless you are manually picking other mirrors.
#
# If the mirrorlist= does not work for you, as a fall back you can try the
# remarked out baseurl= line instead.
#
#
[base]
name=CentOS-$releasever - Base
#mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=os&infra=$infra
baseurl=http://vault.centos.org/$releasever/os/$basearch/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6
#released updates
[updates]
name=CentOS-$releasever - Updates
#mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=updates&infra=$infra
baseurl=http://vault.centos.org/$releasever/updates/$basearch/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6
#additional packages that may be useful
[extras]
name=CentOS-$releasever - Extras
#mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=extras&infra=$infra
baseurl=http://vault.centos.org/$releasever/extras/$basearch/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6
#additional packages that extend functionality of existing packages
[centosplus]
name=CentOS-$releasever - Plus
#mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=centosplus&infra=$infra
baseurl=http://vault.centos.org/$releasever/centosplus/$basearch/
gpgcheck=1
enabled=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6
#contrib - packages by Centos Users
[contrib]
name=CentOS-$releasever - Contrib
#mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=contrib&infra=$infra
baseurl=http://vault.centos.org/$releasever/contrib/$basearch/
gpgcheck=1
enabled=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6

/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に以下の行を追加します。
exclude=kernel*

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