Ubuntuでのカーネルのダウングレード

  Ubuntuカーネルのバージョンが新しすぎると、openvswitchでgreトンネルが動作しませんでした。そのためUbuntu12.04にてカーネルのダウングレードする必要があったので、以下にメモしました。ソースを落としてコンパイルするのは時間がかかるので、aptコマンドのみで挑戦してみました。

 現行のカーネルのバージョンは以下のように3.5.0-23-genericになります。これを3.2.0-49-lowlatencyにするのが目標です。

# uname -a
Linux NetworkServer3 3.5.0-23-generic #35~precise1-Ubuntu SMP Fri Jan 25 17:13:26 UTC 2013 x86_64 x86_64 x86_64 GNU/Linux

カーネルのインストール

以下のコマンドでaptコマンドでインストール可能なカーネルのバージョンを表示させます。

# apt-cache search linux-image

一部抜粋は以下です。

linux-image-3.2.0-44-lowlatency - Linux kernel image for version 3.2.0 on x86/x86_64
linux-image-3.2.0-48-lowlatency - Linux kernel image for version 3.2.0 on x86/x86_64
linux-image-3.2.0-49-lowlatency - Linux kernel image for version 3.2.0 on x86/x86_64
linux-image-3.2.0-33-lowlatency-pae - Linux kernel image for version 3.2.0 on x86
linux-image-3.2.0-35-lowlatency-pae - Linux kernel image for version 3.2.0 on x86
linux-image-3.2.0-36-lowlatency-pae - Linux kernel image for version 3.2.0 on x86
linux-image-3.2.0-37-lowlatency-pae - Linux kernel image for version 3.2.0 on x86
linux-image-3.2.0-38-lowlatency-pae - Linux kernel image for version 3.2.0 on x86
linux-image-3.2.0-39-lowlatency-pae - Linux kernel image for version 3.2.0 on x86

たしかに3.2.0-49-lowlatencyがありました。以下のコマンドでパッケージをインストールします。

# apt-get install linux-image-3.2.0-49-lowlatency

確かに/boot以下にインストールされています。

root@NetworkServer3:/lib/modules# find / -name "*vmlinuz*"
/vmlinuz
/boot/vmlinuz-3.5.0-23-generic
/boot/vmlinuz-3.2.0-49-lowlatency
/vmlinuz.old

以下のパッケージもインストールします(これは不必要かもしれない)。

# apt-get install linux-headers-3.2.0-49-generic
# apt-get install linux-image-3.2.0-49-generic

grubの設定

/etc/default/grubの設定を変える必要があります。デフォルトではgrubの画面が表示されないようです。変更箇所は以下の2行で大丈夫でした。

#GRUB_HIDDEN_TIMEOUT=0  //TIMEOUT=0をコメントアウト
GRUB_GFXMODE="1280x1024" //コメントアウトを解除して左のように書き込む。

grubの設定の反映を行います。

# update-grub

端末を再起動させ、再起動時にはシフトボタンを押し続けます。
grubの設定画面から、以前のバージョンを選択します。

起動後に確認すると、確かに3 3.2.0-49-lowlatencyで起動しています!

# uname -a
Linux NetworkServer3 3.2.0-49-lowlatency #51-Ubuntu SMP PREEMPT Tue Jun 25 22:41:12 UTC 2013 x86_64 x86_64 x86_64 GNU/Linux

GREトンネルの設定

ダウングレード後にOpenvSwitchをインストールした結果、確かにGREトンネルのモジュールが読み込まれています!
ダウングレード前

# lsmod |grep openvswitch
openvswitch            43048  1

ダウングレード後

# lsmod |grep openvswitch
openvswitch            85726  0
gre                    12989  1 openvswitch

最新のバージョンが必ずしもよいとは限らないことを痛感しました。

書き足す

/etc/apt/source.lst
そもそも古いバージョンがない場合はどうする?