Linux 如何使用循环选项挂载文件系统映像文件读/写

问题描述 投票:0回答:1

我构建了一个 Android GSI,它构建了一个 system.img 文件:

$ file out/target/product/generic_arm64/system.img
out/target/product/generic_arm64/system.img: Linux rev 1.0 ext2 filesystem data, UUID=2c8eea3b-0bb2-46f9-a3d6-3e19c4968bff (extents) (large files) (huge files)

然后我尝试将其挂载为读/写,但失败了:

$ sudo mount -o loop out/target/product/generic_arm64/system.img /home/user/tmp/mnt
mount: /home/chrisk/tmp/mnt: wrong fs type, bad option, bad superblock on /dev/loop33, missing codepage or helper program, or other error.

然后我尝试以只读方式安装它并且成功了:

$ sudo mount -o ro,loop out/target/product/generic_arm64/system.img /home/user/tmp/mnt
$ df
<stuff>
/dev/loop33       1928320    1862664     49272  98% /home/user/tmp/mnt
$ ls /home/user/tmp/mnt
acct        d              etc              metadata  postinstall             sys
apex        data           firmware         mnt       proc                    system
bin         data_mirror    init             odm       product                 system_dlkm
bugreports  debug_ramdisk  init.environ.rc  odm_dlkm  sdcard                  system_ext
cache       dev            linkerconfig     oem       second_stage_resources  vendor
config      dsp            lost+found       persist   storage                 vendor_dlkm

是否可以因为读/写需要更多可用空间或其他原因而无法挂载读/写?

我想向该图像添加一些小文件。

如何安装此读/写?

谢谢

android linux mount read-write
1个回答
0
投票

.img 文件是您构建它的源的固定版本,与 .iso 文件非常相似,并且它不能动态增长或收缩。

如果您有创建 .img 文件的源文件,那么您应该在运行命令创建新的 .img 文件之前进行任何更改。

如果您没有构建 .img 的源代码,您可以:

  • 以只读方式安装.img
  • 创建一个新目录
  • 将只读挂载的内容复制到目录中
  • 在目录中进行所需的任何更改
  • 使用相关命令将目录内容转入新的.img文件

尼克

© www.soinside.com 2019 - 2024. All rights reserved.