テクノロジーガイド

Mandrivaでカーネルをビルドしてインストールする手順

2 min read システム管理 更新されました 09 Oct 2025
Mandrivaでカーネルをビルド・インストールする手順
Mandrivaでカーネルをビルド・インストールする手順

概要

このガイドは、Mandriva 系ディストリビューション上でカーネルをビルドし、RPMパッケージとしてインストールし、LILOブートローダーで起動するまでの手順を段階的に説明します。対象はシステム管理者または自前カーネルを使いたい開発者です。用語: カーネル — Linuxカーネル本体。RPM — Red Hat系パッケージ形式。LILO — Linux Loader(古いブートローダー)。

5 カーネルをビルドする

カーネルをビルドするには、ソースディレクトリで以下を実行します。

make rpm

コンパイルには数分から数時間かかることがあります。所要時間はカーネルの設定とCPU性能によります。ビルド中はログを確認し、エラーが出たら直ちに対処してください。

重要: ビルドを開始する前に十分なディスク容量とメモリがあるか確認してください(特にSRPMや中間ファイル用)。

6 新しいカーネルをインストールする

ビルドが成功すると、src.rpmとアーキテクチャ別のrpmパッケージが生成されます。src.rpmは通常以下に置かれます。

/usr/src/rpm/SRPMS/

名前を確認するには:

ls -l /usr/src/rpm/SRPMS/

例(ユーザー環境): kernel-2.6.18.3default-1.src.rpm

アーキテクチャ別のバイナリは次のディレクトリにあります(i386, i586, i686, x86_64 など)。例:

/usr/src/rpm/RPMS/i386/

名前を確認するには:

ls -l /usr/src/rpm/RPMS/i386/

例(ユーザー環境): kernel-2.6.18.3default-1.i386.rpm

該当するディレクトリに移動してRPMをインストールします:

cd /usr/src/rpm/RPMS/i386/  
rpm -ivh kernel-2.6.18.3default-1.i386.rpm

注: -i は新規インストール。既存カーネルを置き換えたい場合は -U を検討してくださいが、古いカーネルは残すことを推奨します(検証とロールバック用)。

RPMを他のMandrivaマシンに転送して同じ手順でインストールすることも可能です。再コンパイルは不要です。

次に、起動に必要な初期RAMディスク(initrd)を作成します。作成しないと新しいカーネルで起動できないことが多いです。

mkinitrd /boot/initrd-2.6.18.3-default.img 2.6.18.3-default

ファイル名とカーネルのバージョンラベルは環境に合わせて変更してください。

7 LILO ブートローダーの設定

LILOを使っている場合は、/etc/lilo.conf に新しいカーネルを追加し、lilo を再実行して設定を反映させます。

まず /boot の内容を確認して新しい vmlinuz と initrd を見つけます。

ls -l /boot

通常、カーネルファイルは vmlinuz-、ramdisk は initrd-.img という名前になります。

既存の動作中のカーネル設定(stanza)を参考に /etc/lilo.conf に新しいエントリを追加します。label 行にはユニークな名前を指定し、default 行がその名前を指すようにすると再起動時にそのカーネルが起動します。

vi /etc/lilo.conf

以下は、追加前の例です(ファイルの例示)。

# File generated by DrakX/drakboot
# WARNING: do not forget to run lilo after modifying this file

default="linux"
boot=/dev/sda
map=/boot/map
keytable=/boot/us.klt
menu-scheme=wb:bw:wb:bw
compact
prompt
nowarn
timeout=100
message=/boot/message
image=/boot/vmlinuz
        label="linux"
        root=/dev/sda6
        initrd=/boot/initrd.img
        append=" resume=/dev/sda5 splash=silent"
        vga=788
image=/boot/vmlinuz
        label="linux-nonfb"
        root=/dev/sda6
        initrd=/boot/initrd.img
        append=" resume=/dev/sda5"
image=/boot/vmlinuz
        label="failsafe"
        root=/dev/sda6
        initrd=/boot/initrd.img
        append=" failsafe resume=/dev/sda5"

新しいカーネル用のstanzaを先頭に追加した後の例:

# File generated by DrakX/drakboot
# WARNING: do not forget to run lilo after modifying this file

default="linux-2.6.18.3-default"
boot=/dev/sda
map=/boot/map
keytable=/boot/us.klt
menu-scheme=wb:bw:wb:bw
compact
prompt
nowarn
timeout=100
message=/boot/message
image=/boot/vmlinuz-2.6.18.3-default
        label="linux-2.6.18.3-default"
        root=/dev/sda6
        initrd=/boot/initrd-2.6.18.3-default.img
        append=" resume=/dev/sda5 splash=silent"
        vga=788
image=/boot/vmlinuz
        label="linux"
        root=/dev/sda6
        initrd=/boot/initrd.img
        append=" resume=/dev/sda5 splash=silent"
        vga=788
