请稍侯

挂载修改多分区 img 镜像文件

16 January 2024

挂载修改多分区 img 镜像文件

losetup命令

-f, --find                    find first unused device
-P, --partscan                create a partitioned loop device

1.查看下一个可用的loop设备 使用命令losetup -f 查询到的下一个可用loop设备文件为 /dev/loop19。

$ losetup -f
/dev/loop0

2.使用 losetup -p 参数挂载img文件

$ sudo losetup -P /dev/loop0 ds918_7.2.1.img

查看磁盘信息

$ sudo lsblk
 NAME          MAJ:MIN RM   SIZE RO TYPE MOUNTPOINTS
 loop0          7:0    0   256M  0 loop 
 ├─loop0p1      259:6    0   125M  0 part 
 ├─loop0p2      259:7    0   125M  0 part 
 └─loop0p3      259:8    0     5M  0 part 

3.挂载文件系统

$ mount /dev/loop0p1 /mnt/pve/temp

挂载修改多分区 img 镜像文件

# losetup 两个常用的选项:
# -f 查找第一个未使用的设备
# -P 带分区的回环设备

#  查找下一个未使用的循环设备并将system.img镜像挂载上去
sudo losetup -f --show -P system.img

# 挂载带分区的磁盘镜像文件
losetup -P /dev/loop1 /var/lib/vz/images/123/vm-123-disk-0.raw

# 查看镜像的分区信息
fdisk -l system.img

# 挂载分区 3
sudo mount /dev/loop0p3 /mnt/
# 另一种方法,$begin 为分区 3 的起点
sudo mount -o loop,offset=$((512 * $begin)) system.img /mnt/

# 在此执行自定义修改命令

# 卸载分区
# 注意:卸载时 shell 不可以处于 /mnt/ 下,否则报错 umount: /mnt: target is busy.
sudo umount /mnt/

# 断开回环设备
sudo losetup -d /dev/loop0

参考: 挂载修改多分区 img 镜像文件
挂载并修改img镜像的分区文件