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

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

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

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

安装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 磁盘镜像 2

挂载nbd磁盘设备

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

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

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

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

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

总结

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

 

weinxin
自然博客
快来关注一下,一个linux运维爱好者的个人博客!
  • 本文由 发表于 2020年3月19日16:22:31
Linux使用密钥对登录 提升安全等级 Linux

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

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

debian10网卡设置

debian系统的网络配置和centos略有差别,centos是一个网卡采用一个设备文件进行信息的描述,而debian系统则是全部网卡配置集中在一个文件里面,粗浅的考虑是方便管理吧。debian系统的...
debian10开启ssh远程登录 Linux

debian10开启ssh远程登录

最小化安装debian系统后,ssh远程登录服务默认是关闭且禁止直接使用root账户进行登录。那么我们要如何开启ssh服务并允许root账户登录呢?下面自然简单说一下两种操作方式,适用于代码强迫症患者...
匿名

发表评论

匿名网友 填写信息

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