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模式去恢复
配置文件!修复成功!


浙公网安备 33010602011771号