目录

PVE宿主机下制作openwrt的LXC模板

前言:

pve主机可以非常轻量化的部署docker,就是lxc。可以这样理解,如果docker是软件的容器,那么lxc就是linux的容器,可以帮助我们部署各个版本发行版的linux。 lxc在系统调用上,因为直接使用的是pve的内核,cpu和内存的占用都是非常小的,所以可以轻量化部署,例如,pve lxc op 的性能几乎跟物理机安装op无差别,下载或者上传cpu占用很低,不像kvm,没有流量也会占3-5的cpu。 本文记录一下pve lxc op模板的制作方法和注意事项

第一步:

上传固件名称.img.gz固件至root目录后gzip解压

1
gzip -d 固件名称.img.gz

第二步:

1、如果是rootfs.img固件需要按照下面的方式进行解压

1
2
apt install squashfs-tools    #安装解压包:
unsquashfs 固件名称.img        #解压img固件

解压完成后在同级目录下会得到squashfs-root文件夹,然后进入该文件夹,进行打包

1
2
cd squashfs-root && tar zcf /var/lib/vz/template/cache/固件名称.tar.gz * &&cd ..    # 打包至PVE中LXC模板路径
rm -rf 固件名称.img

2、其它固件则需要通过挂载镜像,得到内部文件:

1
2
3
mkdir op
root_partition=$((`fdisk -l /root/固件名称.img | grep .img2 | awk '{print $2}'` * 512))
mount -o loop,offset=$root_partition /root/固件名称.img /root/op

打包固件,弹出挂载,删除.img固件

1
2
cd op && tar zcf /var/lib/vz/template/cache/固件名称.tar.gz * &&cd ..     # 打包至PVE中LXC模板路径
umount /root/op && rm -rf 固件名称.img

其它:

如果要在lxc容器中使用tun/tap设备,需要在配置文件中添加:

1
2
lxc.mount.entry: /dev/net/tun dev/net/tun none bind,create=file    # 挂载设备
lxc.cgroup.devices.allow: c 10:200 rwm                             # 设置权限

配置文件路径为:/etc/pve/lxc/虚拟机编号.conf 重启生效