如何提取镜像内部文件内容

联启 电脑工具 1

本文目录导读:

如何提取镜像内部文件内容-第1张图片-电脑手机工具软件下载 - 免费实用工具合集 | 联启科技

  1. Docker 镜像
  2. ISO 文件
  3. 磁盘镜像(RAW、QCOW2、VMDK 等)
  4. 嵌入式文件系统镜像(如 squashfs、UBI)
  5. APK/AAB 安装包(Android)
  6. 注意事项

Docker 镜像

通过容器导出

# 创建临时容器(不运行)
docker create --name temp_container your_image:tag
# 复制文件到本地
docker cp temp_container:/path/to/file ./local_file
# 清理临时容器
docker rm temp_container

直接导出镜像并解压

# 保存镜像为tar包
docker save -o image.tar your_image:tag
# 解压tar包
tar -xvf image.tar
# 进入各层目录(每层包含一个json文件和layer.tar)
cd [layer_id]
tar -xvf layer.tar  # 提取该层文件内容

使用 skopeo(跨仓库工具)

# 下载镜像到本地目录(无需Docker守护进程)
skopeo copy docker://your_image:tag dir:/path/to/output
# 查看输出目录中每一层的manifest.json,并解压blobs/sha256下的文件

ISO 文件

Linux 系统

# 挂载ISO到/mnt目录
sudo mount -o loop your_image.iso /mnt
# 复制所需文件
cp /mnt/somefile ./
# 卸载
sudo umount /mnt

macOS 系统

# 挂载ISO
hdiutil mount your_image.iso
# 文件会出现在 /Volumes/ 下
cp /Volumes/ISO_NAME/somefile ./
# 卸载
hdiutil unmount /Volumes/ISO_NAME

磁盘镜像(RAW、QCOW2、VMDK 等)

使用 qemu-nbd(Linux)

# 加载网络块设备模块
sudo modprobe nbd max_part=8
# 连接镜像到nbd设备
sudo qemu-nbd --connect=/dev/nbd0 your_image.qcow2
# 查看分区
sudo fdisk -l /dev/nbd0
# 挂载分区(如/dev/nbd0p1)
sudo mount /dev/nbd0p1 /mnt
# 提取文件后卸载
sudo umount /mnt
sudo qemu-nbd --disconnect /dev/nbd0

使用 guestfish(跨格式工具)

guestfish -a your_image.qcow2 -i
> ls /
> download /path/to/file ./local_file
> exit

嵌入式文件系统镜像(如 squashfs、UBI)

Squashfs

# 解压(需安装squashfs-tools)
unsquashfs -d output_dir your_image.squashfs

UBI 镜像

# 使用 ubireader(Python工具)
ubireader_extract_images your_image.ubi

APK/AAB 安装包(Android)

# 解压apk(本质是zip)
unzip your_app.apk -d output_dir
# 查看classes.dex等文件

注意事项

  • 权限问题:某些操作可能需要 sudo 或管理员权限。
  • 镜像层次:Docker镜像可能包含分层,需要合并所有层才能得到完整文件系统。
  • 加密/压缩:部分镜像可能加密或使用特殊压缩格式(如ZFS),需专用工具。

选择方法时,先明确镜像类型和运行环境,如果是Docker镜像,推荐方法一(通过容器提取)最简单直观。

标签: 文件内容

抱歉,评论功能暂时关闭!