使用qemu-nbd挂载并编辑qcow2 磁盘镜像

avatar
avatar
自然
408
文章
472
评论
2020年3月19日16:22:31 评论 940字阅读3分8秒

封装vps镜像的大致步骤是安装原版系统ISO,然后添加驱动程序并修改参数,最后打包成镜像文件,常用镜像就是qcow2。许多vps镜像都有初始化脚本,我们部署vps后修改vps参数,再次打包镜像,会造成初始化脚本丢失的情况。今天自然就来分享适用qemu-nbd挂载qcow2镜像,在非部署的情况下修改镜像中的系统内容。

使用qemu-nbd挂载并编辑qcow2 磁盘镜像

安装qemu-nbd工具

qemu-nhb可以将一个磁盘镜像导出为 "network block device (nbd)",通过挂载的方式实现编辑。使用qemu-nbd工具的前提是系统内核已经安装了nbd模块,适用lsmod |grep nbd输出结果为空怎么表示内核不支持nbd模块,无法使用qemu-nbd工具。

在基于 Debian 的系统上安装qemu-nhb工具:

apt-get install qemu-utils

在基于 Red Hat/Centos 的系统上安装qemu-nhb工具:

yum install qemu-img

使用qemu-nbd工具导出映射qcow2磁盘镜像

第一个命令加载 nbd 内核模块。"max_part=N" 选项指定我们想要通过 nbd 管理的分区的最大个数。第二个命令将特定的磁盘镜像导出为网络块设备(/dev/nbd0)。作为一个网络块设备,你可以使用 /dev/nbd0,/dev/nbd1,/dev/nbd2,等等中任意没有在使用的。至于磁盘镜像,要确保指定它的 “完整” 路径。

modprobe nbd max_part=8
qemu-nbd --connect=/dev/nbd0 /path/to/qcow2/image

检查分区表

fdisk /dev/nbd0 -l

实例:

使用qemu-nbd挂载并编辑qcow2 磁盘镜像

挂载nbd磁盘设备

成功将qcow2磁盘镜像导出为nbd后,就可以和正常的磁盘一样操作了。使用mount命令挂载到指定目录,即可正常修改各种文件。

使用qemu-nbd挂载并编辑qcow2 磁盘镜像

使用qemu-nbd工具断开映射qcow2磁盘镜像

我们对qcow2磁盘镜像编辑完成后,需要依次使用umount卸载挂载点,然后使用qemu-nbd工具断开映射nbd。

使用qemu-nbd挂载并编辑qcow2 磁盘镜像

总结

使用qemu-nbd挂载并编辑qcow2 磁盘镜像是一个非常不错的办法,但该办法也存在一定的问题,你进行的一些操作无法并保存到qcow2磁盘镜像当中去,结合chroot命令使用效果更佳。

 

weinxin
自然博客
快来关注一下,一个linux运维爱好者的个人博客!
avatar
  • 本文由 发表于 2020年3月19日16:22:31
AlphaSSL 域名通配符型DV SSL证书
全网通流量卡/物联卡 SIM专用上网卡
Linux使用密钥对登录 提升安全等级 Linux

Linux使用密钥对登录 提升安全等级

自然经常遇到一个问题,每次登录服务器经常可以开到这么一句提升“本次登录成功前,已有9w+次认证失败”,毫无疑问,这是被人爆破了。服务器经常被人爆破,如果你的密码太多与简单,有可能会把密码爆破出来。自然...
匿名

发表评论

匿名网友 填写信息

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: