如何使 squash 文件系统可读写

How to make squash file system read-write

我的 RTL8196EU Realtek 开发板具有只读压缩文件系统。如何让这个文件系统读写。

我试过挂载命令

mount -o remount,rw /

但这并没有解决问题。

帮我做一个读写squash fs

你不能。 squashfs 本质上是只读的。

如果您想上传新文件,您需要创建并安装一个单独的读写文件系统。如果您想修改现有文件,您需要创建并(小心!!)上传替换文件系统映像。

Squashfs 是只读的。因为整个文件系统在写入存储介质之前是经过压缩和压缩的。因此,对任何文件进行任何更改,都必须将其压缩并再次重写到整个分区 - 如果重复进行,这是一种极大的浪费。如果整个文件系统无法放入内存,您将需要一个单独的存储区域来存储 compression/decompression 期间的中间文件 - 占用更多不必要的存储空间 space.

正如其他人所提到的,您不能将 squashfs 文件系统挂载为读写。然而,仍有一种方法可以修改内容。 [un|mk]squashfs 工具需要 squashfssquashfs-tools 包。

以 root 身份,将 filesystem.squashfs 复制到某个空目录,例如:

$ mkdir /tmp/foo
$ cp /[path]/[filesystem.squashfs] /tmp/foo
$ cd /tmp/foo

解压 squashfs 文件:

$ unsquashfs [filesystem.squashfs]

进入squashfs-root目录修改成你喜欢的然后重新创建filesystem.squashfs:

$ cd /tmp/foo
# Do your thing here
$ mksquashfs squashfs-root [filesystem.squashfs] -comp xz

复制新创建的 filesystem.squashfs 覆盖现有的。

$ cp /tmp/foo/[filesystem.squashfs] /[path]/