假设我刚刚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 语句。