接受内核更新后,我的系统停止运行。终端上的命令(如ls
、cd
等)不起作用并返回错误消息command not found
,并且尝试使用 GUI 执行任何操作。
我强制关闭了计算机,重新启动后(不出所料)出现了内核恐慌错误:
[timestamp]Kernel panic - not syncing: Attempted to kill init! exitcode=0x0001000
[timestamp]CPU: 0 PID: 1 Comm: run-init Not tainted 3.19.0-25-generic #26~14.04.1-Ubuntu
[timestamp]Hardware name: To Be Filled By O.E.M. To Be Filled By O.E.M./B150M Pro4S, BIOS P1.10 07/16/2015
[timestamp] ffff88084cd60380 ffff880851727e68 ffffffff817aed00 0000000000002478
[timestamp] ffffffff81a901a8 ffff880851727ee8 ffffffff817a8bc8 ffff880851728000
[timestamp] ffffffff00000010 ffff880851727ef8 ffff880851727e98 ffffffff81c5ee20
[timestamp] Call Trace:
[timestamp] [<ffffffff817aed00>] dump_stack+0x45/0x57
[timestamp] [<ffffffff817a8bc8>] panic+0xc1/0x1f5
[timestamp] [<ffffffff81077ae1>] do_exit+0xa11/0xb00
[timestamp] [<ffffffff81077c17>] SyS_exit+0x17/0x20
[timestamp] [<ffffffff817b668d>] system_call_fastpath+0x16/0x1b
[timestamp] Kernel Offset: 0x0 from 0xffffffff81000000 (relocation range:0xffffffff80000000-0xffffffffbfffffff)
[timestamp] ---[ end Kernel panic - not syncing: Attempted to kill init! exitcode=0x0001000
我并没有惊慌(希望你喜欢这个双关语)并在网上寻找可能的解决方案,其中我发现:
- 内核恐慌 - 未同步:尝试终止 init!exitcode=0x00000009
- 诊断:新内核版本有bug。
- 建议的解决方案:等待修复,使用以前的版本。
这种方法的问题在于,新的内核似乎以某种方式弄乱了旧内核,并且如果我使用 GRUB 菜单选择以前的版本(在常规模式和恢复模式下),新内核会出现完全相同的错误。
- 无法启动,因为:内核崩溃 - 未同步:试图杀死 init!
- 诊断:
/sbin/init
文件丢失 - 解决方法:使用LiveOS查找
/sbin/init
文件,如果缺少则尝试添加。
我的错误类似,因为run-init
命令不起作用,但不是因为文件丢失。与 OP 的情况类似,我的磁盘工作正常,如果我从 LiveOS 访问设备,我能够找到所有二进制目录和文件。
- https://www.deep-silver.com/kernel-panic-syncing-attempted-to-kill-init/
- https://stackoverflow.com/questions/12867591/how-to-solve-kernel-panic-not-syncing-attempted-to-kill-init-without-er
- 诊断:如果你刚刚升级了 Linux 或者玩了SELinux尝试删除或者禁用它时。
- 建议的解决方案:通过 grub 命令行启动系统并禁用与之相关的变量
selinux
。
这些链接指的是不同的系统,因此一旦我启动命令行,我就按如下方式调整解决方案GRUB
:
grub> set root=(hd0,1) selinux=0 enforcing=0
grub> linux /boot/vmlinuz-3.19.0-25-generic root=/dev/sda1
grub> initrd /boot/initrd.img-3.13.0-29-generic
grub> boot
并没有真正提出解决方案,但指出了多种可能的诊断,但似乎没有一个适合我的问题。
与内核崩溃无关,但解释了如何从 GRUB 菜单内启动到单用户模式。这可以防止X Server
启动,并希望允许我运行内核。
此时,我发现了许多诊断,尝试了许多解决方案,但都没有效果。
我(认为)理解的是:
- 内核(包括新的和旧的,无论是否处于恢复模式)在运行命令时遇到问题
run-init
。 - 这与我的硬件无关,因为计算机可以使用 LiveOS 正常运行,并且我可以使用显卡、访问磁盘、使用键盘和鼠标。
- 该错误发生在启动的早期阶段,因为尝试启动到单用户模式不起作用并且阻止
X server
加载没有效果。
我想了解的内容(按重要性排序):
- 新内核的安装是否可能覆盖或弄乱旧内核?
- 有人知道我遗漏了什么/还有其他解决方案吗?
- 我在实施上述解决方案时是否犯了任何错误?
- 您能想到什么我还没尝试过的事情吗?
- 我可以安装新内核而不从 GRUB 控制台格式化所有内容吗?
- 是时候重新安装操作系统了吗?(如果您无法回答上述问题,那么我已经知道答案了……)
进一步阅读
答案1
在尝试解决统一问题时遇到与 Trusty (14.04) 相同的问题问题用一个解决方案在其中一个错误的文档中发现。
看到所有这些研究都“浪费”了,甚至没有尝试回答,这让我很难过。肯定有一种方法可以解决这个问题,而无需全新安装。
我还没有找到解决方案,但让我分享一下解决方案的入口(部分归功于这个线程):
使用你喜欢的 Ubuntu 发行版创建可启动的 USB 驱动器
选择“尝试 Ubuntu”选项
确保您的文件系统可用
e2fsck /dev/your-partition
blikd
你可以通过运行或获取正确的信息fdisk -l
使用以下方式挂载分区
sudo mount /dev/your-partition /mnt
使用以下命令访问你的根环境
chroot /mnt
现在您应该可以完全访问您的文件系统。
您可以尝试通过 USB 驱动器或使用 rsync 来修复或检索数据
我试图通过以下方式重建 initsudo apt-get install init
它返回了unable to locate package init
,并sudo apt-get update
返回了类似
ubuntu 14.04 有默认的初始化包吗?
在尝试手动下载时,我发现了大量的 init 包这里。
唯一的“init”包裹我发现它显然是为 xenial 设计的。我可以使用这个包来安装可靠?
仍在尝试弄清楚如何实现这一点。再过几个小时我就会承认失败,并开始备份我的敏感数据,然后再从头开始重新安装。