想象一下,您不小心使用mount --bind
隐藏,/bin
以至于umount
(和大多数其他二进制文件)不再可见。
您将如何摆脱这种困境?
除了硬重启之外还有其他办法吗?
答案1
幸运的/bin
是,它实际上相当小,只有非常基本的实用程序和 shell。只要您仍打开 root shell,您就应该能够使用 /usr/bin 中的工具下载本应挂载在您的发行版(例如apt-get install -d mount
Debian)中的软件包,然后从下载的软件包中手动提取文件(dpkg-deb -x mount.whatever.deb /some/temp/folder
),然后./umount
在该文件夹中使用。
答案2
哈哈,重新启动可能也不起作用,因为那可能/bin
也需要工具:)
我猜这些不会起作用:
- 进行 scp到机器(你的 shell 不存在,登录将被拒绝)
- dpkg -x / dpkg -i / rpm -i 因为这些很可能需要 /bin 中的东西
我只需重启即可。这没什么问题 :)
如果您不想重新启动,我会尝试从另一台具有相同操作系统的机器上 scp/wget /bin/umount 的副本并运行它。
答案3
实际上,如果您不想重新启动,您可能可以返回到您保留的那些精细备份并恢复您缺少的相应区域。(就我个人而言,我会重新启动以保持清洁)。
答案4
如果您的根文件系统支持快照,您可以拍摄快照,并从快照中复制应复制到分区的 /bin 文件(忘记了您无法挂载它)。
否则,如果您有一个备用分区,则可以使用 dd 将根分区复制到那里并以此方式获取 /bin 文件。可能使用外部 USB 驱动器。
最后,如果您的网络正常,您可以从类似的系统复制回命令。