以读写模式按分区挂载镜像进行更改
侧边栏壁纸
  • 累计撰写 19 篇文章
  • 累计收到 2 条评论

以读写模式按分区挂载镜像进行更改

admin
2025-08-29 / 0 评论 / 3 阅读 / 正在检测是否收录...

示例镜像如下:

root@x230:/mnt# sudo losetup --find --show hd9901_debian.img
/dev/loop21
root@x230:/mnt# sudo kpartx -av /dev/loop21
add map loop21p1 (252:0): 0 8000 linear 7:21 64
add map loop21p2 (252:1): 0 8192 linear 7:21 16384
add map loop21p3 (252:2): 0 8192 linear 7:21 24576
add map loop21p4 (252:3): 0 229376 linear 7:21 32768
add map loop21p5 (252:4): 0 3669983 linear 7:21 262144

要将镜像文件及其分区挂载为可读写模式,请按以下步骤操作:

  1. 创建挂载点目录

    sudo mkdir -p /mnt/{loader1,loader2,trust,boot,rootfs}
  2. 设置循环设备并映射分区

    # 附加镜像到循环设备
    sudo losetup --find --show hd9901_debian.img
    # 输出示例:/dev/loop21
    
    # 映射GPT分区到/dev/mapper
    sudo kpartx -av /dev/loop21
    # 输出示例:
    # add map loop21p1 (254:0): 0 8000 linear /dev/loop21 64
    # add map loop21p2 (254:1): 0 8192 linear /dev/loop21 16384
    # ...(其他分区映射)
  3. 挂载各分区

    # loader1分区(3.9 MiB)
    sudo mount -o rw /dev/mapper/loop21p1 /mnt/loader1
    
    # loader2分区(4.0 MiB)
    sudo mount -o rw /dev/mapper/loop21p2 /mnt/loader2
    
    # trust分区(4.0 MiB)
    sudo mount -o rw /dev/mapper/loop21p3 /mnt/trust
    
    # boot分区(112.0 MiB)
    sudo mount -o rw /dev/mapper/loop21p4 /mnt/boot
    
    # rootfs分区(1.7 GiB)
    sudo mount -o rw /dev/mapper/loop21p5 /mnt/rootfs
  4. 验证挂载

    df -Th | grep /mnt
    # 应显示所有已挂载分区及其文件系统类型

卸载步骤(操作完成后):

# 卸载所有分区
sudo umount /mnt/{loader1,loader2,trust,boot,rootfs}

# 移除分区映射
sudo kpartx -dv /dev/loop21

# 释放循环设备
sudo losetup -d /dev/loop21

注意事项

  1. 确保使用sudo或root权限执行所有操作
  2. 修改文件后建议执行sync命令同步数据
  3. 如果镜像文件来自不可信来源,挂载前建议先进行文件系统检查:

    sudo fsck /dev/mapper/loop21p5  # 对rootfs分区进行检查
  4. 要保持持久化修改,需确保镜像文件未被压缩或挂载为只读

高级技巧

  • 创建可写快照:

    qemu-img create -f qcow2 -b hd9901_debian.img debian_writable.qcow2

    之后可直接挂载debian_writable.qcow2进行写操作

  • 直接修改镜像内容(无需挂载):

    sudo modprobe nbd max_part=16
    sudo qemu-nbd --connect=/dev/nbd0 hd9901_debian.img
    # 现在可以直接操作/dev/nbd0p1-p5分区
0

评论 (0)

取消