Debian 启动到 initramfs,但 /sbin/init 存在

Debian 启动到 initramfs,但 /sbin/init 存在

我正在将 Debian Stretch 从 i386 交叉升级到 amd64。内核已经是 64 位的,dpkg/apt 也是如此。我正在检查其余的软件包,然后我不得不重新启动机器。

重启后,进入恢复模式(initramfs)。出现以下消息:

/scripts/local-premount/resume: line 34: /bin/resume: not found
/dev/sda1: recovering journal
/dev/sda1: clean
/init: line 267: run-init: not found
Target filesystem doesn't have requested /sbin/init
/init: line 267: run-init: not found
/init: line 267: run-init: not found
/init: line 267: run-init: not found
/init: line 267: run-init: not found
/init: line 272: run-init: not found
No init found. Try passing init= boot argument.

然后是 busybox 提示。

硬盘 (/dev/sda1) 被挂载到 /root。fsck 报告没有问题。/sbin/init存在,它是 的符号链接/lib/systemd/systemd,它也存在(但仍为 32 位)。

我可以将硬盘重新安装为 R/W 并 chroot 到其中。在这种模式下,我可以让一些常规 Debian 程序(如 dpkg)运行。但是没有网络,所以没有 apt-get。

请问,启动环境可能出了什么问题?我还应该检查什么?这很可能是我在跨级过程中做了什么,而不是硬件或文件系统损坏。

编辑:使用另一个 Debian 机器,找到了一个名为 的工具run-init。它位于 下/usr/lib/klibc/bin,位于 klibc-tools 包中,与 initramfs 操作有关。我将尝试安装它。现在,如果我能想出一种方法将文件复制到这个机器……

答案1

我仍然不确定我哪里做错了。但在运行之后

update-initramfs -u

在 chroot-to-sda1 环境中,一切恢复正常。

顺便说一句,安装 klibc-utils 没有帮助。

另外,我在 initamfs 中让有线网络正常工作。remount/chroot 之后,命令ifup eth1启动了网络,我可以再次下载软件包。

相关内容