列出所有挂载点在所有挂载命名空间中

主要观点:介绍了 Linux v6.9 中引入的listmount(2)statmount(2)系统调用,用于与挂载进行交互,通过新的 64 位挂载 ID 操作,且新 ID 不回收且唯一,旧 ID 经常回收且最大值为INT_MAX,新 ID 从INT_MAX + 1开始。详细说明了statmount(2)可获取挂载详细信息,listmount(2)可递归获取子挂载列表,还介绍了获取挂载命名空间 ID 的ioctl(2)及相关操作,最后给出了一个遍历所有挂载的示例程序。
关键信息

  • listmount(2)statmount(2)系统调用及相关结构struct mnt_id_reqstruct statmount
  • listmount(2)的递归、遍历所有挂载命名空间等功能及相关参数和标志。
  • 用于获取挂载命名空间 ID 的NS_MNT_GET_INFOnsfs ioctl(2)
  • 示例程序展示如何遍历所有挂载及相关系统调用和函数。
    重要细节
  • struct mnt_id_req的各个字段含义及版本化。
  • statmount(2)mask字段的各个选项含义。
  • listmount(2)默认按先后顺序返回挂载及LISTMOUNT_REVERSE改变顺序的情况。
  • 遍历挂载时需有CAP_SYS_ADMIN权限,示例程序中的各种系统调用和函数的使用及参数设置等。
阅读 11
0 条评论