Kernel Panic

Kernel Panic
PH Gao晴天霹雳
昨天晚上正打算用arch美美复现一个ai攻击论文,想着先更新一下arch,发现electron更新太慢了,决定先不更新electron,又发现老板electron依赖几个包不能更新,于是决定这些包也不更新。
没想到,这次更新就是噩梦的开始。
事件经过
其实更新并没有正常结束,刚更新完的时候就已经有蹊跷了
pacman不能运行,报错缺少libicuuc.so.76
但是我并没有在意,认为
重启就好啦☝️🤓
于是重启之后就出现了大名鼎鼎的 KERNEL PANIC
当时我的表情是这样的:
做实验做到蓝屏的救赎感谁懂
排错过程
装个启动盘先进文件系统看看怎么回事
第一次挂载
进入文件系统尝试pacman发现还是缺少库,定睛一看,这不正好是我没有更新的包之一吗😨,于是
- 尝试将老的包改名为新的包,还是不行
- 尝试将iso包里面的pacman拷贝到系统里面,还是不行
- 原因是包是新下的,里面的pacman也是最新的
- 尝试将iso包里面的libicuuc.so.76拷贝到系统里面,还是不行
- 仍然缺少另一个库
- 在实验室消防员的指导下直接上dirty操作
当然是: 把iso里面整个/usr/lib的文件夹拷贝到系统里面☝️🤓
不出意料,并没有成功,不过报错是库文件里面的某个符号的问题,怀疑是不是没有将之前改名的libicuuc.so.76覆盖掉,查看了一下sha256sum,发现确实没有覆盖掉,删掉再拷贝,终于能运行pacman了
尝试用pacman更新系统,报错了:
libicuuc.so.76已存在
还好pacman有强制覆盖的功能--overwrite
,同时将electron全部删掉,终于成功更新了系统和内核,美美拔u盘重启🤓
第二次挂载
既然有第二次挂载,那也就说明并没有成功,让实验室消防员来看了看panic报错之后告诉我可以试试重新生成一下fstab
于是重新生成了一下fstab,重启,还是panic
第三次挂载
把报错复制到网上,发现说需要重新生成所有的Initramfs还有更新Grub
于是尝试了一下,终于,我的arch又能用了