Посмотрите внутри /usr/sbin/update-kernel в сизифе
(на p7 ЕМНИП такой проверки нет, он тупо предлагает при запуске обновить ядро, а в сизифе уже работает интеллектуально)
###################################################################
# update kernel and modules
# get running kernel version
current_kernel_package=$(rpmquery -qf /lib/modules/$(uname -r)/kernel 2>/dev/null)
if [ -n "$current_kernel_package" ] ; then
current_kernel_pkgname=$(rpmquery --queryformat "%{NAME}-%{SERIAL}:%{VERSION}-%{RELEASE}\n" -q $current_kernel_package)
echo $current_kernel_pkgname | grep -q "(none)" && current_kernel_pkgname=$(rpmquery --queryformat "%{NAME}-%{VERSION}-%{RELEASE}\n" -q $current_kernel_package)
else
current_kernel_pkgname="UNKNOWN"
fi
echo "Running kernel version: $current_kernel_pkgname"
echo "Checking for available kernel packages..."
# get list of all available kernel packages
KERNEL_PKGS="$(apt-cache pkgnames kernel-image)"
# set kernel flavour. if not defined with -t option, use current
current_kernel_flavour="$(uname -r | cut -d "-" -f2,3)"
kernel_flavour="${kernel_flavour:-$current_kernel_flavour}"
# check that we have at least one kernel with defined kernel_flavour
num_available_kernels="$(echo "$KERNEL_PKGS" | grep -c "$kernel_flavour")"
[ "$num_available_kernels" != 0 ] || fatal "There are no available kernels with kernel flavour $kernel_flavour"
# check that we have at least one kernel with defined kernel package release
[ -z "$release" ] || {
num_available_kernels="$(echo "$KERNEL_PKGS" | grep -c "$release")"
[ "$num_available_kernels" != 0 ] || fatal "There are no available kernels with package release $release"
}
# define how we must select available packages with needed flavour/release
[ -z "$release" ] && pgkgrep="kernel-image-$kernel_flavour#" || pgkgrep="kernel-image-$kernel_flavour#.*$release$"
# get the maximum available kernel package version
kmaxver=
while read version
do
comparever="$(rpmevrcmp "$kmaxver" "$version")"
[ "$comparever" -lt 0 ] && kmaxver="$version" ||:
done < <(echo "$KERNEL_PKGS" | grep "$pgkgrep" | sed -e "s,^kernel-image-$kernel_flavour#,,g")
# check if the current kernel is up-to-date
if [ -z "$force" ] && [ "$current_kernel_pkgname" = "kernel-image-$kernel_flavour-$kmaxver" ] ; then
echo "Latest kernel $kernel_flavour-$kmaxver is already running on your system."
echo "No upgrade is needed. Use -f for force."
exit 0
fi
# check if selected kernel is already installed
if [ -z "$force" ] && rpm -q "kernel-image-$kernel_flavour-${kmaxver/*:/}" >/dev/null ; then
echo "Latest kernel $kernel_flavour-$kmaxver is already installed on your system."
echo "No upgrade is needed. Use -f for force."
exit 0
fi
# ask user
echo -n "Try to install new kernel kernel-image-$kernel_flavour-$kmaxver and update its modules [y]/n? "
[ "$force" = 1 ] && echo "yes" || {
read
case "$REPLY" in
n|no|N|No|NO|0) exit 0
;;
*)
;;
esac
}
Это фрагмент кода взятый оттуда.