PVE中将img镜像转换为CT容器专用模板

admin2024-04-20  20

iStoreOS的img镜像文件已经通过PVE的web ui上传到了iso文件存放的目录中,找到PVE的ISO文件存放位置,一般是在/var/lib/vz/template/iso/

 

创建一个文件夹,用来挂载要转换的iso文件,文件夹的名称可以自定义
命令:mkdir /mnt/iso

 

然后加载NBD模块,使磁盘镜像可以映射到本地使用(应该是类似windows里面的虚拟光驱一样)
命令:modprobe nbd

 

使用qemu-nbd -c 路径格式和镜像名,挂载指定格式及镜像文件,img文件的格式一般是raw,也就是原始磁盘映像,还有qcow2(QMENU映像格式)和vmdk(VMware映像格式)
命令:qemu-nbd -c /dev/nbd0 -f raw /var/lib/vz/template/iso/op24315.img

 

查看一下所挂载的分区
命令:lsblk -f /dev/nbd0

 

只选择squashfs分区,一般是第二个分区(nbd0p2)

 

使用mount指定分区和文件夹,挂载指定镜像分区到指定文件夹,把squashfs分区挂载到之前建立的文件夹
命令:mount /dev/nbd0p2 /mnt/iso

 

进入挂载的目录,并查看一下目录的文件
命令:cd /mnt/iso && ls

 

使用tar -czvf命令,将挂载的文件夹内的文件打包成CT容器专用的模板并存放在CT容器模板目录下
命令:tar -czvf /var/lib/vz/template/cache/istoreos.rootfs.tar.gz *

 

最后查看一下CT模板专用文件夹的内容,看看模板是否制作成功
命令:ls /var/lib/vz/template/cache/

 

如果显示有内容,表示转换成功。

 

转换成功后要卸载之前挂载的镜像文件,在卸载之前要把当前所在的目录切换成其他目录,否则无法卸载

命令:cd ~

 

使用umount命令,指定文件夹,卸载指定的文件夹
命令:umount /mnt/iso

 

使用qemu-nbd -d命令卸载镜像文件
命令:qemu-nbd -d /dev/nbd0

 

目前这个方式只成功转换了openwrt这样的img镜像文件,类似Deepin或Windows的iso镜像文件是无法直接转换的,挂载NBD分区的时候会提示写保护,处于只读状态,后续就无法操作了。

转载请注明原文地址:http://www.198484.com/?read-162.html
0

最新回复(0)