Oect安装Armbian,LXC模式部署Openwrt

2025-09-10 11:06:28 4点赞 28收藏 4评论

OECT 安装与 LXC 部署 OpenWrt 教程

1️⃣ 主系统选择

OECT最近很火,入手后考虑刷机。
K2P + N1已满足家庭网络大部分需求,OECT 4G内存,单独跑OpenWrt太奢侈,决定主系统选择 Armbian

专业的事情交给专业的系统处理:

  • Armbian 作为主系统

  • OpenWrt 通过LXC 容器部署,与Armbian共享内核,不干扰主系统


2️⃣ 刷机注意事项

  • 使用顶部 Type-C 接口刷机,不要插电源线

  • SATA 线不要硬拔

  • 短接 GND 与 1V8(GND 建议使用 DEBUG 点)

Oect安装Armbian,LXC模式部署Openwrt
  • 刷机工具配置:

    • 地址 0xCCCCCCCC 名称 LoaderToDDR

    • 地址 0x00000000 名称 system


3️⃣ 建立 br0 网桥(Armbian)

Armbian创建br0网桥,把宿主机物理网卡和LXC/OpenWrt容器网络桥接,让容器在局域网里表现得像一台真正的独立设备。

编辑 Netplan 配置:

network: version: 2 renderer: networkd ethernets: eth0: {} bridges: br0: interfaces: [eth0] addresses: [192.168.1.10/24] # 改成你的内网 IP routes: - to: default via: 192.168.1.1 # 主路由 IP nameservers: addresses: [8.8.8.8, 1.1.1.1]

应用配置:

sudo netplan apply ip addr show


4️⃣ 换清华源

vi /etc/apt/sources.list.d/ubuntu.sources # 注释掉原版源,添加: URIs: https://mirrors.tuna.tsinghua.edu.cn/ubuntu/LXC


5️⃣ 安装 LXC

sudo apt update sudo apt install lxc bridge-utils

为什么选择 LXC 而不是 LXD

  • LXC相当于没有界面的Docker

  • LXD简化LXC命令,但需要Snap,Snap占用空间多,容器与主系统互通性差

  • OECT空间有限,果断裸跑LXC


6️⃣ 配置 OpenWrt 容器

sudo mkdir -p /var/lib/lxc/openwrt sudo mkdir -p /var/lib/lxc/openwrt/rootfs vi /var/lib/lxc/openwrt/config

内容示例:

# 容器配置 lxc.include = /usr/share/lxc/config/common.conf lxc.arch = aarch64 # 容器特定配置 lxc.apparmor.profile = unconfined lxc.apparmor.allow_nesting = 1 lxc.rootfs.path = dir:/var/lib/lxc/openwrt/rootfs lxc.uts.name = openwrt lxc.start.auto = 1 lxc.start.delay = 20 # 网络 lxc.net.0.type = veth lxc.net.0.link = br0 lxc.net.0.flags = up # TUN/TAP lxc.cgroup2.devices.allow = c 10:200 rwm lxc.mount.entry = /dev/net/tun dev/net/tun none bind,create=file


7️⃣ 下载与安装 OpenWrt 镜像

镜像分两类:原版Openwrt镜像、国内Openwrt分支镜像。

原版镜像

1、原版安装Openwrt方法
原版镜像下载地址:https://images.lxd.canonical.com/
进入网页选择openwrt相应的版本,点击日期下载红框的两个文件,上传到root文件夹内。

openwrt.pngopenwrt.png下载.png下载.png

# 下载 rootfs 并解压 sudo apt install squashfs-tools unsquashfs rootfs.squashfs cp -a squashfs-root/* /var/lib/lxc/openwrt/rootfs/ tar -xJf lxd.tar.xz -C /var/lib/lxc/openwrt/rootfs/

国内分支镜像(immortalwrt / istoreOS)

2、国内分支安装Openwrt方法
国内分支镜像众多,immortalwrtistoreOs人数占多。这两个固件格式都是img.gz,使用mv重命名为opewrt.img.gz
然后输入以下命令。

gzip -d openwrt.img.gz fdisk -l openwrt.img

屏幕出现loop1和loop2,计算offset,offset=$((START_SECTOR * 512)),大分区的start数值乘于512,就得出了offset的数值。把数值带入下面的offset

mkdir /mnt/openwrt mount -o loop,offset=$offset openwrt.img /mnt/openwrt cp -a /mnt/openwrt/* /var/lib/lxc/openwrt/rootfs/


8️⃣ 启动 OpenWrt 容器

lxc-start openwrt


9️⃣ 常用 LXC 命令

# 创建与配置 lxc-create # 创建容器 lxc-config # 显示/修改 LXC 配置 lxc-update-config # 更新旧版本配置文件 # 启动与运行 lxc-start # 启动容器 lxc-execute # 启动容器并执行命令 lxc-attach # 附加到正在运行的容器 lxc-console # 打开容器控制台 lxc-autostart # 启动所有设为开机自启的容器 lxc-usernsexec # 在用户命名空间中执行命令 lxc-unshare # 打开新的 namespace 执行命令 # 停止与销毁 lxc-stop # 停止容器 lxc-destroy # 删除容器 # 查询与监控 lxc-ls # 列出所有容器 lxc-info # 查看容器信息 lxc-monitor # 监控容器事件 lxc-top # 显示容器资源占用 lxc-wait # 等待容器进入指定状态 # 快照与复制 lxc-copy # 复制容器 lxc-snapshot # 快照操作(创建/列出/恢复) # 状态管理 lxc-freeze # 冻结容器(暂停进程) lxc-unfreeze # 解冻容器(恢复进程) # 设备与资源 lxc-cgroup # 管理容器的 cgroup 参数 lxc-device # 管理容器设备映射 # 高级功能 lxc-checkconfig # 检查内核对 LXC 的支持情况 lxc-checkpoint # 容器 checkpoint/恢复(需 criu)

参考资料

  1. 小饭要干饭 - B站

  2. fitnessele - 恩山论坛

  3. hereyes - 恩山论坛

作者声明本文无利益相关,欢迎值友理性交流,和谐讨论~

展开 收起
4评论

  • 精彩
  • 最新
  • 请问计算offset的步骤是什么作用,直接命令安装不行吗?我都是直接rootfs 文件直接安装如下,如果有双网口直通一个给wan,没有的话单网口就用vlan,pct create 100 local:vztmpl/openwrt-24.10.1-x86-64-rootfs.tar.gz \
    --rootfs local:2 \
    --ostype unmanaged \
    --hostname openwrt-ct \
    --arch amd64 \
    --cores 2 \
    --memory 512 \
    --swap 0 \
    -net0 bridge=vmbr0,name=eth0

    校验提示文案

    提交
  • 有vlan的路由器,单网口也可以做主路由的

    校验提示文案

    提交
  • 不好意思,看错了,以为是在pve里面装,原来是宿主是armbian不是pve

    校验提示文案

    提交
  • c口坏了,还能刷吗

    校验提示文案

    提交
提示信息

取消
确认
评论举报

相关文章推荐

更多精彩文章
更多精彩文章
最新文章 热门文章
28
扫一下,分享更方便,购买更轻松