重新安装最新内核?

重新安装最新内核?

我在最新安装的内核上运行时对 build/modprobe/make 做了一些愚蠢的操作。现在该内核无法启动。我目前正在运行以前的内核。

我该如何清理它?我只想回到 apt repo 中的“库存”最新内核。

编辑:我应该注意......我试图安装 flashcache (https://github.com/facebook/flashcache/

我尝试过

sudo apt-get install --reinstall linux-image-generic linux-image

这并没有解决问题;所以我尝试了“恢复模式”选项,并看到在加载闪存缓存模块时出现内核恐慌......我必须在某个地方删除一些东西......

在此处输入图片描述

答案1

我不知道您是否有网络访问权限,但如果有,请执行以下操作:

sudo apt-get install --reinstall linux-image-generic linux-image

答案2

只需启动到以前的内核版本并输入以下内容,只需将##替换为您尝试启动的内核版本。

sudo update-initramfs -u -k 3.2.0-##-generic-pae 

只需将##替换为您尝试启动的内核版本即可。

然后向 Grub 说“你好”,然后重新启动。

sudo update-grub
sudo reboot now

现在,在启动新内核时您应该不会再看到内核恐慌。

答案3

我的 VGA 驱动程序有问题,其他解决方案无法解决我的问题

最有效的解决方案是从一开始就手动删除并安装

// remove modules
sudo rm -rf /lib/modules/4.13.0-3*

remove headers
sudo rm -rf /usr/src/linux-headers-4.13.0-3*

// clear boot
sudo rm -rf /boot/initrd.img-4.13.0-3*
sudo rm -rf /boot/vmlinuz-4.13.0-3*
sudo rm -rf /boot/System.map-4.13.0-3*
sudo rm -rf /boot/config-4.13.0-3*

// refresh grub. I reboot after update grub, but maybe is not important
sudo update-grub

//check the lastes version of linux images
sudo apt-cache search linux-image |grep 4.14

# linux-image-4.14.0-1003-azure-edge - Linux kernel image for version 4.14.0 on 64 bit x86 SMP
# linux-image-extra-4.14.0-1003-azure-edge - Linux kernel extra modules for version 4.14.0 on 64 bit x86 SMP
# linux-image-4.14.0-1004-azure-edge - Linux kernel image for version 4.14.0 on 64 bit x86 SMP
# linux-image-extra-4.14.0-1004-azure-edge - Linux kernel extra modules for version 4.14.0 on 64 bit x86 SMP

// install the lastes verion
sudo apt-get install linux-image-4.14.0-1004-azure-edge linux-headers-4.14.0-1004-azure-edge linux-image-extra-4.14.0-1004-azure-edge 

// restart pc
sudo reboot now

答案4

为此,您需要列出最新的 ubuntu 内核并重新安装它。以下是一行代码

apt install --reinstall `dpkg -l|grep linux-image|grep -v image-generic|cut -d ' ' -f 3|sort -V|tail -1`

如果失败了,你需要诊断,你可以使用这个脚本

#!/bin/bash

# Check if the script is run as root
if [ "$(id -u)" != "0" ]; then
    echo "This script must be run as root. Please use 'sudo' to execute it."
    exit 1
fi

# Get the latest non-generic linux-image package name
latest_package=$(dpkg -l | grep linux-image | grep -v image-generic | cut -d ' ' -f 3 | sort -V | tail -1)

# Check if a package name was found
if [ -z "$latest_package" ]; then
    echo "No valid linux-image package found for reinstallation."
    exit 1
fi

# Reinstall the latest package
echo "Reinstalling the latest linux-image package: $latest_package"
apt install --reinstall "$latest_package"

相关内容