Df 输出的分区重复 !?

在论坛搜索了下,没人问 df 的输出结果有重复

挂载的本地分区, 在 /run/ /var/run 下各有一条记录

有人知道怎么回事吗?

什么记录?不贴就没人知道

Sent from my Galaxy Note 2 using Tapatalk 2

/run, /var/run 是 bind mounts ,这两个目录本质上是一个文件。他们具有相同的 inode。

ls -ldi /var/run /run
3190 drwxr-xr-x 23 root root 680 5 月   6 18:35 /run
3190 drwxr-xr-x 23 root root 680 5 月   6 18:35 /var/run

看到了吗?inode 都是 3190,他们是同一个文件。这就很好的解释了为什么两个目录下各有一条记录,且完全相同。
但是为什么要这么做呢?
我们知道,/var/run 里面保存的是运行时的可变数据,这些数据是无需持久化的。重启之后就没有了。根据最新的 文件系统结构标准 ](Filesystem Hierarchy Standard) ,大家认为 run 目录放在 /var 目录下是不合理的,必须单独放在 / 根目录下,这样 /run 成为了新的跨发行版的存储瞬态文件的地方。为了保证向后兼容性,做了 /var/run 这个 bind mount。
事实上,用符号链接 (symlink) 一样可以达成同样的目的。
至于 bind mounts 和 symlink 优缺点对比,我就不清楚了,还得在研究下。
关于 /run 的引入,请参考:
Introducing /run

我还以为是我握鼠标的姿势不对呢。。。

#2 楼, 我发贴没贴 df 查询结果,难道你的系统上不会重复?
#3 楼, 这个原因我之前 google 了下,和你说的一样。 现在就不知道还要忍多久这个过渡期,到下个版本应该能完成吧?
在 fstab 里没看到挂载脚本,直接 umount /run 或 /var/run 都不行,明天再试下在 initrd.img 里能不能找到挂载的脚本改下。

darkpink:/home/marguerite # df
文件系统           1K- 块      已用      可用 已用 % 挂载点
tmpfs            1534756      5200   1529556    1% /run
tmpfs            1534756      5200   1529556    1% /var/run

抱歉我的 df 是这样的。df --help 也有好多参数。既然你没说清楚,那就不能怪别人回答你心灵感应不到。三楼那也是蒙上了。

我当然知道 /run 和 /var/run 是一个,而且我还知道它是个 systemd unit 用 systemd 挂载的,所以你 fstab 找不到。而且我还知道你去掉一个的后果是什么。但是很抱歉,我没有别人问一句模棱两可的我就把脑子里的知识掏空的习惯。

女王,我这咋就成了蒙上了呢?你看我是喜欢蒙的人吗?我是理解了楼主的意思才给出的答复。
认可别人不代表贬低自己,认可别人彰显广阔的胸襟,求是的态度。

问题都没说清楚的时候,你理解上了就是蒙啊,只能说你蒙的合理性比较高。那就跟别人说「开不了机」,你说「显卡驱动装了吗?」,人家说「哦没装」,问题是解决了,但这没有一点 debug 过程就是蒙的啊。开不了机还有 kernel panic,还有 systemd 还有 btrfs,可能性很多啊。作为 valued user 你不能助长描述不清问题就得到答案的行为,这样你会发现你越来越累,因为人家觉得跟你这么描述就是可以的。另外没你那知识面的其它想伸帮助小手的人也就越来越没可能参与进来了。 :joy:

也可能是插头没插