Linux-linux分区中,比如第一块硬盘的分区上已经有一个挂载点/test,在第二块硬盘的分区上还可以继续挂载同名的挂载点,系统之后怎么来区分/test

发布于 2016-11-28 09:55:54 字数 54 浏览 1518 评论 3

我们在ls -ld /test的时候,是查看sda上的/test,还是查看sdb上的/test

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

甜柠檬 2017-10-23 04:15:18

系统是不根据名称来区分你的文件,是根据inode
打开文件。实际上,系统内部这个过程分成三步:首先,系统找到这个文件名对应的inode号码;其次,通过inode号码,获取inode信息;最后,根据inode信息,找到文件数据所在的block,读出数据。

归属感 2017-07-27 17:52:26

我琢磨着这个题目的意思是想问,如果我两个分区/dev/sda5和/dev/sda6,先后挂载在/test目录的情况下,/test目录下面的内容到底是/dev/sda5分区的还是/dev/sda6分区的。

那我直接给出答案吧,谁最后挂载,访问该目录下的内容就是谁的分区上的内容。比如,我先mount /dev/sda5 /test;然后再/mount /dev/sda6 /test。那我在/test目录下看到的内容是/dev/sda6分区上的内容。当我执行umount /dev/sda6之后,这个时候/test目录下的内容就是/dev/sda5分区上的内容了。

首先,Linux是允许多个设备挂载到同一个目录的,该目录的目录项对象dentry结构体中有个d_mounted变量来表明这个目录上挂载了多少个文件系统,同时有个d_vfsmnt表明了挂载了哪些文件系统。(我觉得是这样,但也不是很确定,期待对VFS比较熟悉的人来完善)

虐人心 2017-01-20 16:00:31

想知道当前的 /test 挂载信息,直接敲 mount | grep test 就很清晰的说明问题喽,不用挣得的这么复杂,其他跟 冷阳 说的一样。
我们也可以抽象的认为挂载同一个路径的逻辑是一个栈,先进后出。
也就是说先前挂载到 /test 的内容,会因为之后其他挂载进来的内容而被压栈
待栈顶的内容被 umount,也就是出栈之后,最先被挂载的内容就成为了栈顶显示出来了

祝好,
斑驳敬上

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文