atwiki-logo
  • 新規作成
    • 新規ページ作成
    • 新規ページ作成(その他)
      • このページをコピーして新規ページ作成
      • このウィキ内の別ページをコピーして新規ページ作成
      • このページの子ページを作成
    • 新規ウィキ作成
  • 編集
    • ページ編集
    • ページ編集(簡易版)
    • ページ名変更
    • メニュー非表示でページ編集
    • ページの閲覧/編集権限変更
    • ページの編集モード変更
    • このページにファイルをアップロード
    • メニューを編集
    • 右メニューを編集
  • バージョン管理
    • 最新版変更点(差分)
    • 編集履歴(バックアップ)
    • アップロードファイル履歴
    • ページ操作履歴
  • ページ一覧
    • ページ一覧
    • このウィキのタグ一覧
    • このウィキのタグ(更新順)
    • おまかせページ移動
  • RSS
    • このウィキの更新情報RSS
    • このウィキ新着ページRSS
  • ヘルプ
    • ご利用ガイド
    • Wiki初心者向けガイド(基本操作)
    • このウィキの管理者に連絡
    • 運営会社に連絡(不具合、障害など)
CentOSでホームサーバを作ろう
  • ウィキ募集バナー
  • 目安箱バナー
  • 操作ガイド
  • 新規作成
  • 編集する
  • 全ページ一覧
  • 登録/ログイン
ページ一覧
CentOSでホームサーバを作ろう
  • ウィキ募集バナー
  • 目安箱バナー
  • 操作ガイド
  • 新規作成
  • 編集する
  • 全ページ一覧
  • 登録/ログイン
ページ一覧
CentOSでホームサーバを作ろう
  • 新規作成
  • 編集する
  • 登録/ログイン
  • 管理メニュー
管理メニュー
  • 新規作成
    • 新規ページ作成
    • 新規ページ作成(その他)
      • このページをコピーして新規ページ作成
      • このウィキ内の別ページをコピーして新規ページ作成
      • このページの子ページを作成
    • 新規ウィキ作成
  • 編集
    • ページ編集
    • ページ編集(簡易版)
    • ページ名変更
    • メニュー非表示でページ編集
    • ページの閲覧/編集権限変更
    • ページの編集モード変更
    • このページにファイルをアップロード
    • メニューを編集
    • 右メニューを編集
  • バージョン管理
    • 最新版変更点(差分)
    • 編集履歴(バックアップ)
    • アップロードファイル履歴
    • ページ操作履歴
  • ページ一覧
    • このウィキの全ページ一覧
    • このウィキのタグ一覧
    • このウィキのタグ一覧(更新順)
    • このページの全コメント一覧
    • このウィキの全コメント一覧
    • おまかせページ移動
  • RSS
    • このwikiの更新情報RSS
    • このwikiの新着ページRSS
  • ヘルプ
    • ご利用ガイド
    • Wiki初心者向けガイド(基本操作)
    • このウィキの管理者に連絡
    • 運営会社に連絡する(不具合、障害など)
  • atwiki
  • CentOSでホームサーバを作ろう
  • 新しいバージョンのカーネルの導入(概要編)

CentOSでホームサーバを作ろう

新しいバージョンのカーネルの導入(概要編)

最終更新:2010年08月15日 04:28

centos-homeserver

- view
管理者のみ編集可

はじめに

CentOSはREHLを基にしているため、他のディストリビューションと違いカーネルのバージョンアップが遅い傾向がある。
(枯れた古いカーネルに対して、バグFixをしたり、新しい機能を取捨選択して取り込んでUpdateしたりしてはいる。)
なので、最新のカーネルにある機能を試したいという場合には、カーネルの再構築をする必要がある。
以下に新しいカーネルをRPMファイルにし、インストールするやり方を記述する。
基本的には参考リンクの手順をトレースする。

必要なパッケージを導入する。

# yum -y install kernel-devel rpm-build
make menuconfigを使いたいなら以下のパッケージも導入する。
# yum -y ncurses ncurses-devel

最新カーネルを基にRPMパッケージを作成する。

  • The Linux Kernel Archivesから最新のカーネルをダウンロードする。
