我最近在我的 Ubuntu 12.04 中升级到内核 3.4。之后,计算机无法启动。所以我使用了以前的内核来启动。其实我不想要 3.4 内核。那么如何删除它并使用前一个本身呢?
你是怎么安装的?如果您只是抓取了大量 deb 文件并安装了它们,那么摆脱它就像找到包并apt-get remove为每个包运行一样简单。
我刚喝了一杯咖啡,所以今天早上你可以尽情享受我的 bashfu ……这应该告诉你安装了哪些内核:
dpkg -l | awk '/linux-[^ ]+-[0-9]/ {print $2}'
Run Code Online (Sandbox Code Playgroud)
浏览这些并记下您要核对的版本。还要注意您当前的安装 (uname -a) 或自启动以来安装的任何新内核。您不想删除最新的。
无论如何,当你有了一个想法时,你可以通过调整这个命令来批量删除它们:
sudo apt-get purge linux-{headers,image,image-extra}-3.5.0-{7,8,9}.*
Run Code Online (Sandbox Code Playgroud)
大括号中的单词和数字将在运行时扩展,因此实际针对的包是:
linux-headers-3.5.0-7*
linux-headers-3.5.0-8*
linux-headers-3.5.0-9*
linux-image-3.5.0-7*
linux-image-3.5.0-8*
linux-image-3.5.0-9*
linux-image-extra-3.5.0-7*
linux-image-extra-3.5.0-8*
linux-image-extra-3.5.0-9*
Run Code Online (Sandbox Code Playgroud)
你可以解决这个问题,但为了清理,我发现这比宽通配符更安全(因为我目前在 3.5.* 内核上)。
无论哪种方式,在你同意之前阅读 apt-get 将要做什么。删除当前内核和所有内核是 Ubuntu 用户发现自己遇到的一个令人惊讶的常见困境。这不是无法修复的,但是是的,不要这样做!
使用通配符和 apt-get 时要特别小心。如果您不相信我apt-get -s remove linux-image-3.4*,请运行并查看它选择的内容(是的 -所有内核)。不要担心命令处于“模拟模式”,所以它不会做任何事情(因此不需要 root)。
卸载主线内核
主线内核有自己的 ABI 命名空间,因此它们与股票 Ubuntu 内核并排安装(例如,每个内核都有一个单独的目录
/lib/modules/VERSION)。这意味着您可以同时安装多个主线和 Ubuntu 原始内核,并从 GRUB 启动菜单中选择您需要的内核。如果您无论如何都想卸载主线内核,请首先使用:
Run Code Online (Sandbox Code Playgroud)dpkg -l | grep "linux\-[a-z]*\-"找到要卸载的内核包的确切名称,然后执行以下操作:
Run Code Online (Sandbox Code Playgroud)sudo apt-get remove KERNEL_PACKAGES_TO_REMOVE请记住,多个包属于一个内核版本:通用头文件、特定于体系结构的头文件和特定于体系结构的映像。
来源: https : //wiki.ubuntu.com/Kernel/MainlineBuilds#Uninstalling_Mainline_Kernels
| 归档时间: |
|
| 查看次数: |
4154 次 |
| 最近记录: |