Kernel panic - not syncing: No working init found与inittramfs unpacking failed

 

 

 

 

 多次重启后工控机再也无法启动

排查思路:看到Kernel就想到了内核,所以先用识图软件把里面的字提取出来

Kernel panic - not syncing: No working init found. Try passing init= option to kernel.

网络上解决方法多样,但都无法解决一个问题,我进入不了系统

开机进入esc,选择第二个内核的recovery模式也是会进入这样的报错项,在一次意外点击后发现下方两个同名选项的recovery可以进入单用户模式

能进就有修改机会,能修改就有解决方案,原本的思路基本都是安装与修改init链,思考了下是不是方向错了(排错主要还是找方向)

在网络上把原来linux关键词替换成ubuntu,在一阵搜索后看到一个帖子

https://blog.csdn.net/qq_43762191/article/details/121857978

相同的错误但却是网上的其他解决方式

vi /etc/initramfs-tools/initramfs.conf
更改COMPRESS=lz4为COMPRESS=gzip 保存更改
sudo update-initramfs -u

他的提示与我关注的完全不一样

Initramfs Unpacking failed

第二行的报错,我没注意到,或者说是我注意点错了

但这个是什么问题呢?

在知乎上有个人提出了相关问题,下面有个用户“追火车”做了解答

原贴:
https://www.zhihu.com/question/494221771/answer/2186294156 解答: 很多常见的发行版启动是这样子的,BIOS从硬盘的启动分区加载GRUB,GRUB根据配置文件从硬盘加载kernel image,
也就是
/boot/vmlinuz-KERNEL_VERSION,然后加载 /boot/initramfs-KERNEL_VERSION.img,并把 initramfs-KERNEL_VERSION.img 传递给内核作为参数,
GRUB将控制权交给内核,内核完成基本初始化后(CPU、内存、PCI、网络栈及相关数据结构),再尝试解压 initramfs 并将其挂载为临时的根文件系统(可以在一台启动好的系统上用dmesg看到这个过程),
从 initramfs 里面启动 init(sysV、systemd等),init 继续执行初始化,比如启动udev加载各种驱动(RAID卡、HBA卡、AHCI控制器、网卡等等)
在/dev下创建设备node及软链接,调用 mount 将硬盘上的根分区 readonly(ro)挂载,然后调用 switch_root 切换到硬盘上的根分区,再调用 systemd-remount-fs 将硬盘根分区readwrite(rw)挂载,
并继续从硬盘启动(如果你的系统是基于systemd的,执行 journalctl 也能看到这些过程),继而启动各种服务,
最后启动gettty+login或者显示管理器dm到登录界面。
如果内核解压 initramfs 失败了,没法挂载根分区,就会出现kernel panic.

上方的解决方案是吧lz4修改成gzip,将解压缩模式换成了gzip解决解压问题(不太理解,小声逼逼两句,万一gzip也无法解压咋整)

 

posted @ 2023-01-13 17:01  优花梨天下第一可爱  阅读(591)  评论(0)    收藏  举报