カーネルライブパッチ
Ksplice はオペレーティングシステムを再起動することなく、システム管理者が実行中のカーネルにセキュリティパッチを適用できるようにする Linux カーネルのオープンソース拡張です。2011年から Ksplice は Oracle に取得され、Oracle のプレミアムサポート下でのみ利用できる状態です。
インストール
Arch User Repository から ksplice-gitAUR パッケージをインストールしてください。
使用方法
まず、使用しているカーネルのソースツリーと、以前にカーネルをビルドした時のファイルが必要です: System.map
と .config
。
前のビルドで使用した System.map
が存在しない場合は、/proc/kallsyms
をコピーして使うことができます。kernel.kptr_restrict
カーネルパラメータが有効になっている場合は、必ず root でコピーしてください。
この例では --diffext
オプションを利用して、新旧ソースファイルの差異からパッチを作成します。
カーネルのソースツリーに ksplice
ディレクトリを作成して、前のビルドの System.map
をコピーして、.config
をツリーにコピーしてください (ソースツリーに存在しない場合):
# mkdir -p src/ksplice # cp System.map src/ksplice # cp .config src/
ksplice パッチを作成してカーネルがリビルドされるのを待ちます。new
で終わるファイルが全て ksplice のパッチに組み込まれます。例えば、C のソースファイルなら、diffext が直接追加されて .cnew
になります。
# ksplice-create --diffext=new src/
新しく生成したパッチを実行中のカーネルに適用:
# ksplice-apply ksplice-*.tar.gz
ksplice-apply
, ksplice-create
, ksplice-view
, ksplice-undo
の man ページを参照してください。
参照
- Ksplice GitHub
- Ksplice on Wikipedia
- Ksplice Uptrack の公式ウェブサイト (proprietary, owned by Oracle)
- How to use the Ksplice raw utilities