我刚刚使用本教程从 32 位内核切换到 64 位内核https://wiki.debian.org/CrossGrading。
但是,我缺少重新启动命令(可能缺少更多命令)。是的,我以 root 身份登录。
如何解决这个问题?
答案1
执行 32 位到 64 位热升级过程时必须小心。
本质上发生的情况是,您正处于迁移过程中,并且在一种体系结构的库和另一种体系结构的二进制文件之间存在混合环境,然后无法安装某些命令,而其他命令则安装的库与二进制文件不再匹配。 (例如,带有 32 位库的 64 位二进制文件)
启动 64 位内核并将 dpkg/apt 二进制文件升级到 64 位后,从 32 位命令到 64 位的迁移本身必须几乎一次性完成,以便拥有一个稳定的环境,无论是使用脚本还是使用静态链接二进制文件(或两者的混合)的帮助。当我执行迁移时,除了说明之外,我还混合使用了 busybox、mc 和 debootstrap,以允许我纠正所犯的错误,而不会失去对环境的控制。
一旦您失去了对环境的控制,如果它是重要的服务器,另一种选择是使用 Live CD 来完成迁移。
如果您继续测试这一点,最终您将找到正确的步骤来完成 32 位到 64 位的完整热迁移。 (我假设你正在做测试)
由于 echo 是内置的 bash 命令,因此根据内核的构建方式,您可以使用以下命令重新启动(以 root 身份)机器:
echo 1 > /proc/sys/kernel/sysrq
echo b > /proc/sysrq-trigger
请注意,系统处于不可用状态,并且不会再次启动,除非从另一个启动分区或启动介质启动。