如何在没有 bash 的情况下启动 RHEL?

如何在没有 bash 的情况下启动 RHEL?

如果我删除了,我该如何启动 RHEL VM /bin/bash?尝试启动时,我现在收到以下错误:

"INIT: Cannot execute "/etc/rc/d/rc.sysinit"

我接下来尝试的是修改内核启动参数,在行init=/bin/ksh尾添加以下内容,这样我就有了一个可以运行的 shell。之后,为了获得写入权限,我使用以下命令重新挂载了根分区:

mount -o remount,rw /

然后我尝试使用 ksh 作为 shell 进行启动,欺骗系统让它认为它是 bash:

ln -s /bin/ksh /bin/bash

然后正常重启系统。不幸的是,这没有起作用,因为 ksh 不兼容并且/etc/rc.d/rc.sysinit使用了一些特定于 bash 的技巧。

还有人能建议我如何在不重新安装 bash 的情况下让系统正常启动吗?

答案1

最好的办法是从 启动CDROM,然后:

  • mount / /mount/point(读写)
  • cp /bin/bash /mount/point/bin/bash

答案2

RHEL 使用 bash 作为其默认 shell。最好的办法是将其复制回去。您可以使用 DVD 或其他媒体启动linux rescue并将 /bin/bash 复制到 /mnt/sysimage/bin/

如果这是虚拟机,您还有其他几个选择:

  1. 删除 shell 之前是否有快照?如果有,您可以备份到快照吗?
  2. 您是否拥有不容丢失的数据或文件?如果这是相对较新的安装或测试安装,最快的解决方法可能是将其删除并重新创建。

祝你好运!

相关内容