ShinobiLayer: RHEL6を以前のマイナーバージョンにダウングレードする

#はじめに
RHEL6.6がGAされたのは2014/10/14、RHEL6.7がGAされたのは2015/07/22です。2015/12/14現在において、SoftLayer上でRHELを注文した場合には、RHEL6.7が配布されるでしょう。とはいえ、アプリケーションパッケージなどの保障範囲が最新版に対応しておらず、RHEL6.6がどうしても欲しいという人もいるかもしれません。本記事ではそういう人のために、SoftLayer上でどうやってRHELをダウングレードする方法を、RHEL6.7 -> RHEL6.6を例に取って紹介します。

とはいっても、以下の参考資料をそのまま検証しただけですが。。。

- [Red Hat Enterprise Linux で、kernel および redhat-release を以前のマイナーバージョンにダウングレードする](https://access.redhat.com/ja/node/1378333)
- [Red Hat Enterprise Linux Release Dates](https://access.redhat.com/articles/3078)

#環境確認

```text:環境確認
# cat /etc/redhat-release
Red Hat Enterprise Linux Server release 6.7 (Santiago)

# uname -a
Linux rhel6.softlayer.com 2.6.32-573.7.1.el6.x86_64 #1 SMP Thu Sep 10 13:42:16 EDT 2015 x86_64 x86_64 x86_64 GNU/Linux

# cat /boot/grub/grub.conf
# grub.conf generated by anaconda
#
# Note that you do not have to rerun grub after making changes to this file
# NOTICE:  You have a /boot partition.  This means that
#          all kernel and initrd paths are relative to /boot/, eg.
#          root (hd0,0)
#          kernel /vmlinuz-version ro root=/dev/xvda2
#          initrd /initrd-[generic-]version.img
#boot=/dev/xvda
default=0
timeout=5
splashimage=(hd0,0)/grub/splash.xpm.gz
hiddenmenu
title Red Hat Enterprise Linux Server (2.6.32-573.7.1.el6.x86_64)
        root (hd0,0)
        kernel /vmlinuz-2.6.32-573.7.1.el6.x86_64 ro root=UUID=d5b4a6a0-4556-4a34-aa39-ce5c8d36173d rd_NO_LUKS LANG=en_US.UTF-8 rd_NO_MD console=hvc0  KEYTABLE=us quiet SYSFONT=latarcyrheb-sun16 rhgb crashkernel=auto rd_NO_LVM rd_NO_DM
        initrd /initramfs-2.6.32-573.7.1.el6.x86_64.img
title Red Hat Enterprise Linux (2.6.32-220.el6.x86_64)
        root (hd0,0)
        kernel /vmlinuz-2.6.32-220.el6.x86_64 ro root=UUID=d5b4a6a0-4556-4a34-aa39-ce5c8d36173d rd_NO_LUKS LANG=en_US.UTF-8 rd_NO_MD console=hvc0  KEYTABLE=us quiet SYSFONT=latarcyrheb-sun16 rhgb crashkernel=auto rd_NO_LVM rd_NO_DM
        initrd /initramfs-2.6.32-220.el6.x86_64.img

過去のバージョン確認
# yum --showduplicates list kernel.x86_64
（途中略）
kernel.x86_64                                                      2.6.32-431.el6                                                           rhel-6-server-rpms
kernel.x86_64                                                      2.6.32-431.1.2.el6                                                       rhel-6-server-rpms
kernel.x86_64                                                      2.6.32-431.3.1.el6                                                       rhel-6-server-rpms
kernel.x86_64                                                      2.6.32-431.5.1.el6                                                       rhel-6-server-rpms
kernel.x86_64                                                      2.6.32-431.11.2.el6                                                      rhel-6-server-rpms
kernel.x86_64                                                      2.6.32-431.17.1.el6                                                      rhel-6-server-rpms
kernel.x86_64                                                      2.6.32-431.20.3.el6                                                      rhel-6-server-rpms
kernel.x86_64                                                      2.6.32-431.20.5.el6                                                      rhel-6-server-rpms
kernel.x86_64                                                      2.6.32-431.23.3.el6                                                      rhel-6-server-rpms
kernel.x86_64                                                      2.6.32-431.29.2.el6                                                      rhel-6-server-rpms
kernel.x86_64                                                      2.6.32-504.el6                                                           rhel-6-server-rpms
kernel.x86_64                                                      2.6.32-504.1.3.el6                                                       rhel-6-server-rpms
kernel.x86_64                                                      2.6.32-504.3.3.el6                                                       rhel-6-server-rpms
kernel.x86_64                                                      2.6.32-504.8.1.el6                                                       rhel-6-server-rpms
kernel.x86_64                                                      2.6.32-504.12.2.el6                                                      rhel-6-server-rpms
kernel.x86_64                                                      2.6.32-504.16.2.el6                                                      rhel-6-server-rpms
kernel.x86_64                                                      2.6.32-504.23.4.el6                                                      rhel-6-server-rpms
kernel.x86_64                                                      2.6.32-504.30.3.el6                                                      rhel-6-server-rpms
kernel.x86_64                                                      2.6.32-572.el6                                                           rhel-6-server-rpms
kernel.x86_64                                                      2.6.32-573.el6                                                           rhel-6-server-rpms
kernel.x86_64                                                      2.6.32-573.1.1.el6                                                       rhel-6-server-rpms
kernel.x86_64                                                      2.6.32-573.3.1.el6                                                       rhel-6-server-rpms
kernel.x86_64                                                      2.6.32-573.7.1.el6                                                       rhel-6-server-rpms
kernel.x86_64                                                      2.6.32-573.8.1.el6                                                       rhel-6-server-rpms
```

#ダウングレードの実施

https://access.redhat.com/articles/3078 によると、RHEL6.6のカーネルバージョンは2.6.32-504なので、2.6.32-504.30.3.el6を導入することにします。

```text:ダウングレード
# yum install kernel-2.6.32-504.30.3.el6

# cat /boot/grub/grub.conf
# grub.conf generated by anaconda
#
# Note that you do not have to rerun grub after making changes to this file
# NOTICE:  You have a /boot partition.  This means that
#          all kernel and initrd paths are relative to /boot/, eg.
#          root (hd0,0)
#          kernel /vmlinuz-version ro root=/dev/xvda2
#          initrd /initrd-[generic-]version.img
#boot=/dev/xvda
default=0
timeout=5
splashimage=(hd0,0)/grub/splash.xpm.gz
hiddenmenu
title Red Hat Enterprise Linux Server (2.6.32-504.30.3.el6.x86_64)
        root (hd0,0)
        kernel /vmlinuz-2.6.32-504.30.3.el6.x86_64 ro root=UUID=d5b4a6a0-4556-4a34-aa39-ce5c8d36173d rd_NO_LUKS LANG=en_US.UTF-8 rd_NO_MD console=hvc0  KEYTABLE=us quiet SYSFONT=latarcyrheb-sun16 rhgb crashkernel=auto rd_NO_LVM rd_NO_DM
        initrd /initramfs-2.6.32-504.30.3.el6.x86_64.img
title Red Hat Enterprise Linux Server (2.6.32-573.7.1.el6.x86_64)
        root (hd0,0)
        kernel /vmlinuz-2.6.32-573.7.1.el6.x86_64 ro root=UUID=d5b4a6a0-4556-4a34-aa39-ce5c8d36173d rd_NO_LUKS LANG=en_US.UTF-8 rd_NO_MD console=hvc0  KEYTABLE=us quiet SYSFONT=latarcyrheb-sun16 rhgb crashkernel=auto rd_NO_LVM rd_NO_DM
        initrd /initramfs-2.6.32-573.7.1.el6.x86_64.img
title Red Hat Enterprise Linux (2.6.32-220.el6.x86_64)
        root (hd0,0)
        kernel /vmlinuz-2.6.32-220.el6.x86_64 ro root=UUID=d5b4a6a0-4556-4a34-aa39-ce5c8d36173d rd_NO_LUKS LANG=en_US.UTF-8 rd_NO_MD console=hvc0  KEYTABLE=us quiet SYSFONT=latarcyrheb-sun16 rhgb crashkernel=auto rd_NO_LVM rd_NO_DM
        initrd /initramfs-2.6.32-220.el6.x86_64.img


#reboot

# uname -a
Linux rhel6.softlayer.com 2.6.32-504.30.3.el6.x86_64 #1 SMP Thu Jul 9 15:20:47 EDT 2015 x86_64 x86_64 x86_64 GNU/Linux

# yum downgrade redhat-release
# cat /etc/redhat-release
Red Hat Enterprise Linux Server release 6.6 (Santiago)

```

#カーネルを更新対象から外す
今後間違ってyum updateでRHELのバージョンがないようにするために、以下の設定を入れておきます。

```text:/etc/yum.conf
# vi /etc/yum.conf
（以下を追加）
exclude=kernel* redhat-release*
```