【问题标题】:Create multiple SquashFS partitions创建多个 SquashFS 分区
【发布时间】:2010-08-03 06:41:21
【问题描述】:

我正在开发嵌入式平台(Broadcom 的带有 MIPS 内核的 bcm5358u 处理器),我需要额外的分区以进行进一步的升级过程。使用的文件系统是 SquashFS,所以我相应地修改了 'struct mtd_partition',将其传递给 MTD 相关代码,我最终得到了这个:

#cat /proc/partitions
major minor  #blocks  name

 - 31     0        128 mtdblock0
 - 31     0        128 mtdblock0
 - 31     1       6016 mtdblock1
 - 31     2       4573 mtdblock2
 - 31     3       6016 mtdblock3
 - 31     4       4445 mtdblock4
 - 31     5       4160 mtdblock5
 - 31     6         64 mtdblock6

现在我希望能够在系统升级期间挂载 /dev/mtdblock4 作为临时存储,但我不能这样做,因为这个分区 mtdblock4 似乎没有安装任何 FS。内核映像和 FS 集成在一个映像中,该映像在 /dev/mtdblock2 (作为 root_fs 提供给内核)中刷新。

我只看到一个解决方案:创建一个空的 squashFS 映像,将其写入 /dev/mtdblock4,它可能会按我的意愿工作(?)。有没有办法在内核启动或违反 MTD 概念时即时格式化分区?

谢谢。

【问题讨论】:

  • 这是Super User的问题。
  • 不,确实不是。它是非常特定于嵌入式的。

标签: linux embedded filesystems


【解决方案1】:

您可以将 JFFS2 文件系统安装在空(已擦除)闪存上。它会自动 在挂载时“格式化”闪存分区。 Squashfs 不是一个好的候选者,因为它是一个只读文件系统。

【讨论】:

    【解决方案2】:

    您是否有不能即时创建挂载新 FS 的原因?

    您绝对不想要一个空的 squashFS 映像。如果您想要临时可写存储,您可以使用tmpfs 卷之类的东西。如果您需要支持系统重启,您可以在原始闪存设备上使用 JFFS。您应该能够像任何其他块设备一样格式化/安装 MTD 设备。

    【讨论】:

      【解决方案3】:

      感谢您的回复。

      是的,SquashFS 是只读的,但我仍然可以通过平台供应商提供的 Web 界面更新我的系统。平台SDK提供API直接从用户空间访问MTD。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2019-08-09
        • 1970-01-01
        • 2017-07-31
        • 2015-12-24
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多