今天我犯了一个错误,现在我不知道该如何解决。
我使用 dist-upgrade 更新了内核,并在服务器上安装了 Linux 3.13.0-39-generic。我之前使用的是 Linux 3.13.0-37-generic。
问题是我运行了以下命令来删除旧内核,但是我之前重新启动时也这么做了...(我的错)
dpkg -l 'linux-*' | sed '/^ii/!d;/'"$(uname -r | sed "s/\(.*\)-\([^0-9]\+\)/\1/")"'/d;s/^[^ ]* [^ ]* \([^ ]*\).*/\1/;/[0-9]/!d' | xargs sudo apt-get -y purge
我现在遇到的问题是,我删除的是 3.13.0-39,而不是 3.13.0-37。我重新启动了服务器,但仍然有 3.13.0-37,当我运行 update & dist-upgrade 时,显示我没有更新...
我将非常感激任何帮助,因为我是新手并且没有经验!
如果我运行 dpkg -l | grep linux-image,就会得到此信息
ii linux-image-3.13.0-37-generic 3.13.0-37.64 amd64 Linux kernel image for version 3.13.0 on 64 bit x86 SMP
ii linux-image-extra-3.13.0-37-generic 3.13.0-37.64 amd64 Linux kernel extra modules for version 3.13.0 on 64 bit x86 SMP
提前致谢!!
答案1
大家:不要使用题目中的代码!
它会清除任意数量的软件包,在我的系统上它会清除:
- Linux 映像-3.14.18
- Linux 镜像-3.16.6
- Linux 镜像-3.17.1
- Linux-映像-3.2.0-4-686-pae
- Linux-图像-686-pae
- linux-libc-dev:i386
... 其中包括我目前正在运行的内核!可能唯一阻止它删除正在运行的内核的就是 apt 输出的“你 100% 确定吗”消息 - 我见过一次,但记不起措辞了...
这个奇怪的命令到底是用来做什么的?
实际答案
所以你升级了,安装了新内核,然后使用 apt 删除了该内核,然后重新启动?
那么没有问题,只需再次使用安装新内核即可apt-get install linux-image-3.13.0-39-generic
(我想您没有运行低延迟内核)。
确保还安装linux-image-extra-3.13.0-39-generic
。