一度はいくつかのカーネルパッチをインストールしていましたが、何百ものクライアントがあるライブサーバーで問題が発生しました。システムにはコアが1つしかありません。その結果、サーバーはしばらくダウンし、我々はLive CDを使用してシステムを起動し、追加の回復作業を行いました。
今私の質問は:2つのバージョンのカーネルを使用するのが良い考えですか?これにより、カーネルが破損した場合はいつでも利用可能な他のカーネルで再起動できますか?教えてください。
また、同じカーネルの2つのバージョンを持つことができますか?では、コアが破損した場合は別のコアを選択できますか?
Edited:
My Server Details:
2.6.32-431.el6.x86_64
CentOS release 6.5 (Final)
カーネルが破損した場合にバックアップカーネルを起動できるように、このカーネルの同じコピーをどのように持つことができますか?
ベストアンサー1
yum
RedHatおよびDebianベースのディストリビューションは、デフォルトで新しいバージョンを使用またはインストールするときにapt-get
複数のバージョンのカーネルを維持します。これは良い習慣と見なされ、説明するものと正確に一致します。最新のカーネルに問題が発生した場合は、いつでも再起動し、GRUBの以前のカーネルの1つから起動することを選択できます。
RedHatディストリビューションでは、コア数を制御して/etc/yum.conf
設定を維持できます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