【问题标题】:Mount R/O partition as R/W for write and then set back to R/O in C将 R/O 分区挂载为 R/W 进行写入,然后在 C 中设置回 R/O
【发布时间】:2011-12-02 21:09:51
【问题描述】:

我需要将文件写入嵌入式系统上的 /etc 文件夹,并将根分区安装为只读并让它们持久保存。假设应用程序以 root 身份运行,我可以在 C 或 C++ 中执行此操作吗?

【问题讨论】:

  • 如果 r/o 分区在 ROM 中,则不能。根据您的设备,它是一个特定的问题,不可能以通用的方式回答它
  • @littleadv 这是一个紧凑的 44pin IDE 闪存。它是以只读方式安装的 jfs 分区。
  • 那我猜你只是尝试运行mount 但它失败了,对吧?不然你也不会问吧?
  • @littleadv 我之所以这么问是因为我对文件系统的工作原理一无所知。
  • 我没试过mount,这可能是我要求别人告诉我怎么做的部分。

标签: c++ c linux embedded


【解决方案1】:

你总是可以做显而易见的事情:

system("mount -o remount,rw /etc");

大多数嵌入式系统应该足够完整,可以安装。

【讨论】:

  • 这只会重新挂载目录 /etc 而不是整个分区?
  • 整个分区。如果 /etc 不是单独的分区,则替换为“/”(自然)。如果底层文件系统在理论上是可写的(没有只读介质)并且覆盖 ro 标志,则 rw-remount 可以工作。
  • 我实际上只是尝试让 /etc 成为自己的分区,但它不会让我这样做。无论如何,所以我只需要运行 mount -o remount, rw / 然后当我完成运行 mount -o remount, ro / ?
  • 这会占用大量资源吗?
  • 谢谢!这很有帮助。
【解决方案2】:

假设应用程序正在运行,我可以在 C 或 C++ 中执行此操作吗? 根?

如前所述,您可以这样做:

system("mount -o remount,rw /etc");

但也有 mount 函数可以做到这一点。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-03-13
    • 1970-01-01
    • 1970-01-01
    • 2010-10-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多