sudo dpkg --configure -a卡在内核更新update-initramfs的解决方案(可能版)
最近在处理数据的时候,需要安装一些新的软件。但是遇到了这样一个问题,纠结了很久查了很多地方,也不知道怎么能行。最关键的是自己不是很了解相关的知识,很多操作也不知道能不能做!
我用以下命令安装软件:
1 |
|
这个命令很普通,但是突然有一天它就报错,错误信息是:
1 |
|
那你说要输那我就输入了sudo dpkg --configure -a
,然后提示:
1 |
|
然后……它就一直卡在这里了……我最久就让他卡了24小时,发现他真的就是卡住了,然后在网上一查,这果然是个大家遇到过的问题。
之后,我用sudo apt-get update
和sudo apt-get upgrade
尝试更新的时候,他也会卡在这里。
然后我查看了一下当时的系统采用的是132号的kernel,但是135号kernel也在已安装内核列表里(通过sudo dpkg --get-selections | grep linux-image
命令查看)。
反正之后折腾了,有的时候也会卡在135号内核的update-initramfs
进程,就像这样:
update-initramfs: Generating /boot/initrd.img-4.15.0-135-generic
。
然后我今天重启的时候,突然发现进不去了系统了,提示信息是:
Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block (0,0)
好在找到一位大佬写的解决方案,发现135号kernel无法进入系统,而132或者其他之前的kernel都可以,我就通过选择132号的kernel进入了系统,然后这个时候我再使用sudo dpkg --configure -a
这条命令,发现居然不卡了,并且apt-get install
的功能被恢复了!
然后我通过sudo update-grub
命令更新了内核启动项的配置文件,使用shutdown -r now
命令重启,发现自动通过135号内核进入了系统!
1 |
|
而且之前的这一系列问题全部都正常了!
小结
说实话,我也不太清楚发生了肾么事,反正挺神奇的。我挺期待有大神明白其中原理的可以解释一下,说不定其他遇到这种问题的同学也可以尝试着进旧内核里去更新新内核!这个方法我觉得还是比较安全的。
以防以后还有这种问题,今天把这个学习笔记写在这里,一是等待高人指点,二是防止以后忘记怎么操作~!