首页/安全/取证与溯源速查/镜像的只读环回挂载
Linux 取证135 条

镜像的只读环回挂载

对采集好的镜像做环回挂载时固定只读选项:losetup -r 与挂载的 ro、noatime 组合,防止分析操作写回镜像文件。

取证与溯源速查安全更新于 2026-10-13

为什么要只读挂载

对采集好的磁盘镜像做环回挂载时,必须固定只读选项,否则分析过程中系统可能自动更新访问时间、写入日志或修改超级块,证据完整性就毁了。做法是用 losetup -r 建立只读环回设备,再用 -o ro,noatime 挂载;镜像内通常是分区镜像,需要把分区起始扇区换算成字节偏移(起始扇区 × 512)。挂载后的第一件事是确认挂载选项确实包含 ro,再开始浏览。

基本信息

适用平台Linux 分析环境(util-linux 的 losetup/mount)
建立设备losetup -r -f --show /evidence/disk.dd 输出只读环回设备名
挂载选项-o ro,noatime,有分区时追加 offset=起始扇区*512
偏移获取fdisk -l 或 mmls 查看分区起始扇区
收尾动作先 umount 再 losetup -d,避免设备残留

典型使用场景

  • 浏览镜像内文件系统内容,导出需要进一步分析的文件
  • 在镜像上运行取证工具做文件系统级解析
  • 核对文件是否存在、目录结构是否与访谈相符
  • 为后续提取配置文件与日志提供便利,避免反复解包镜像
  • 确认镜像中的分区布局,作为进一步分卷分析的依据

只读挂载流程

只读挂载流程
# 0) 先看分区布局,拿到起始扇区(示例:2048)
mmls /evidence/disk.dd | head
# 1) 建立只读环回设备
sudo losetup -r -f --show /evidence/disk.dd
# 2) 按偏移挂载,务必带上 ro 与 noatime
sudo mount -o ro,noatime,offset=$((2048*512)) /dev/loop0 /mnt/img
# 3) 验证挂载选项(必须能看到 ro)
mount | grep /mnt/img
# 4) 浏览与导出需要的文件
ls /mnt/img; cp /mnt/img/etc/hosts /case/out/
# 5) 收尾:先卸载再释放设备
sudo umount /mnt/img && sudo losetup -d /dev/loop0

步骤与要点

步骤命令要点
查看分区mmls / fdisk -l记录起始扇区,避免偏移算错挂错分区
建立设备losetup -r -f --show-r 表示只读,缺了它后续挂载仍可能写回
挂载mount -o ro,noatime,offset=…noatime 防止读取动作更新访问时间
验证mount | grep 挂载点确认 ro 生效,发现异常立即卸载重来
卸载umount + losetup -d顺序不能反,残留设备会干扰后续挂载
用 mount -o loop,offset=…,ro 一步挂载也可以,核心是 ro 与偏移正确;但分两步的好处是能明确看到设备是否为只读,便于排查。
不要在挂载点内执行包管理器、索引或任何批量改写操作。凡是要在原盘结构上写入的分析,都应改为先把文件导出到工作目录再处理。

易错点

  • 偏移按字节误当扇区使用:分区起始值通常是扇区号,需要乘 512,直接当字节会导致挂载出错或挂错分区
  • 忘记 -r 只读标志:只写 mount 的 ro 通常也够用,但设备层若可写,误操作仍有机会写回镜像,两层都设只读更稳
  • 挂载后不验证选项:以为挂上了就安全,实际可能因参数拼写问题变成可写挂载,用 mount 输出确认是必要步骤
  • 卸载顺序颠倒:先 losetup -d 再 umount 会导致设备忙或数据状态异常,务必先卸载文件系统
  • 在挂载点内做批量分析:文件复制与索引会改写访问时间,破坏镜像内时间证据,所有分析动作都在导出副本上进行

数据来源与参考

  • util-linux(losetup/mount 手册)
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