挂载磁盘镜像分区

导出时间:2026/6/8 07:27:54

来源地址:https://www.doubao.com/chat/38429611891862274

消息数量:3

我有一个磁盘镜像,它有三个分区,我忘了现在要怎么去把它 mount 到三个目录下,我想查看一下这个镜像里的内容。就是简单的 mount,好像是要有一个偏移量去进行 mount 才行,这个命令我忘掉了。

一、先算每个分区的偏移字节

fdisk 里 Start 是扇区数,1 扇区 = 512 字节 偏移 = Start × 512
从截图 fdisk 输出:
  1. Nas.img1:Start=2048
  2. Nas.img2:Start=104448
  3. Nas.img3:Start=206848
  • 分区 1 偏移:2048 * 512 = 1048576 字节
  • 分区 2 偏移:104448 * 512 = 53477376 字节
  • 分区 3 偏移:206848 * 512 = 105906176 字节

二、挂载命令(两种方式任选)

方式 1:mount 直接带 offset(最简)

bash
运行
# 先建三个挂载目录
mkdir -p /tmp/img1 /tmp/img2 /tmp/img3

# 挂载分区1
sudo mount -o loop,offset=1048576 Nas.img /tmp/img1

# 挂载分区2
sudo mount -o loop,offset=53477376 Nas.img /tmp/img2

# 挂载分区3
sudo mount -o loop,offset=105906176 Nas.img /tmp/img3

方式 2:losetup 先绑定 loop 设备(排查错误更稳)

bash
运行
# 绑定分区1到loop8(举例)
sudo losetup -o 1048576 /dev/loop8 Nas.img
sudo mount /dev/loop8 /tmp/img1

# 分区2绑loop9
sudo losetup -o 53477376 /dev/loop9 Nas.img
sudo mount /dev/loop9 /tmp/img2

# 分区3绑loop10
sudo losetup -o 105906176 /dev/loop10 Nas.img
sudo mount /dev/loop10 /tmp/img3

三、你报错 wrong fs type / bad superblock 的常见原因

  1. 文件系统损坏:先检查
    bash
    运行
    # 对分区1做fsck检查(一定要卸载后再修)
    sudo losetup -o 1048576 /dev/loop8 Nas.img
    sudo fsck /dev/loop8
    
  2. 不是 ext 系列:如果是 xfs/btrfs,mount 会不认,需要对应工具
  3. 镜像本身有坏块:可先用 file Nas.imgblkid /dev/loopX 看真实文件系统类型
  4. 你之前 mount -t auto 多余,auto 会自动识别,去掉 -t auto 只用 -o loop,offset= 即可

四、卸载(用完必须操作)

bash
运行
sudo umount /tmp/img1 /tmp/img2 /tmp/img3
# 清理loop设备(losetup方式才需要)
sudo losetup -d /dev/loop8 /dev/loop9 /dev/loop10

快速复制可直接执行的完整脚本

bash
运行
mkdir -p /tmp/img1 /tmp/img2 /tmp/img3
sudo mount -o loop,offset=1048576 Nas.img /tmp/img1
sudo mount -o loop,offset=53477376 Nas.img /tmp/img2
sudo mount -o loop,offset=105906176 Nas.img /tmp/img3