创建多个SquashFS分区

时间:2010-08-03 06:41:22

标签: linux embedded filesystems

我正在开发嵌入式平台(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概念?

感谢。

3 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分:0)

是否有理由无法动态创建新的FS?

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

答案 2 :(得分:0)

感谢您的回复。

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