Ubuntu22.04 end Kernel panic - not syncing: Attempted to kill init! exit code=0x00000100

最经在做最小linux系统,周五快下班时在编译rootfs文件系统,不确定是不是在busybox中误输入了make install

没有给具体的安装路径,导致交叉编译的init进程替换了原本ubuntu系统下的/sbin/init,导致开机如上图问题!

解决方法:

1、重启虚拟机,默认进入到GNU GRUB,选择Advanced options for Ubuntu 回车

2、选择recover模式后按e进入引导配置界面

3、修改引导配置命令(如下)

原配置

修改配置后,ctrl + x即可进入类似ramdisk文件系统进行恢复文件

4、进入系统后根据启动错误,定位问题原因 end Kernel panic - not syncing: Attempted to kill init! exit code=0x00000100

  kill init应该是启动时把init二进制文件干掉了,导致系统起不来!我用file /sbin/init 果然x86的可执行程序,变成ARM aarch64

这就是导致ubuntu系统启动失败的原因!(解释一下为什么系统启动时会去执行init进程,kernel在启动时可能会使用initramfs

一个临时ramdisk,所以当kernel初始化完成后需要一个真正的根文件系统,就必须进行切换,而init程序就是干这件事,他也

是大名鼎鼎一号进程!);(注意这个问题不一定全是init的进程问题,如果你在编译kernel内核时重启出现此问题有可能时kernel

环境的问题,请慎重!)

5、恢复init

  在ubuntu15.04之后systemd就已经代替了init程序,但是kernel还是会根据/sbin/init程序进行加载,先rm /sbin/init,在使用

ln软链接进行恢复 ln -s /lib/systemd/systemd /sbin/init,然后重启系统,正常选择ubuntu版本进入,不用在选择recover模式去恢复

配置文件!修复成功!

 

posted @ 2025-04-14 11:18  XiongWei-enshi  阅读(2819)  评论(0)    收藏  举报