【问题标题】:Cannot mkdir /proc/sys/somedir, though /proc/sys exists不能 mkdir /proc/sys/somedir,虽然 /proc/sys 存在
【发布时间】:2017-12-15 20:01:53
【问题描述】:

试图创建一个目录。使用以下命令(如root

$mkdir -p /proc/sys/sunrpc

请注意,/proc/sys 已经存在。还是报错

mkdir: 无法创建目录'/proc/sys/sunrpc': 没有这样的文件或目录

即使在尝试时也会遇到类似的错误

$cd /proc/sys
$mkdir sunrpc (or sunrpc/ or ./sunrpc or ./sunrpc/ or using sudo)

最终,我正在尝试按照说明 here 为 nfs 客户端(商业 hadoop 系统)设置 rpc 请求配额。能够创建目录成为问题的关键在于我需要运行命令:

echo 128 > /proc/sys/sunrpc/tcp_slot_table_entries 
echo 128 > /proc/sys/sunrpc/tcp_max_slot_table_entries

并且目录sunrpc在父文件系统/proc/sys中尚不存在。

以前有没有人遇到过这种问题(找不到其他确认父目录存在的帖子)?这里会发生什么?谢谢。

【问题讨论】:

  • 作为主题介绍:man 5 proc
  • 你不能在/proc中创建目录,/proc是一个暴露内核btis的虚拟文件系统。如果您告诉我们您实际上想要做什么,我们或许可以提供一些建议。
  • @larsks 谢谢,要弄清楚父目录需要一些时间。很特别。我已将问题的最终目标添加到帖子中。
  • 如果这些目录不存在,那么尝试创建它们并创建文件对您没有任何好处,因为内核中没有任何东西可以对它们做任何事情。您的系统上是否加载了sunrpc 模块(查看lsmod 的输出)?如果你显式加载它(modprobe sunrpc),这些条目会出现吗?
  • @CharlesDuffy 在 NFS 方面没有太多经验,并且在尝试回显到帖子中的文件之前没有在客户端上安装 NFS。创建预期的挂载目录。在客户端并执行clush -g nfsclients 'mount /mapr' 之类的操作解决了问题(即出现了目录和文件)。谢谢大家。

标签: bash mkdir procfs


【解决方案1】:

在 Linux 上,/proc 中的条目除了与 PID 直接相关的条目(仅当具有给定 ID 的进程存在时才存在)由内核模块在加载或硬件连接时创建(很少 - - 大多数这些用途已转移到/sys)。

如果您尝试配置用于支持 Linux 内核 NFS 实现的模块,您需要确保该实现的相关内核模块已加载并提前工作。您可以识别它们的名称并使用modprobe 加载它们——或者只是启动 NFS 服务器或客户端(根据当前机器而定);如果服务能够启动,它所依赖的模块必然会被加载。

【讨论】:

    【解决方案2】:

    你不能mkdir/proc 下的目录的原因是因为这是一个虚拟文件系统,是 Linux 下常见的几个文件系统之一(/sys 是另一个原则)。

    条目由内核本身填充,经常响应加载的内核模块。在您的情况下,我怀疑您想要安装 sunrpc 内核模块,可能还有其他:

    modprobe sunrpc
    

    您可以通过以下方式检查:

    grep sunrpc /proc/modules
    

    还有可能与uncer Configure MapR for HP Vertica相关的进一步文档。

    如果不是这样,请用您要实现的具体目标重申您的评论。

    Mapr version 5 文档有一组与您提到的类似的说明,并特别注意:

    重启节点后,如果/proc/sys/sunrpc目录不可用或者rpcidmapd没有运行,使用以下命令启动rpcidmapd服务:service rpcidmapd start

    我会检查内核模块本身是否没有解决这个问题。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-06-27
      • 1970-01-01
      • 1970-01-01
      • 2015-05-04
      • 1970-01-01
      • 1970-01-01
      • 2020-12-23
      • 2023-03-25
      相关资源
      最近更新 更多