我有一个脚本,它使用sudo mount --bind /dev other/dev
,然后又使用sudo umount other/dev
来卸载。经过一些随机的运行次数后,我们可能会以某种方式进入一个奇怪的状态,主 tty 停止存在,整个桌面环境开始出现故障(新应用程序无法启动,或者崩溃,Firefox 无法重新绘制页面并冻结等...)并且tty
在我的终端中显示not a tty
,并且终端无法打开新实例。我没有使用 ssh 或任何其他远程功能,因此我的本地终端的 tty 丢失是荒谬的。
修复它的唯一方法是重新启动或使用CTRL+ALT+F1
或类似命令进入不同的 tty,登录并强制other/dev
卸载(正常询问说它很忙)。此后,tty 神奇地恢复,一切恢复正常。我实际上只是dev
为了获得另一个/dev/null
,所以对我来说可能存在更简单的解决方法,但这仍然很奇怪!
能解释一下这种奇怪的行为吗?我使用的是 18.04.2 LTS。
答案1
如果的传播类型/dev
是共享,则挂载和卸载操作将从复制到/dev/
,other/dev
反之亦然,因此卸载将从绑定挂载后挂载的所有内容other/dev
中卸载。/dev
other/dev
为了解决这个问题,请在卸载之前设置传播类型:
mount --make-rprivate other/dev