首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >引导分区已满,运行旧内核,新内核“等待”-重新启动安全?

引导分区已满,运行旧内核,新内核“等待”-重新启动安全?
EN

Ask Ubuntu用户
提问于 2019-02-12 11:28:54
回答 1查看 2.8K关注 0票数 1

这不是上面建议的重复--为什么,请看下面的案文。

我有一种奇怪的情况:一个“旧”内核正在运行(实际上它是最老的):uname -r

> 4.13.0-43-generic

使用命令来显示可用的内核,我只看到较新的内核(!):

代码语言:javascript
复制
sudo dpkg --list 'linux-image*'|awk '{ if ($1=="ii") print $2}'|grep -v `uname -r`
linux-image-4.13.0-45-generic
linux-image-4.15.0-24-generic
linux-image-4.15.0-29-generic
linux-image-4.15.0-30-generic
linux-image-4.15.0-32-generic
linux-image-4.15.0-33-generic
linux-image-4.15.0-34-generic
linux-image-extra-4.13.0-45-generic

看起来,系统似乎从未重新启动以“进入新内核”--例如,在根dir中:

代码语言:javascript
复制
ls -al

lrwxrwxrwx   1 root root    33 Sep 11 06:02 initrd.img -> boot/initrd.img-4.15.0-34-generic
lrwxrwxrwx   1 root root    33 Sep 11 06:02 initrd.img.old -> boot/initrd.img-4.15.0-33-generic
lrwxrwxrwx   1 root root    30 Sep 11 06:02 vmlinuz -> boot/vmlinuz-4.15.0-34-generic
lrwxrwxrwx   1 root root    30 Sep 11 06:02 vmlinuz.old -> boot/vmlinuz-4.15.0-33-generic

我觉得这是什么意思(我不是一位乌本图大师).

这不是一个重复的问题,而是一个新的问题,因为我没有旧的内核要删除。其他答案详细地删除了版本号小于当前内核的旧内核。

运行的内核是最古老的列表。我担心会删除内核<#>更新的比当前内核-在当前内核与最新内核以及希望安装的内核之间-但是因为100%的完全引导分区而被阻止。

当引导分区100%满时,使用"apt“的<#>All回答不能工作,因此请忽略它们:)

从我最初的问题:所以我很想重新启动机器。但是这是否危险呢?因为引导分区是100%满的。“正常情况下”,我会删除旧的内核等,以腾出空间。这里最好的/最安全的方法是什么?

我问是因为我似乎“应该”腾出一些空间(见如果/boot分区已满,ubuntu会启动吗?).但是在这个特殊的情况下呢?

我就是这样解决问题的:

最后,当apt autoremove等在这种情况下不起作用时,我遵循了这里给出的提示:https://gist.github.com/ipbastola/2760cfc28be62a5ee10036851c654600(参见:“案例II:不能使用apt,即/boot 100%满”)

在我的例子中,我手动删除了一个较新的内核,以释放/boot中的空间,以便能够继续进行:

代码语言:javascript
复制
cd /boot
ls *4.13.0-45*
rm -rf *4.13.0-45*
df -h
sudo apt-get -f install
sudo apt-get autoremove
sudo update-grub
more grub/grub.cfg
reboot

df -h显示引导不再100%满more grub/grub.cfg,您可以检查系统是否满足正确的内核(即update grub是否运行良好)

EN

回答 1

Ask Ubuntu用户

发布于 2019-02-12 13:10:00

按顺序逐个运行这些命令,每次检查空格。

代码语言:javascript
复制
sudo apt autoremove

然后

代码语言:javascript
复制
sudo apt autoclean

如果还没有足够的空间运行:

代码语言:javascript
复制
sudo apt clean

代码语言:javascript
复制
sudo update-grub

一定有用。

在<#>new内核重新启动后,请确认最新内核是否已完全安装。通过跑步:

代码语言:javascript
复制
uname -r

代码语言:javascript
复制
sudo update-initramfs -u -k all

那就跑

代码语言:javascript
复制
sudo apt purge $(dpkg -l|egrep 'linux-image-[0-9]|linux-headers-[0-9]'|awk '{print $3,$2}'|grep -v `uname -r|cut -f1,2 -d"-"`|sort -nr|tail -n +4|awk '{ print $2}')

这将删除所有旧的内核,除了您正在使用的和最新的。

<#>编辑

注意:在所有这些命令之前,您可以运行sudo update-initramfs -u -k all来确认最新内核是否已完全安装。

票数 0
EN
页面原文内容由Ask Ubuntu提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://askubuntu.com/questions/1117638

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档