Git   发布时间:2022-04-04  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了在linux上检测绑定挂载大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

我正在寻找一种方法来确定给定的path是否是绑定挂载点(在Linux上)。 检测正常挂载点的标准技术似乎不起作用。 即使mountpoint命令也无法检测绑定挂载。

Win32应用程序暂停最小化窗口animation

在Linux中将共享库链接到另一个共享库

什么是正确的方式处理不同的String编码通过c + +主char **参数?

严格的C Win GUI编程

在C#应用程序中定期读取文本文件内容

我不确定是否应该有一种方法来做到这一点(除了可能通过/etc/mtab或/etc/fstab ),因为我知道绑定挂载在挂载空间是排序“硬链接”(而不是文件层次结构),并且没有办法(一旦绑定挂载发生)区分源和目标挂载点。

为什么要问这个? 绑定挂载(恕我直言)主要是有用的隐藏从应用程序的角度来看这样的事情(否则你会使用符号链接甚至硬链接,在极少数情况下,他们是可能的目录)

我刚刚发现的感谢你的问题的安装点似乎看到了一些东西:

% grep /home /etc/fstab UUID=000008-0003-000c-9ecd-0f1a /home ext3 defaults 0 2 % grep /usr/src /etc/fstab /home/Src /usr/src none bind 0 0 % mountpoint /usr/src /usr/src is a mountpoint % mountpoint /home/Src /home/Src is not a mountpoint

通过strace -ing mountpoint我发现它正在对像/usr/src & /usr/src/..这样的目录执行lstat , stat和fstat系统调用/usr/src/..

(于2016年11月加入:)

另请参阅/proc/mounts例如proc(5)和nftw(3)

通过检查目录和文件文件系统标识,您可以检测路径是否为挂载点

挂载的文件系统与父目录不同

他们不是都是内核虚拟文件系统(所有似乎FSID都是1)。

这是一个快速的命令行演示:

$ cut -d ' ' -f2 /proc/mounts | xargs stat -c '%i %n' 1 /sys 1 /proc 1025 /dev 1 /dev/pts 13313 /run 2 / 1 /sys/kernel/security 14525 /dev/shm 14527 /run/lock 14528 /sys/fs/cgroup 1 /sys/fs/cgroup/systemd 14530 /sys/fs/pstore 1 /sys/fs/cgroup/freezer 1 /sys/fs/cgroup/net_cls,net_prio 1 /sys/fs/cgroup/pids 1 /sys/fs/cgroup/blkio 1 /sys/fs/cgroup/perf_event 1 /sys/fs/cgroup/cpuset 1 /sys/fs/cgroup/cpu,cpuacct 1 /sys/fs/cgroup/devices 1 /proc/sys/fs/binfmt_misc 9542 /dev/mqueue 2355 /dev/hugepages 1 /sys/kernel/debug 2 /home 1 /proc/sys/fs/binfmt_misc 21636 /run/user/1000

一旦你知道它是一个挂载点,那么如果它不出现在/proc/mounts ,你可以认为它是一个绑定挂载。

$ mount | grep bind

我不是很清楚你想要什么,这个命令是否适合你的需要?

大佬总结

以上是大佬教程为你收集整理的在linux上检测绑定挂载全部内容,希望文章能够帮你解决在linux上检测绑定挂载所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。
标签: