借助nbd修改img文件

1. nbd模块加载
# lsmod | grep nbd
如果没有nbd模块,要手动挂载
modprobe nbd  max_part=8

成功加载之后,dev下生成虚拟设备目录
# ll /dev/  | grep nbd
brw-rw---- 1 root disk     43,   0  9?. 6 09:13 nbd0
brw-rw---- 1 root disk     43,  16  9?. 6 09:13 nbd1
brw-rw---- 1 root disk     43, 160  9?. 6 09:13 nbd10
brw-rw---- 1 root disk     43, 176  9?. 6 09:13 nbd11
brw-rw---- 1 root disk     43, 192  9?. 6 09:13 nbd12
brw-rw---- 1 root disk     43, 208  9?. 6 09:13 nbd13
brw-rw---- 1 root disk     43, 224  9?. 6 09:13 nbd14
brw-rw---- 1 root disk     43, 240  9?. 6 09:13 nbd15
brw-rw---- 1 root disk     43,  32  9?. 6 09:13 nbd2
brw-rw---- 1 root disk     43,  48  9?. 6 09:13 nbd3
brw-rw---- 1 root disk     43,  64  9?. 6 09:13 nbd4
brw-rw---- 1 root disk     43,  80  9?. 6 09:13 nbd5
brw-rw---- 1 root disk     43,  96  9?. 6 09:13 nbd6
brw-rw---- 1 root disk     43, 112  9?. 6 09:13 nbd7
brw-rw---- 1 root disk     43, 128  9?. 6 09:13 nbd8
brw-rw---- 1 root disk     43, 144  9?. 6 09:13 nbd9

2. 关联img文件到nbd设备
将需要修改的img文件关联到某个nbd设备上
# qemu-nbd -c /dev/nbd8 /var/lib/libvirt/images/dog2.img

之后就能看见img文件的内容了
# fdisk -l /dev/nbd8

Disk /dev/nbd8: 53.7 GB, 53687091200 bytes
255 heads, 63 sectors/track, 6527 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x0005f92c

     Device Boot      Start         End      Blocks   Id  System
/dev/nbd8p1   *           1          65      522081   83  Linux
/dev/nbd8p2              66        1341    10249470   83  Linux
/dev/nbd8p3            1342        3382    16394332+  82  Linux swap / Solaris
/dev/nbd8p4            3383        6527    25262212+   5  Extended
/dev/nbd8p5            3383        4658    10249438+  83  Linux
/dev/nbd8p6            4659        6527    15012711   83  Linux

3. 修改img文件内容
如果要修改某个分区的内容,就将该分区挂载到某个目录
mkdir yyy1
mkdir yyy2
mount /dev/nbd8p1 ./yyy1
mount /dev/nbd8p2 ./yyy2

修改完成后,记得umount
umount ./yyy1
umount ./yyy2

4. 取消img文件与nbd的关联
# qemu-nbd -d /dev/nbd8
/dev/nbd8 disconnected

你可能感兴趣的:(借助nbd修改img文件)