以前、カーネル パッチをいくつかインストールしていたとき、何百ものクライアントがあるライブ サーバーで問題が発生しました。システムにはカーネルが 1 つしかありませんでした。そのため、サーバーはしばらくダウンし、ライブ CD を使用してシステムを起動して実行し、さらに修復作業を行いました。
さて、私の質問は、カーネルが破損した場合にいつでも別の利用可能なカーネルで再起動できるように、カーネルのバージョンを 2 つ用意しておくのは良い考えでしょうか? 教えてください。
また、同じカーネルの 2 つのバージョンを持つことは可能ですか? カーネルが破損した場合に別のカーネルを選択できるようにするには?
Edited:
My Server Details:
2.6.32-431.el6.x86_64
CentOS release 6.5 (Final)
カーネルが破損した場合にバックアップ カーネルを起動できるように、このカーネルの同じコピーを取得するにはどうすればよいですか?
答え1
RedHat と Debian ベースのディストリビューションはどちらも、yum
またはを使用して新しいカーネルをインストールするとapt-get
、デフォルトで複数のカーネル バージョンを保持します。これは良い方法と考えられており、まさにあなたが説明したケースで実行されます。最新のカーネルで問題が発生した場合、いつでも再起動して、GRUB で以前のカーネルのいずれかを使用して起動するように選択できます。
/etc/yum.conf
RedHat ディストリビューションでは、設定で保持するカーネルの数を制御しますinstallonly_limit
。私の新しい CentOS 7 インストールでは、デフォルトで 5 になっています。
また、RedHat で RPM パッケージから新しいカーネルをインストールする場合は、rpm -ivh
ではなくを使用する必要がありますrpm -Uvh
。前者は古いカーネルをそのまま保持しますが、後者はそれを置き換えます。
Debian は古いカーネルを保持しますが、自動的に削除しません。ブート パーティションを解放する必要がある場合は、古いカーネルを手動で削除する必要があります (以前のカーネルを少なくとも 1 つ残すことを忘れないでください)。すべてのカーネル インストール パッケージとカーネル ヘッダー パッケージを一覧表示するには、 を使用しますdpkg -l | egrep "linux-(im|he)"
。
あなたの質問に答えます --また、同じカーネルの 2 つのバージョンを持つことは可能ですか?-- はい、可能です。現在 CentOS 6.5 では確認できませんが、CentOS 7 では、/boot
ディレクトリのカーネル関連ファイルを複製し、grub メニューを再構築するだけで、目的の結果を得ることができました。
cd /boot
# Duplicate kernel files;
# "3.10.0-123.el7" is a substring in the name of the current kernel
ls -1 | grep "3.10.0-123.el7" | { while read i; \
do cp $i $(echo $i | sed 's/el7/el7.backup/'); done; }
# Backup the grub configuration, just in case
cp /boot/grub2/grub.cfg /boot/grub2/grub.cfg.backup
# Rebuild grub configuration
grub2-mkconfig -o /boot/grub2/grub.cfg
# At this point you can reboot and see that a new kernel is available
# for you to choose in GRUB menu
答え2
はい、可能ですし、むしろお勧めです。代替案を提供するには、ブート プロセスを設定する必要があります。通常、これはブート ローダー構成で行われます。通常は、そこにあるエントリを複製し、カーネル イメージのファイル名とブート メニュー エントリ ラベルを変更するだけで済みます。
実稼働サーバーでは通常、これは問題になりませんが、カーネルをアップグレードするときは常にバックアップを用意しておくことをお勧めします。一部の Linux ディストリビューションでは、パッケージ更新時にロールバック (通常はファイル システムのスナップショット機能によってバックアップ) を提供して、プロセスをできるだけ簡単にしていますが、そのような場合でもバックアップを用意しておくことをお勧めします。
同じカーネルのコピーを複数持つことに関しては、それも意味があるでしょうが、@goldilocksが下のコメントで指摘しているように、カーネルが破損した場合はハードウェアの交換を検討する必要があります。一方、複製を別の物理HDDに置くと、トラブルを回避できるかもしれません。ただし、カーネルイメージファイルはこれまで起動時に使用されます。