scratch.img.0000是什么?如何缩减该文件体积?
缩减ADB Remount生成的scratch.img.0000文件体积的方法
scratch.img.0000是执行adb remount时创建的overlay文件系统镜像,默认会分配较大空间容纳系统分区修改。以下是几种可行的缩减方案:
方案1:自定义镜像大小后重新挂载
- 卸载当前scratch挂载点:
umount /mnt/scratch - 删除原有大镜像文件:
rm /data/gsi/remount/scratch.img.0000 - 创建指定大小的新镜像(示例为2G,可按需调整):
truncate -s 2G /data/gsi/remount/scratch.img.0000 - 重新挂载overlay文件系统:
注意:操作前需确保已通过mount -t overlay overlay -o lowerdir=/system,upperdir=/mnt/scratch/upper,workdir=/mnt/scratch/work /systemadb remount获取系统分区读写权限,且备份重要修改内容。
方案2:清理overlay冗余数据
若镜像变大是因积累临时文件或无用修改,可清理overlay上层目录:
- 查看
/mnt/scratch/upper下的冗余内容:ls -lh /mnt/scratch/upper - 删除不需要的文件/目录:
rm -rf /mnt/scratch/upper/path/to/unwanted/files - 执行文件系统优化回收空间:
说明:若镜像为预分配格式,实际磁盘占用可能不会立即减少,需依赖文件系统的稀疏特性。fstrim /mnt/scratch
方案3:改用临时读写挂载
如果无需长期保留系统修改,可避免持久化remount,改用临时挂载:
- 临时禁用verity并重启:
adb disable-verity adb reboot - 重启后直接挂载系统分区为读写:
说明:此方式不会生成adb root adb shell mount -o rw,remount /systemscratch.img.0000,修改仅在当前会话生效,重启后恢复原状,适合临时修改场景。
所有操作需设备已解锁bootloader并获取root权限,操作前请备份重要数据,避免系统损坏。
内容的提问来源于stack exchange,提问作者Tycho Chen
相关产品推荐
相关产品推荐

