如何确定 Debian 升级是否更新了内核

如何确定 Debian 升级是否更新了内核

假设我刚刚aptitude safe-upgrade在 Debian 系统上做了一个操作,但我没有注意,所以我没有注意到内核是否已更新。

我现在如何确定是否存在曾是是否需要升级内核并重新启动?

答案1

将正在运行的内核(uname -a)与中的文件进行比较/boot,看看是否有更新的版本。

答案2

Aptitude 会将日志记录到/var/log/aptitude,而 apt-get 会将日志记录到/var/log/dpkg.log。如果您安装了新内核,则软件包的安装应该会记录在其中一个或两个日志文件中。

答案3

检查menuentry您的条目/boot/grub/grub.conf

检查 kernel/vmlinuz*、grub.conf 的时间戳...看看它是否最近更新过。

查看你的文件/var/log/audit/audit.log并搜索 /boot 中的任何文件修改

...我还可以继续...-:)

答案4

这是一个很好的线索:

cat /var/run/reboot-required*; uname -a | awk '{print "linux-image-"$3}';

如果最高版本高于最低版本,那么您可能有一个更新的内核(并且必须重新启动才能激活它)。

此脚本使用 apt 来获得更明确的信息:

#!/usr/bin/env bash

# 2021062101


# Read currently operating kernel
uname -a | awk '{print "linux-headers-" $3}' > /tmp/kernelversions_currentoperating_kernel.txt
currentoperating_kernel=`cat /tmp/kernelversions_currentoperating_kernel.txt`

# Read latest installed kernel
apt list --installed 2> /dev/null | grep linux-headers | grep amd64 | grep -v linux-headers-amd64 | tail -1 | aw
k -F\/ '{print $1}' > /tmp/kernelversions_latestinstalled_kernel.txt
latestinstalled_kernel=`cat /tmp/kernelversions_latestinstalled_kernel.txt`

# Read latest available kernel
apt list 2> /dev/null | grep linux-headers | grep amd64 | grep -v .bpo | grep -v "\-all" | grep -v "\-cloud" | g
rep -v "\-rt" | grep -v linux-headers-amd64 | tail -1 | awk -F\/ '{print $1}' > /tmp/kernelversions_latestavaila
ble_kernel.txt
latestavailable_kernel=`cat /tmp/kernelversions_latestavailable_kernel.txt`


# Print kernel versions
echo "CURRENTLY OPERATING KERNEL: " $currentoperating_kernel
echo "LATEST INSTALLED KERNEL:    " $latestinstalled_kernel
echo "LATEST AVAILABLE KERNEL:    " $latestavailable_kernel
echo
echo


# Delete temporary files
rm /tmp/kernelversions*

检查最新安装的内核。如果它的数字高于当前运行的内核,则表示安装了新内核,但您需要重新启动才能激活它。

我编写它是为了排除 cloud 和 rt 内核版本。如果您使用这些版本,则可能需要修改一些 grep 语句。

相关内容