/tmp
中包含一些临时文件。将硬盘驱动器(/dev/sdc1
)安装在/tmp
上方时,可以看到硬盘驱动器上的文件。装入硬盘驱动器后,/tmp
的实际内容如何处理?可以在安装硬盘驱动器时对/tmp
的实际内容执行读/写操作吗?python@lanix / $ df -h
Filesystem Size Used Avail Use% Mounted on
/dev/sda1 286G 43G 229G 16% /
none 4.0K 0 4.0K 0% /sys/fs/cgroup
udev 3.8G 4.0K 3.8G 1% /dev
tmpfs 766M 1.4M 765M 1% /run
none 5.0M 0 5.0M 0% /run/lock
none 3.8G 38M 3.8G 1% /run/shm
none 100M 24K 100M 1% /run/user
/dev/sdb1 7.5G 2.7G 4.9G 35% /mnt
/dev/sdc1 932G 242G 691G 26% /tmp
#1 楼
装入硬盘驱动器后/ tmp的实际内容会怎样?
几乎没有。它们只是从视图中隐藏起来,无法通过正常的文件系统遍历访问。
是的。在“原始”
/tmp
内部具有打开文件句柄的进程将继续能够使用它们。您还可以通过在其他地方绑定安装/
来在其他位置“重新出现”。我希望)能感觉到正在发生的事情。注意:这不是试图完全正确,也不是对正在发生的事情进行详尽的描述。我应该在机器上创建一个名为
me
的用户,并在其家中创建一个随机目录,其中带有文件:# mount -o bind / /somewhere/else
# ls /somewhere/else/tmp
此时,没有什么不寻常的-它只是一个带有纯文件的纯目录。我将该会话保持为打开状态,并将其
cwd
放在该测试目录中。作为根,我创建了一个小文件系统,并将其挂载在
/home/me/tmp
上。 br /> 然后我打开一个新终端,名为
me
,然后环顾四周: lost+found
目录指示ext文件系统的根。而且我失去了写许可权,所以它显然不是原始目录。回到第一个
me
会话,让我们看一下它如何看待世界: > 编写没有问题。
me@home $ pwd
/home/me/tmp
me@home $ echo hello > some_file
me@home $ ls
some_file
me@home $ cat some_file
hello
原始文件仍然存在,创建的新文件没有问题。
?发生什么事了?
第一个会话通过根目录在其上挂载另一个文件系统之前进入了目录。挂载操作完全不影响原始文件系统。 Shell进程对原始文件系统中的目录具有完全有效的句柄,并且可以继续与其进行交互。这有点像在地毯的安装点下面。
放下安装架后,第二个会话进入目录。因此,它将看到新的空文件系统。并且sysadmin授予了权限,因此它无法使用请求的空间...让我们对其进行修复。
br />
会议1能否从地毯下面逃脱? (越来越发霉了。)
当然!如果会话1从文件系统树中移出文件系统树,则它将失去内部的句柄,并将像其他所有人一样跟随文件系统。在会话#2中,我们恢复了正常。
但是您怎么知道文件没有消失?没有人再看了!
这是绑定安装变得方便的时刻之一。它们使您可以将已安装的文件系统安装到其他位置。
将文件系统绑定到“内部”。很酷的技巧,是吗?)
。只是它们在原始位置不可见/无法访问,安装将它们隐藏在普通目录遍历之外。
我鼓励您尝试一下,这并不复杂一旦您了解了正在播放的“技巧”。而一旦您获得了Got It™,就可以查看并集文件系统以获取更多的地毯信息:-)
不过请注意:一旦启动过程完成,在
/tmp
或/var
(或任何核心OS目录)上进行安装确实不是一个好主意。许多应用程序在这些目录中保留状态,如果您在它们周围玩坐骑游戏,可能会感到非常困惑。
评论
这是一个很好的答案-您超越了我的要求。绑定安装的想法也很酷!感谢您的详细回答。干杯。
–用户
15年4月25日在15:35
这是一种神秘地丢失磁盘空间的非常常用的方法。如果在启动脚本中由于某种原因挂载失败,则可以将数据写入根文件系统上的目录。如果随后尝试重新启动,则挂载可能会成功,并且也许没人会注意到(例如,如果文件系统包含tmp文件或日志),但它会占用很多空间。
–丹·谢泼德(Dan Sheppard)
15年4月25日在19:40
@DanSheppard这就是我喜欢将挂载点设置为chmod 000的原因之一。另外,如果关键挂载失败,为什么systemd无法启动。
–赞·山猫
2015年12月26日13:41
您是否也可以-bind在/ home / me上挂载/ home / me而不是“ bind”文件夹?即在地毯上再放一块地毯。还是您必须先卸载fs?
– Jiggunjer
17年1月29日在17:23
@jiggunjer看来,工会选项可以提供帮助。
–hliu
17年6月29日在6:02