![如何直接编辑squashfs图像而不解压和重新打包?](https://linux22.com/image/75876/%E5%A6%82%E4%BD%95%E7%9B%B4%E6%8E%A5%E7%BC%96%E8%BE%91squashfs%E5%9B%BE%E5%83%8F%E8%80%8C%E4%B8%8D%E8%A7%A3%E5%8E%8B%E5%92%8C%E9%87%8D%E6%96%B0%E6%89%93%E5%8C%85%EF%BC%9F.png)
我有一个从可启动 iso 文件复制的 squashfs 映像文件。挂载文件时,它始终以只读方式挂载。
是否可以直接编辑内容而不先提取squashfs图像,或者是否可以以读写方式挂载squashfs图像?
答案1
可以在不提取其内容的情况下修改 squashfs 映像,但有一些限制。如果您指定现有的 squashfs 映像作为 的目标参数mksquashfs
,而不指定该-noappend
选项,它将尝试从指定的源参数添加其他文件。如果遇到冲突,似乎mksquashfs
会尝试生成新名称,如果目标是就地编辑文件,这可能不是您想要的。
原则上,mksquashfs
可以允许在追加模式下替换文件(并保留进程中的名称),但我正在使用的版本mksquashfs version 4.3-git (2014/06/09)
(来自 sid 中的当前 debian 包)似乎不允许这样做。应该可以使用正确的代码对 squashfs 映像进行任意增量更改(如果文件删除只是孤立现有块,并且重用现有文件偏移量并附加新数据,则文件删除可能不会节省空间),但是似乎不太可能在已安装的图像上正常工作(您需要在修改图像之前卸载图像,然后重新安装它)。