# wget http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.xx.x.tar.bz2(xの部分は適宜補完。)
  • ダウンロードしたlinux-2.6.xx.x.tar.bz2を/usr/srcに移動。
# mv ./linux-2.6.xx.x.tar.bz2 /usr/src
# cd /usr/src
  • linux-2.6.xx.x.tar.bz2を解凍します。
# tar xvjf linux-2.6.xx.x.tar.bz2
# cd linux-2.6.xx.x
  • カーネル構築の初期化。
# make mrproper
  • 現カーネルの設定ファイルをコピー。
# cp /boot/config-2.6.〜〜〜 ./.config(〜の部分はそれぞれの環境に合わせて補完。)
  • コピーしてきた設定ファイルを元に新しい.configファイルを作成。
# make oldconfig
※古い設定ファイルに無い設定項目のみ確認してきますが、
 多すぎて確認しきれないので、まずはデフォルトのEnter押下で対応し、
 その後で下の補足事項にあるように設定を調整する。
+ 補足事項

Processor type and features

  • Processor family
プロセッサの種類による最適化を行う項目。
# cat /proc/cpuinfo
で確認できる"cpu family"が6ならCore2シリーズなので、”Core 2/newer Xeon”を選択する。
  • Preemption Model
リアルタイム処理が必要なプロセスに優先権を与えるプリエンプションの動作モードを選択する項目。
"No Forced Preemption"(サーバー向け)を選択する。
  • その他の解除項目
IBM Calgary IOMMU support
AMD IOMMU support
SMT (Hyperthreading) scheduler support
AMD MCE features
Old style AMD Opteron NUMA detection

Bus options (PCI etc.)

  • 解除項目
PCCard (PCMCIA/CardBus) support
Support for PCI Hotplug

Networking support

  • 追加項目
=> Networking options 
=> Network packet filtering framework (Netfilter)
=> Core Netfilter Configuration
の以下のモジュールは全て"M"にして組み込んだ方が良いと思われる。
また同じ階層の
=> IP: Netfilter Configuration
以下のモジュールも全て"M"にして組み込んだ方が良いと思われる。
  • 解除項目
Wireless
IRDA
Bluetooth

Device Drivers

  • 解除項目
Parallel port support
Fusion MPT device support
IEEE 1394 (FireWire) support
I2O device support
"Network device support"以下には不要なドライバも含まれているので適宜外す。
 Wireless LAN
 TokenRing
 ATM Drivers
 FDDI driver support
 1000BaseT以外のドライバ(10/100/10000BaseT用のドライバ)
 1000BaseTのドライバでも付属のNIC以外のドライバなど
 ※"Realtek 8169 gigabit ethernet support"は一応残しておく。
 PPP (point-to-point protocol) support
 SLIP (serial line) support
 Fibre Channel driver support
 Network console logging support
 Virtio network driver
Graphics support
 /dev/agpgart (AGP Support)
Sound card support
MMC/SD card support
InfiniBand support
RTCに関しては以下の物だけチェックした。他のモジュールは不要。
Real Time Clock
 /sys/class/rtc/rtcN (sysfs)
 /proc/driver/rtc (procfs for rtc0)
 /dev/rtcN (character devices)
 PC-style 'CMOS'

Kernel Hacking

カーネル開発はしないので配下の全てのチェックを外す。
※念のため"Enable verbose x86 bootup info messages"だけは残しておく。

Virtualization

仮想化技術を使わないのであれば不要。

  • hwclockのエラーへの対応
カーネル2.6.19以降はRTC(Real Time Clock)の仕組みが変わり、
PC以外の機器向けのより汎用的なRTCになった。
具体的には、以前はPC向けの"/dec/rtc"1つのみ存在していたが、
今後は様々な機器(Non-PC)向けに"/dev/rtcN"のように複数のクロックを持てる仕組みになった。
(様々な"/dev/rtcN"の作成は各機器向けのドライバが担当する。
 詳細はカーネル付属のドキュメント(Document/rtc.txt)か参考リンクを参照。)
