Debian:現在ロードされているカーネルパッケージ名を取得するには?

Debian:現在ロードされているカーネルパッケージ名を取得するには?

次のコマンドを使用すると、インストールされているすべてのカーネルパッケージを一覧表示できます。

$ dpkg -l | grep linux-image

次のコマンドを使用すると、現在使用されているカーネルバージョンを取得できます。

$ uname -r

しかし、私の要件は、現在ロードされているカーネルに対応するDebianパッケージ名を端末に表示するだけです。

複数のパッケージ名が同じバージョンを持つ可能性があるため、前のコマンドを使用して特定のカーネルを一意に識別することは困難です。

それでは...現在カーネルのパッケージ名を取得する方法はありますか?

答え1

これを使用してください:

$ dpkg --get-selections | grep -o "^linux-image-$(uname -r)"
linux-image-3.13.0-32-generic

または

$ dpkg -l | grep -o "linux-image-$(uname -r)"
linux-image-3.13.0-32-generic

編集する:同じカーネルバージョンの複数のバージョンがある場合は、次のbashスクリプトを実行してください。

#!/bin/bash
rel="$(uname -r)"
ver="$(uname -v)"
current="${rel%-*}.${ver:1:2}"
echo "$(dpkg -l | grep -Po "linux-image-${rel}(?=\s+${current})")"

関連情報