/usr/bin/ 挂载后没有该文件或目录 --rbind

/usr/bin/ 挂载后没有该文件或目录 --rbind

我不知道为什么mount导致 n 中的一些文件/usr/bi被删除。它让一切失去了控制:

它发生在 mount --rbind /dev /home/binex 之后

我也尝试过,umount但它说-bash: umount: command not found

我该怎么做才能恢复这个东西?我不能lscat但我可以cd到任何目录,而且我可以TAB在任何地方使用来显示所有内容,但我不知道为什么所有内容都显示在这里:

帮助

答案1

我不问你为什么这样做,但我可以解释这个问题。

当您挂载/bin/home/binex时,您也有/bin目录/home/binex,并且从文件系统角度来看,它是相同的目录。接下来,当您挂载/dev到时,/home/binex您肯定会挂载/dev/bin,因为/home/binex挂载/bin点(在第一个mount命令之后)是相等的挂载点,并且它们指向一个目录。因此,您重叠了/bin并且无法访问mount命令。

因此,文件不会被删除。它们正在重叠。重新启动将解决此问题。

答案2

具体来说,这是由于安装传播

现代系统,包括任何使用 启动的系统,默认情况下systemd都会启用挂载传播和子挂载。/为了挂载命名空间的好处,通常建议这样做。

这意味着当您创建绑定挂载时,默认情况下您在绑定挂载下进行的任何挂载操作也会应用于源目录。 (更有用的是,传播也以相反的方式进行)。

如果您不幸不知道这一点并最终用其他东西过度安装/bin(我猜这是到 的符号链接/usr/bin),您将无法访问正常的命令。哎哟。

如果您想了解更多有关挂载传播效果的信息,您可以先浏览man mount.它还引用了其他一些文档。

相关内容