image=/boot/vmlinuz
        label="linux-nonfb"
        root=/dev/sda6
        initrd=/boot/initrd.img
        append=" resume=/dev/sda5"
image=/boot/vmlinuz
        label="failsafe"
        root=/dev/sda6
        initrd=/boot/initrd.img
        append=" failsafe resume=/dev/sda5"

編集が終わったら LILO を実行して書き込みます:

lilo

その後システムを再起動します:

shutdown -r now

起動後、実際に新しいカーネルが使われているか確認します:

uname -r

期待される出力例:

2.6.18.3-default

もしシステムが起動しなければ、再起動してLILOメニューで古いカーネルを選択して起動してください。以下のような画面が表示されることがあります。

LILOのブートメニューと選択肢が表示されたスクリーンショット

問題が発生したカーネルのstanzaは /etc/lilo.conf から削除し、再度 lilo を実行してから再試行してください。

チェックリスト — 実行前と実行後

  • 実行前
    • 十分なディスク空き容量を確認
    • /boot に必要なファイル名の命名規則を決める
    • 既存カーネルのバックアップ
  • 実行中
    • make rpm のログを監視
    • エラー発生時にビルドオプションを見直す
  • 実行後
    • mkinitrd で initrd を作成
    • /etc/lilo.conf を編集して保存
    • lilo を実行してエラーを確認
    • 再起動して uname -r で確認

受け入れ基準

  • システムが正常に再起動し、新しいカーネルで起動すること
  • uname -r が期待するバージョンを返すこと
  • 必要なモジュールとデバイスが正しく動作すること(ネットワーク、ディスクなど)
  • 問題発生時に古いカーネルで回復できること

トラブルシューティング

  • ビルドでエラーが出る
    • ビルドログを確認して依存パッケージが足りないかチェック
    • kernel config (.config) の設定ミスを疑う
  • mkinitrd で失敗する
    • 指定したカーネルラベルが実際のカーネルと一致しているか確認
  • lilo 実行でエラー
    • /etc/lilo.conf の構文ミス(引用符やパス)を確認
    • /boot が正しいデバイスにマウントされているか確認
  • 起動せずにカーネルパニックになる
    • initramfs の内容が不完全な可能性。モジュールとドライバの依存関係を見直す
    • まず古いカーネルで起動して、dmesg と /var/log/messages を確認

ロール別チェックリスト

  • システム管理者
    • ブート設定とディスク構成のバックアップを取る
    • LILO設定のテスト変更を行う
  • 開発者
    • カーネル設定(.config)をバージョン管理する
    • 特定ドライバでの動作確認を自動化するテストを作る

簡易フローチャート

flowchart TD
  A[make rpm を実行] --> B{ビルド成功?}
  B -- Yes --> C[mkinitrd を作成]
  B -- No --> D[ログ確認して再ビルド]
  C --> E[/etc/lilo.conf を編集]
  E --> F[lilo を実行]
  F --> G{再起動して起動成功?}
  G -- Yes --> H[完了: uname -r を確認]
  G -- No --> I[古いカーネルで回復し検査]

テストケースと受け入れテスト

  • TC1: make rpm 実行後、/usr/src/rpm/RPMS// に kernel-*.rpm が存在する
  • TC2: mkinitrd 実行後、/boot/initrd-.img が存在する
  • TC3: lilo 実行後、lilo が正常終了し、/var/log/messages にエラーがない
  • TC4: 再起動後 uname -r が期待バージョンを返す

注意事項

  • LILOは古いブートローダーです。可能であればGRUBなどの新しいブートローダーへの移行を検討してください。GRUBを使う場合は /etc/grub.conf または grub-mkconfig の手順が異なります。
  • 本手順はMandriva向けの一般例です。ディストリビューションやバージョンによってファイル配置やツールの振る舞いが異なることがあります。

まとめ

  • make rpm でビルドし、生成されたRPMをインストールする
  • mkinitrd で初期RAMディスクを作成する
  • /etc/lilo.conf を編集して lilo を実行し、再起動して動作確認する
  • 問題発生時は古いカーネルで回復し、ログとinitrd設定、lilo設定を見直す

8 リンク

共有する: X/Twitter Facebook LinkedIn Telegram
著者
編集

類似の素材

Google検索でダークモードを有効にする方法
チュートリアル

Google検索でダークモードを有効にする方法

Windows PCでPokémon GOをプレイする方法
ゲームガイド

Windows PCでPokémon GOをプレイする方法

shredでハードドライブを完全消去する方法
システム管理

shredでハードドライブを完全消去する方法

Outlookで『組織のデータを貼り付けられません』を修正
トラブルシューティング

Outlookで『組織のデータを貼り付けられません』を修正

LinuxでアクティブなSSH接続を確認する方法
サーバー管理

LinuxでアクティブなSSH接続を確認する方法

パノラマ写真で作るフォトプラネットの作り方
写真編集

パノラマ写真で作るフォトプラネットの作り方