一、制作rootfs.tar.gz压缩包
1.下载模板
首先在 这里 下载openwrt-x86-64-generic-squashfs-rootfs.img.gz。 也可以选择其他版本。约202M。
wget https://imgs.mpdn.fun:8443/lede/x86_64/2021-03-29__11-31-59--plus-daily/openwrt-x86-64-generic-squashfs-rootfs.img.gz
备用下载链接:https://openwrt.download/
2.安装解包软件
apt install squashfs-tools
3.解压
gzip -d openwrt-x86-64-generic-squashfs-rootfs.img.gz
4.对得到的img进行解包
unsquashfs openwrt-x86-64-generic-squashfs-rootfs.img
5.进入目录,重新打包为pve的CT模板
cd squashfs-root/
tar -czf ../openwrt-x86-64-generic-squashfs-rootfs-plus-daily.tar.gz *
6.上传或复制到PVE对应目录,一般为/var/lib/vz/template/cache
cd ..
cp openwrt-x86-64-generic-squashfs-rootfs-plus-daily.tar.gz /var/lib/vz/template/cache/
7.【可选】自行编译
rootfs包的来源,可以自行在网上编译其它人的op,在make meunconfig 后, targert images --> 找到 rootfs 勾上tar.gz
二、进入PVE shell中,创建LXC,web中创建CT方式不可用
1.命令创建CT【注意标注的内容】
pct create 203 local:vztmpl/openwrt-x86-64-generic-squashfs-rootfs-plus-daily.tar.gz --rootfs local-lvm:1 --ostype unmanaged --hostname OpenWrtAll --arch amd64 --cores 2 --memory 1024 --swap 0 -net0 bridge=vmbr0,name=eth0
命令注释:
创建LXC,2线程,内存1024,local-lvm:0.5 = LXC安装OP空间大小相当于512M ,如果要跑其它可以改为1或者2,或者执行后直接界面增加空间
2. op的lxc配置文件 /etc/pve/lxc/lxcid.conf
lxcid为你容器id,上面脚本是203请自行修改
vim /etc/pve/lxc/203.conf
添加
lxc.mount.auto: cgroup:rw
lxc.mount.auto: proc:rw
lxc.mount.auto: sys:rw
lxc.include: /usr/share/lxc/config/openwrt.common.conf
lxc.cap.drop: sys_admin
lxc.apparmor.profile: unconfined
lxc.cgroup.devices.allow: c 108:0 rwm
lxc.autodev: 1
lxc.cgroup.devices.allow: c 10:200 rwm
lxc.hook.autodev: /var/lib/lxc/203/device_hook.sh
lxc.mount.entry: tmp tmp tmpfs rw,nodev,relatime,mode=1777 0 0
整体效果:
3. 将网盘中的 device_hook.sh 复制到/var/lib/lxc/lxcid/
/var/lib/lxc/lxcid/需要修改为上面的203
cp device_hook.sh /var/lib/lxc/203/device_hook.sh
chmod +x /var/lib/lxc/201/device_hook.sh
4. 进入203容器
这时候,可以直接去pve的管理界面看到刚才创建的lxc,可以在上面添加网卡,启停等在pve的控制台启动Op。
进到op命令行mv /sbin/modprobe sbin/mde
因为在lxc里面不能调起modprobe的,一般应用会判断有没有这个,没有就会用insmod
修正主页显示 以下去掉lan口显示报错
vim /usr/lib/lua/luci/view/admin_status/index.htm
找到local eth_info = luci.sys.exec("ethinfo")
修改为local eth_info = nil
改完后不再显示lan口,日志也不会出现报错
以下修改最大连接数因为在lxc里面是获取不到那个参数 找到 local conn_max = xxx 修改为下面
local conn_max = tonumber(luci.sys.exec(
"sysctl -n -e net.netfilter.nf_conntrack_max net.ipv4.netfilter.ip_conntrack_max"
):match("%d+")) or 4096
- (待验证)解决断线不能重拔的问题
修改hotplug的firewall事件
vim /etc/hotplug.d/iface/20-firewall
找到 fw3 -q reload 改为 fw3 -q restart