※その影響で新しい.configファイルを見ると、
 従来のバージョンでは存在した"CONFIG_RTC"という項目が無くなってしまっている。
古い設定を引き継いだデフォルト設定のままのカーネル上で"hwclock"コマンドを実行すると、
"/dev/rtc"にアクセスできないというエラー(error=19)が発生し、"hwclock"コマンドが使えない。
これは、新しいカーネル上で"hwclock"が参照すべき正しい"/dev/rtc"は"/dev/rtc0"であることが原因である。
("/dev/rtc"は互換性のために残されているはずなのだが、自分の環境ではうまく動作しなかった。)
hwclockコマンドのエラーを回避するためにinitrdを修正する。
残念ながら、"ln -s /dev/rtc0 /dev/rtc"による回避はマシン起動完了後しか有効ではないので、
/etc/rc.sysinit内でのhwclockの実行には間に合わない。
具体的にはinitrd内に、
 ・rtc作成に必要なドライバを組み込む。(rtc-〜.koなどを追加)
 ・initスクリプトの修正。(上のドライバを読み込むためのinsmodの追加と、デバイス作成のためのmkmodの追加)
の2つを行う。 詳細については「initrdの編集編」を参照のこと。
  • RPMファイルを作成します。
# make rpm
以下の場所にRPMファイルが作成されます。
カーネルのRPMファイル
/usr/src/redhat/RPMS/x86_64/kernel-2.6.xx.x.x86_64.rpm
(※32bitカーネルの場合は、/usr/src/redhat/RPMS/i386に作成される。)
srcのRPMファイル
/usr/src/redhat/SRPMS/kernel-2.6.xx.x.src.rpm

※ちなみに、rpmに含まれるファイルを確認したかったら
 rpm -qpl kernel-2.6.xx.x.x86_64.rpm | grep xxxx("xxxx"の文字があるファイルを一覧)
 などで確認が可能。

最新カーネルRPMのインストール

# rpm -ivh /usr/src/redhat/RPMS/x86_64/kernel-2.6.xx.x.x86_64.rpm

initrdの作成とgrub.confの設定

参考リンクの方にも記述されておりますが、rpmでインストールするだけでは、
initrdの作成やgrub.confの修正が行われません。
mkinitrdコマンドとgrub.confの修正をする必要があります。
  • initrdの作成
# mkinitrd /boot/initrd-2.6.xx.x.img 2.6.xx.x
(※xの部分はインストールしたカーネルのバージョンに合わせる。)
  • grub.confの修正
# vi /boot/grub
例えばバージョン2.6.27.50の場合は、以下のように追記する。
title CentOS (2.6.27.50)
        root (hd0,1)        kernel /vmlinuz-2.6.27.50 ro root=LABEL=/
        initrd /initrd-2.6.27.50.img

再起動とカーネルの確認

# reboot
再起動に成功したら、起動しているカーネルを確認する。
# uname -r
また、再インストールが必要なカーネルモジュールがあれば、
それらを再度インストールする。(make install)

<参考>

最新カーネルのアンインストール手順

  • rpmコマンド(アンインストール)
# rpm -e kernel-2.6.xx.x
  • ブートイメージの削除
/boot/initrd-2.6.xx.x.imgを削除
# rm /boot/initrd-2.6.xx.x.img
  • grub.confの修正
/etc/grub.confの上記で追加した部分を削除

不要なファイルの削除

RPMファイルを作成する過程で作られた
ディレクトリ 説明
/usr/src/redhat/BUILD ソースが展開されビルドが行われるフォルダ
/usr/src/redhat/SOURCES SRPMに含まれるソースファイル・パッチなどが配置される
/usr/src/redhat/SPECS RPMファイルを作成する手順が書かれているスペックファイルが配置される
の配下ファイルはインストールが完了したら不要なので、適宜削除する。
(ただし、RPMを再ビルドする場合は残しておいても良い。)
# rm -rf /usr/src/redhat/BUILD/*
# rm -rf /usr/src/redhat/SOURCES/*
# rm -rf /usr/src/redhat/SPECS/*

カーネルパニックが発生する場合への対応

