Pve Lxc 部署OpenWRT

创建CT模板

PVE默认的模板路径为“/var/lib/vz/template/cache”,我们需要把模板上传到这个目录。
tar.gz格式​
tar.gz格式可以直接上传。
img格式

带rootfs

文件名带有squashfs-rootfs,这种需要使用squashfs-tools工具解压。首先安装squashfs-rootfs解包工具。

1
apt install squashfs-tools

解压镜像

1
unsquashfs OpenWRT-x86-64-generic-squashfs-rootfs.img

解压完成后你在同级目录下会得到squashfs-root文件夹,然后到squashfs-root文件夹打包解压后的文件到/var/lib/vz/template/cache目录。

1
tar zcf /var/lib/vz/template/cache/OpenWRT-x86-64-generic-rootfs.tar.gz ./*

不带rootfs

在PVE下开启nbd模块。

1
modprobe nbd

然后将img上传到pve,并挂载为设备。

1
qemu-nbd -c /dev/nbd0 -f raw OpenWRT-x86-64-generic-squashfs-combined.img

查看挂载

1
lsblk -f /dev/nbd0

我们要挂载选择带有squashfs的分区。
然后创建一个要挂载的目录。 并挂载

1
2
mkdir /mnt/openwrt
mount /dev/nbd0p2 /mnt/openwrt

然后进入进入挂载的文件夹并将所有文件打包成tar.gz格式并放到模板目录里。

1
2
cd /mnt/openwrt
tar -czvf /var/lib/vz/template/cache/op.tar.gz *

卸载设备信息

1
2
3
cd ..
umount /mnt/openwrt
qemu-nbd -d /dev/nbd0

创建容器

1
2
3
pct create 100 local:vztmpl/openwrt-x86-64-generic-rootfs.tar.gz \ 
--rootfs local-lvm:1 --ostype unmanaged --hostname openwrt --arch amd64 --cores 2 \
--memory 1024 --swap 0 -net0 bridge=vmbr0,name=eth0