恒例のLPIC level2対策として、生まれてはじめてカーネルをアップデートしてみる事にしました。ドキドキします。特に引っかかった箇所は無いんですが、備忘録的に記事にします。
Kernel アップデート手順
手順
作業は/usr/src以下で行います。まずは最新の安定版カーネルを入手して解凍します。2017.01.27現在の最新版は4.9.5でした。
# cd /usr/src # wget https://cdn.kernel.org/pub/linux/kernel/v4.x/linux-4.9.5.tar.xz # tar Jxvf linux-4.9.5.tar.xz # cd linux-4.9.5
で、既存の設定を引き継いで、新規項目のみ別途設定するように、旧kernelのコンフィグを使います。
# cp /boot/config-2.6.32-642.13.1.el6.x86_64 ./.config # make oldconfig
質問が大量に出てくるので、ひたすら答えていきます。当方は面倒だったので、Enter押しっぱなしにしました。
make oldconfigが終わったらmakeします。CPUコア2個なので、とりあえずオプションjに2をつけます。コア数x2が良いとか+1がーとかありますが無視します。
# make -j2
結構時間がかかるのでしばらく放置。完了したら、kernelモジュールとkernelをインストールします。
# make modules_install # make install
ここまで終わったら、最後にgrubの設定を変更して、新しいkernelで起動するようにします。defaultの値を0に変更します。
#vim /boot/grub/menu.lst # 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/sda3 # initrd /initrd-[generic-]version.img #boot=/dev/sda default=0 timeout=5 splashimage=(hd0,0)/grub/splash.xpm.gz hiddenmenu title CentOS (4.9.5) <省略> #reboot
ここまでいったら再起動して下さい。万が一指定したkernelで起動しなかったら、旧kernelを指定して起動して下さい。再びunameでkernelをチェックします。
#uname -r 4.9.5
イェイ
moduleをロードする
折角なので、moduleを読み込んでみます。ファイルシステムとしてxfsを使えるように、モジュールを読み込みます。
# modprobe xfs # cat /proc/filesystems nodev sysfs nodev rootfs nodev ramfs nodev bdev nodev proc nodev cpuset nodev cgroup nodev cgroup2 nodev tmpfs nodev devtmpfs nodev binfmt_misc nodev debugfs nodev tracefs nodev securityfs nodev sockfs nodev pipefs nodev hugetlbfs nodev devpts iso9660 nodev pstore nodev mqueue ext3 ext4 xfs
はい、オッケーですね。ちなみに今回はモジュールとしてxfsを読み込んでいますが、config時にkernelにloadする事も可能です。その場合、モジュールとしてではなくkernelに組み込まれる為、modprobeは不要となります。実際誤って組み込んでしまい、"/lib/modules/4.9.5/kernel/fs/“の下にxfsが無くて焦った事があります。ちなみに、xfsは旧kernelでも普通に使えました。
初めてのkernelアップデートはここまで。それでは。