自分の環境では、initrdが「/dev/root」(ルートディレクトリ)をマウントしようとして
カーネルパニックを起こすケースが多かった。
ネット上の情報を総合したところ、現状のCentOS 5.5のmkinitrdは問題があり、
必要なカーネルモジュールを組み込まずにinitrdを作成してしまうようである。
実際に作成されたinitrdを展開して内容を確認すると、
やはり2.6.27.xx以前では問題無いが、それ以降のカーネル(2.6.31〜.xx)では
問題が発生してしまうようである。
自分の環境で確認した限りでは、
2.6.27.xx以前では以下のカーネルモジュールが存在しているが、
  • scsi_mod.ko
  • sd_mod.ko
2.6.31.xx以降では上記モジュールは存在しなくなり新しい
  • libahci.ko
のモジュールに変わってしまう。
従って、31以降のカーネルを用いるには、
上記2つのモジュールを組み込んだinitrdを手動で作成するしかないと考えられる。
(※勿論、環境によっては問題が発生しない方もいるとは思うが。)

iptablesでエラーが発生するケースへの対応(

カーネル入れ替え後に「iptables-restore: line xx failed」というメッセージが発生した。
参考リンクのページの情報によると必要なカーネルモジュールが組み込まれていないことが原因らしい。
再度"make menuconfig"を行って、必要なモジュールを組み込む。
Networking support
=> Networking options 
=> Network packet filtering framework (Netfilter)
=> Core Netfilter Configuration
以下のモジュールは全て"M"にして組み込んだ方が良いと思われる。
(”STATE"のキーワードを有効にするだけなら"Netfilter connection tracking support"だけでも良いかも。)

参考リンク

  • CentOSでのカーネルバージョンアップ手順
  • initrdとは(1)
  • initrdとは(2)
  • initrdの中身
  • mkinitrdコマンド
  • ハウツー:自分のシステムに最適なカーネルを構築する
  • RPM管理について
  • 「/dev/rootが見つからない」というカーネルパニックへの対応-(1)(CentOS5.5にカーネル2.6.34系を導入)
  • 上の関連情報(mkinitrdのバグ報告)
  • カーネル入れ替え後にiptablesでエラーが発生する場合の対応
  • 2.6.19以降でのRTCの変更について(カーネルドキュメント)



このページを編集
「新しいバージョンのカーネルの導入(概要編)」をウィキ内検索
LINE
シェア
Tweet
CentOSでホームサーバを作ろう
記事メニュー

メニュー

  1. はじめに
    1. はじめに
  2. 初期設定
    1. CentOSのインストール
    2. インストール後の最初の設定
    3. NICの設定
    4. ユーザー追加
    5. SSHでログイン
  3. 構築作業-1
    1. NTPサーバをたてる
    2. 必要なパッケージの導入
    3. 不要なパッケージの削除
  4. ファイルサーバの構築
    1. データ用HDDの準備
    2. HDDの状態確認(S.M.A.R.T)
    3. Sambaの導入
    4. FTPサーバ(vsftp)の導入
  5. PT2を使った録画サーバの構築
    1. PT2を使って録画する(準備編)
    2. PT2を使って録画する(録画予約編ー前編)
    3. PT2を使って録画する(録画予約編ー後編)
  6. メディアサーバの構築
    1. MediaTombを使ってDLNAサーバを構築する(EPELから導入編)
    2. MediaTombを使ってDLNAサーバを構築する(ソースから導入編)
  7. その他
    1. 新しいバージョンのカーネルの導入(概要編)
    2. 新しいバージョンのカーネルの導入(initrdの編集編)
    3. メモ



リンク

  • @wiki
  • @wikiご利用ガイド

他のサービス

  • 無料ホームページ作成
  • 無料ブログ作成
  • 2ch型掲示板レンタル
  • 無料掲示板レンタル
  • お絵かきレンタル
  • 無料ソーシャルプロフ


ここを編集
記事メニュー2

更新履歴

取得中です。


ここを編集
人気記事ランキング
  1. HDDの状態確認(S.M.A.R.T)
もっと見る
最近更新されたページ
  • 5222日前

    データ用HDDの準備
  • 5369日前

    HDDの状態確認(S.M.A.R.T)
  • 5387日前

    MediaTombを使ってDLNAサーバを構築する(EPELから導入編)
  • 5387日前

    MediaTombを使ってDLNAサーバを構築する(ソースから導入編)
  • 5387日前

    メニュー
  • 5387日前

    はじめに
  • 5411日前

    メモ
  • 5415日前

    新しいバージョンのカーネルの導入(initrdの編集編)
  • 5415日前

    新しいバージョンのカーネルの導入(概要編)
  • 5418日前

    PT2を使って録画する(準備編)
もっと見る
人気記事ランキング
  1. HDDの状態確認(S.M.A.R.T)
もっと見る
最近更新されたページ
  • 5222日前

    データ用HDDの準備
  • 5369日前

    HDDの状態確認(S.M.A.R.T)
  • 5387日前

    MediaTombを使ってDLNAサーバを構築する(EPELから導入編)
  • 5387日前

    MediaTombを使ってDLNAサーバを構築する(ソースから導入編)
  • 5387日前

    メニュー
  • 5387日前

    はじめに
  • 5411日前

    メモ
  • 5415日前

    新しいバージョンのカーネルの導入(initrdの編集編)
  • 5415日前

    新しいバージョンのカーネルの導入(概要編)
  • 5418日前

    PT2を使って録画する(準備編)
もっと見る
ウィキ募集バナー
新規Wikiランキング

最近作成されたWikiのアクセスランキングです。見るだけでなく加筆してみよう!

  1. MadTown GTA (Beta) まとめウィキ
  2. GTA5 MADTOWN(β)まとめウィキ
  3. R.E.P.O. 日本語解説Wiki
  4. シュガードール情報まとめウィキ
  5. SYNDUALITY Echo of Ada 攻略 ウィキ
  6. ドタバタ王子くん攻略サイト
  7. ガンダムGQuuuuuuX 乃木坂46部@wiki
  8. パズル&コンクエスト(Puzzles&Conquest)攻略Wiki
  9. ありふれた職業で世界最強 リベリオンソウル @ ウィキ
  10. Idol Showdown(アイドルショーダウン)日本 @ ウィキ
もっと見る
人気Wikiランキング

atwikiでよく見られているWikiのランキングです。新しい情報を発見してみよう!

  1. アニヲタWiki(仮)
  2. ストグラ まとめ @ウィキ
  3. ゲームカタログ@Wiki ~名作からクソゲーまで~
  4. 初音ミク Wiki
  5. MadTown GTA (Beta) まとめウィキ
  6. 発車メロディーwiki
  7. 機動戦士ガンダム バトルオペレーション2攻略Wiki 3rd Season
  8. 検索してはいけない言葉 @ ウィキ
  9. オレカバトル アプリ版 @ ウィキ
  10. Grand Theft Auto V(グランドセフトオート5)GTA5 & GTAオンライン 情報・攻略wiki
もっと見る
全体ページランキング

最近アクセスの多かったページランキングです。話題のページを見に行こう!

  1. 魔獣トゲイラ - バトルロイヤルR+α ファンフィクション(二次創作など)総合wiki
  2. 参加者一覧 - ストグラ まとめ @ウィキ
  3. 品川駅 - 発車メロディーwiki
  4. Famos Gray - ストグラ まとめ @ウィキ
  5. 参加者一覧 - MadTown GTA (Beta) まとめウィキ
  6. 発車メロディー変更履歴 - 発車メロディーwiki
  7. Lycoris - MadTown GTA (Beta) まとめウィキ
  8. オーバーモード/マスターモード(仮面ライダーガヴ) - アニヲタWiki(仮)
  9. FadeGate - ストグラ まとめ @ウィキ
  10. ぶんぶんギャング - MadTown GTA (Beta) まとめウィキ
もっと見る

  • このWikiのTOPへ
  • 全ページ一覧
  • アットウィキTOP
  • 利用規約
  • プライバシーポリシー

2019 AtWiki, Inc.