大佬教程收集整理的这篇文章主要介绍了在linux上检测绑定挂载,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在寻找一种方法来确定给定的path是否是绑定挂载点(在Linux上)。 检测正常挂载点的标准技术似乎不起作用。 即使mountpoint命令也无法检测绑定挂载。
Win32应用程序暂停最小化窗口animation
什么是正确的方式处理不同的String编码通过c + +主char **参数?
严格的C Win GUI编程
我不确定是否应该有一种方法来做到这一点(除了可能通过/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,请注明来意。