Linuxカーネルの複数のバージョンを使用するのは良いですか?


14

かつて、いくつかのカーネルパッチをインストールしていましたが、数百のクライアントがいるライブサーバーで何かがおかしくなりました。システムにはカーネルが1つしかありませんでした。そのため、サーバーはしばらく停止していました。ライブCDを使用して、システムを起動して実行し、さらに修復作業を行いました。

さて、私の質問:カーネルのバージョンが2つあることをお勧めします。そうすれば、カーネルが破損した場合に別の利用可能なカーネルでいつでも再起動できますか?私にお知らせください。

また、同じカーネルの2つのバージョンを使用することはできますか?カーネルが破損しているときに別のカーネルを選択できるようにするには?

Edited:
My Server Details:
2.6.32-431.el6.x86_64
CentOS release 6.5 (Final)

カーネルが破損したときにバックアップカーネルを起動できるように、このカーネルの同じコピーを取得するにはどうすればよいですか?


4
あなたはあなた自身の質問に答えたようです。システムで動作することがわかっている限り、複数のカーネルを使用することのマイナス面はありません。また、何らかの理由で特定のカーネルで問題が発生した場合に役立つことがあります。
ファヒムミタ

おかげで、私はqnsを正しく尋ねなかったのかもしれません。どうすればこのカーネルの同じコピーを入手できますか?それで、カーネルが破損したときにバックアップカーネルを起動できますか?
マニ

2
同一のカーネルを使用できます。カーネルはディスク上の単なるファイルです。既存のカーネルをわずかに異なる名前でコピーできます。
ファヒムミタ

私はそれをクリーンアップするまで、私は継承されたサーバーのいずれかで、それは、あなたが知っている...その上に8つの異なるカーネル用16個のブートエントリを持っていた
カナダのルーク

何か問題が発生した場合に備えて、通常は以前のカーネルを保持します。
ジョシュア

回答:


18

RedHatとDebianベースのディストリビューションはどちらも、yumまたはapt-getデフォルトで新しいバージョンをインストールするときに、カーネルのいくつかのバージョンを保持します。これは良い習慣と見なされ、あなたが説明する場合に正確に行われます:最新のカーネルで何か問題が発生した場合はいつでも再起動でき、GRUBでは以前のカーネルの1つを使用して起動することを選択します。

RedHatディストリビューションでは/etc/yum.confinstallonly_limit設定を維持するためにカーネルの数を制御します。私の新しいCentOS 7では、デフォルトで5にインストールされます。

また、RedHatでRPMパッケージから新しいカーネルをインストールする場合は、を使用する必要がありますrpm -ivhrpm -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

おかげで、私はそれに取り組んでいます。ただし、CentOS 6.5には「grub2-mkconfig」はありません。CentOS 6.5でこれを行う方法を知っていますか。grub2はCentos 7でのみ使用できると思います。Solnが見つかったら、ここで更新します
マニ

以下のようにCentos 6.5に合うようにこれらの行を変更し、grub.confの更新方法にこだわった。ls -1 | grep "2.6.32-431.el6" | {読みながらi; \ do cp $ i $(echo $ i | sed 's / el6 / el6.backup /'); 完了; } cp /boot/grub/grub.conf cp /boot/grub/grub.conf.backup
マニ

どうもありがとう!!!それは機能し、このように変更しましたls -1 | grep "2.6.32-431.el6" | {読みながらi; \ do cp $ i $(echo $ i | sed 's / el6 / el6.backup /'); 完了; } cp /boot/grub/grub.conf cp /boot/grub/grub.conf.backupで、grup.confを手動で編集しました。同じディスクとパーティションにコピーする場合は、UUIDを同じに保つことができます。
マニ

7

はい、それは可能であり、私もお勧めします。ブートプロセスをセットアップするだけで、代替手段を提供できます。通常、これはブートローダー構成で行われます。通常は、そこにあるエントリを複製し、カーネルイメージファイル名とブートメニューエントリラベルを変更するだけです。

本番サーバーでは、これは通常問題になりませんが、カーネルをアップグレードするときは常にバックアップを用意することをお勧めします。一部のLinuxディストリビューションでは、パッケージの更新時にロールバック(通常はファイルシステムスナップショット機能によってバックアップされます)を提供してプロセスを可能な限り簡単にしますが、そのような場合でもバックアップを準備する傾向があります。

同じカーネルの複数のコピーを保持することについては-それも理にかなっていますが、@ goldilocksが以下のコメントで指摘しているように、カーネルが破損した場合は、ハードウェアの交換を検討する必要があります。一方、複製を別の物理HDDに置くと、トラブルが軽減される場合があります。しかし、カーネルイメージファイルのみをされていることを、心に留めておくこれまでブート時に使用されます。


QNSを変更しました。バックアップカーネルの作成方法を教えてください。(できれば同じバージョン)
マニ

3
あなたは何もする必要はないはずです、彼らはすでにそこにいます-しかし、異なるバージョンで。どちらかを自分でコンパイルしない限り、2つの同じバージョンを使用しても意味がありません。「破損」の問題は一種の偽物です。そのロジックにより、bashバイナリが破損した場合や破損した場合など、システム全体の同一のコピーが2つ必要libcになります。これらのファイルは「破損」してはいけません。 ある場合は、ハードウェアを交換します。
goldilocks

1
@goldilocksまたは、障害が発生した場所に応じて、システム管理者を交換します。
フィリップケンドール

@goldilocksには更新された回答が表示されます-特定の場合に意味があります。明らかに、障害のあるハードウェアの交換は可能な限り優先されるべきです。
ペテルフ
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.