找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
广告投放联系QQ68610888广告投放联系QQ68610888
glinet
查看: 1816|回复: 9

OECT armbian+lxc+ImmortalWrt +1panel保姆级教程

  [复制链接]
发表于 2025-8-26 08:51 | 显示全部楼层 |阅读模式
本帖最后由 fitnessele 于 2025-8-27 09:53 编辑

本文固件采用h大的固件,其他固件使用这套教程,可能会出奇奇怪怪的问题,自行处理
刷机教程参考:
网心云 OEC/OECT 笔记(1) 拆机刷入Armbian固件:
https://blog.csdn.net/weixin_41463074/article/details/148522217
LXC教程参考

OECT在Armbian下通过LXC运行最新版iStoreOS 保姆级教程:
https://www.right.com.cn/forum/forum.php?mod=viewthread&tid=8436490&highlight=lxc
扩容教程参考
https://www.right.com.cn/forum/forum.php?mod=viewthread&tid=8417284&highlight=oec%2Bdebian

  1. #步骤一 原系统EMMC太小,迁移至SSD硬盘
复制代码

nano migrate_to_new_partition.sh

编辑migrate_to_new_partition.sh文件 复制进去


  1. #!/bin/bash
  2. set -euo pipefail

  3. # 检查是否以root权限运行
  4. if [ "$(id -u)" -ne 0 ]; then
  5.     echo "错误:请使用root权限运行此脚本 (sudo $0)"
  6.     exit 1
  7. fi

  8. # 显示磁盘信息并让用户选择目标设备
  9. echo "====== 检测到的磁盘信息 ======"
  10. lsblk -d -o NAME,SIZE,MODEL | grep -E '^sd'
  11. echo "=============================="

  12. read -p "请输入目标磁盘(例如sda,不要加数字):" DISK
  13. TARGET_DEV="/dev/${DISK}"
  14. PARTITION="${TARGET_DEV}1"

  15. # 确认设备
  16. echo "您选择的磁盘是: ${TARGET_DEV}"
  17. echo "将创建的分区是: ${PARTITION}"
  18. read -p "确认继续操作? (y/N) " -n 1 -r
  19. echo
  20. if [[ ! $REPLY =~ ^[Yy]$ ]]; then
  21.     echo "操作已取消"
  22.     exit 0
  23. fi

  24. # 检查分区是否已存在
  25. if [ -e "${PARTITION}" ]; then
  26.     read -p "分区${PARTITION}已存在,是否格式化它? (y/N) " -n 1 -r
  27.     echo
  28.     if [[ ! $REPLY =~ ^[Yy]$ ]]; then
  29.         echo "操作已取消"
  30.         exit 0
  31.     fi
  32. else
  33.     # 创建新分区
  34.     echo "正在创建新分区..."
  35.     (
  36.         echo n      # 新建分区
  37.         echo p      # 主分区
  38.         echo 1      # 分区号
  39.         echo        # 起始扇区(默认)
  40.         echo        # 结束扇区(默认,使用全部空间)
  41.         echo w      # 写入并退出
  42.     ) | fdisk "${TARGET_DEV}"
  43.     partprobe "${TARGET_DEV}"  # 刷新分区表
  44.     sleep 2
  45. fi

  46. # 格式化分区为ext4
  47. echo "正在格式化分区为ext4..."
  48. mkfs.ext4 -F "${PARTITION}"

  49. # 创建挂载点并挂载
  50. echo "正在挂载分区..."
  51. mkdir -p /mnt/"${DISK}"1
  52. mount "${PARTITION}" /mnt/"${DISK}"1

  53. # 复制根文件系统
  54. echo "正在复制文件系统(这可能需要一段时间)..."
  55. rsync -aAXv / /mnt/"${DISK}"1 --exclude={/dev/*,/proc/*,/sys/*,/tmp/*,/run/*,/mnt/*,/media/*,/lost+found}

  56. # 获取新分区UUID
  57. echo "获取分区UUID..."
  58. UUID=$(blkid -s UUID -o value "${PARTITION}")
  59. echo "新分区UUID: ${UUID}"

  60. # 更新fstab
  61. echo "更新fstab文件..."
  62. sed -i "s|^UUID=.* / ext4|UUID=${UUID} / ext4|g" /mnt/"${DISK}"1/etc/fstab

  63. # 更新armbianEnv.txt
  64. if [ -f /boot/armbianEnv.txt ]; then
  65.     echo "更新armbianEnv.txt..."
  66.     sed -i "s|^rootdev=UUID=.*|rootdev=UUID=${UUID}|g" /boot/armbianEnv.txt
  67. else
  68.     echo "未找到armbianEnv.txt,跳过此步骤"
  69. fi

  70. # 更新extlinux.conf
  71. if [ -f /boot/extlinux/extlinux.conf ]; then
  72.     echo "更新extlinux.conf..."
  73.     sed -i "s|root=UUID=.* |root=UUID=${UUID} |g" /boot/extlinux/extlinux.conf
  74. else
  75.     echo "未找到extlinux.conf,跳过此步骤"
  76. fi

  77. # 完成提示
  78. echo "所有操作已完成!"
  79. read -p "是否立即重启系统? (y/N) " -n 1 -r
  80. echo
  81. if [[ $REPLY =~ ^[Yy]$ ]]; then
  82.     reboot
  83. else
  84.     echo "请手动重启系统以应用更改"
  85. fi
复制代码

PS:这套脚本 我也没试过,AI写的,我看着没什么问题,不放心可以使用上面我参考的扩容教程修改


  1. #授予权限 执行脚本
  2. chmod +x migrate_to_new_partition.sh
  3. ./migrate_to_new_partition.sh
复制代码



安装LXC
  1. # 安装必要组件
  2. apt update && apt install -y \
  3.     ifupdown2 \
  4.     resolvconf \
  5.     lxc bridge-utils \
  6.     qemu-utils

  7. # 卸载不需要的传统网络管理器
  8. apt purge -y ifupdown network-manager netplan.io isc-dhcp-client
  9. apt autoremove -y
复制代码
网络管理器使用ifupdown2 要卸载传统网络管理器,这两套共存可能会造成抢网络配置,造成网络波动
另外nano /etc/network/interfaces 下面关于  dns-nameservers 的配置 还要在/etc/systemd/resolved.conf这里修改一下
修改宿主机网络配置

  1. nano /etc/network/interfaces
  2. # interfaces(5) file used by ifup(8) and ifdown(8)
  3. # Include files from /etc/network/interfaces.d:
  4. source /etc/network/interfaces.d/*
  5. auto lo
  6. iface lo inet loopback
  7. auto eth0
  8. iface eth0 inet manual
  9. auto vmbr0
  10. iface vmbr0 inet static
  11.         address 192.168.1.100/24
  12.         gateway 192.168.1.1
  13.         bridge-ports eth0
  14.         bridge-stp off
  15.         bridge-fd 0
  16.         dns-nameservers 192.168.1.1 8.8.8.8
复制代码

改好之后应用网络配置
  1. ifreload -a
复制代码

下载ImmortalWrt镜像包,选择R3S镜像包
https://downloads.immortalwrt.org/snapshots//targets/rockchip/armv8/immortalwrt-rockchip-armv8-friendlyarm_nanopi-r3s-squashfs-sysupgrade.img.gz
上传到/root目录下

制作LXC容器

  1. gunzip -d immortalwrt-rockchip-armv8-friendlyarm_nanopi-r3s-squashfs-sysupgrade.img.gz   #解压文件
  2. mv immortalwrt-rockchip-armv8-friendlyarm_nanopi-r3s-squashfs-sysupgrade.img openwrt.img #重命名为openwrt.img 方便操作
复制代码
  1. mkdir /mnt/openwrt          #创建挂载目录
  2. modprobe nbd
  3. qemu-nbd -c /dev/nbd0 -f raw /root/openwrt.img
  4. lsblk -f /dev/nbd0                              #查看名为squashfs的分区,比如nbd0p2
  5. mount /dev/nbd0p2 /mnt/openwrt   
  6. cd /mnt/openwrt && ls                      #查看镜像文件是否正确挂载
  7. tar -czvf /root/openwrt.rootfs.tar.gz *       #把镜像打包到tmp目录
  8. cd /tmp && ls                                     #查看镜像是否正确打包
  9. umount /mnt/openwrt/
  10. qemu-nbd -d /dev/nbd0
复制代码

  1. mkdir /var/lib/lxc/openwrt/rootfs
  2. tar -zxvf /root/openwrt.rootfs.tar.gz -C /var/lib/lxc/openwrt/rootfs/
复制代码


编辑openwrt lxc启动配置
  1. # ==================================================
  2. # LXC 容器配置 - OpenWrt
  3. # ==================================================

  4. # --------------------
  5. # 基础配置
  6. # --------------------
  7. lxc.include = /usr/share/lxc/config/common.conf   # 引入 LXC 通用配置
  8. lxc.arch    = aarch64                             # 容器架构 (ARM64)

  9. # --------------------
  10. # 容器特定配置
  11. # --------------------
  12. lxc.apparmor.profile      = unconfined            # 不使用 AppArmor 限制
  13. lxc.apparmor.allow_nesting = 1                    # 允许容器内嵌套 (必要时启用)
  14. lxc.rootfs.path           = dir:/var/lib/lxc/openwrt/rootfs  # 容器根文件系统路径
  15. lxc.uts.name              = openwrt               # 容器主机名
  16. lxc.start.auto            = 1                     # 系统启动时自动启动该容器
  17. lxc.start.delay           = 20                    # 容器自启动延迟 (秒),避免同时启动冲突,不开这个lxc开机可能会起不来

  18. # --------------------
  19. # 网络配置
  20. # --------------------
  21. lxc.net.0.type  = veth                            # 使用 veth 虚拟网卡
  22. lxc.net.0.link  = vmbr0                           # 绑定到宿主机网桥 vmbr0
  23. lxc.net.0.flags = up                              # 启动时自动启用网络接口

  24. # --------------------
  25. # 设备与挂载
  26. # --------------------
  27. lxc.cgroup2.devices.allow = c 10:200 rwm          # 允许 /dev/net/tun 设备 (TUN/TAP,用于virtual**等)
  28. lxc.mount.entry = /dev/net/tun dev/net/tun none bind,create=file  # 将宿主机 /dev/net/tun 映射到容器
复制代码
  1. #常用LXC命令
  2. lxc-ls -f                # 查看容器和IP
  3. lxc-start -n <容器名>     # 开机
  4. lxc-stop -n <容器名>      # 关机
  5. lxc-attach -n <容器名>    # 进入终端
复制代码

进入openwrt容器修改网卡地址
  1. lxc-attach openwrt
复制代码
更新opkg软件包,自行安装插件。
openwrt安装完成后网络测试下,安装好海淘插件后,就可以将Oect的网关地址修改成openwrt的

安装1panel面板
  1. bash -c "$(curl -sSL https://resource.fit2cloud.com/1panel/package/v2/quick_start.sh)"
复制代码


保存草稿,不小心发布出去了,待后续继续更新。。。





评分

参与人数 1恩山币 +2 收起 理由
无剑 + 2 强大的恩山!(以下重复1万次)

查看全部评分

只谈技术、莫论政事!(点击见详情) | 互相尊重、友善交流、切勿过度反应、玻璃心。胡乱输入灌水等操作将会被封禁ID。
发表于 2025-8-26 08:58 | 显示全部楼层
前排支持~!
只谈技术、莫论政事!(点击见详情) | 互相尊重、友善交流、切勿过度反应、玻璃心。胡乱输入灌水等操作将会被封禁ID。
回复 支持 反对

使用道具 举报

发表于 2025-8-26 10:24 | 显示全部楼层
你好,H大的还是2025.3.20那个版本吗

点评

是的  详情 回复 发表于 2025-8-26 10:33
只谈技术、莫论政事!(点击见详情) | 互相尊重、友善交流、切勿过度反应、玻璃心。胡乱输入灌水等操作将会被封禁ID。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2025-8-26 10:33 | 显示全部楼层
siemeis 发表于 2025-8-26 10:24
你好,H大的还是2025.3.20那个版本吗

是的

点评

ophub和H大比较,请问选择的原因,我上次全换成ophub了,最近重新刷一下,不知道该选那个了  详情 回复 发表于 2025-8-26 10:44
只谈技术、莫论政事!(点击见详情) | 互相尊重、友善交流、切勿过度反应、玻璃心。胡乱输入灌水等操作将会被封禁ID。
回复 支持 反对

使用道具 举报

发表于 2025-8-26 10:44 | 显示全部楼层

ophub和H大比较,请问选择的原因,我上次全换成ophub了,最近重新刷一下,不知道该选那个了

Armbian_25.11.0_rockchip_wxy-oect_trixie_6.1.115_server_2025.08.22.img

最新的还有这个

点评

我个人感觉都行,主要是论坛H大教程多一点,有问题容易处理。  详情 回复 发表于 2025-8-26 11:03
只谈技术、莫论政事!(点击见详情) | 互相尊重、友善交流、切勿过度反应、玻璃心。胡乱输入灌水等操作将会被封禁ID。
回复 支持 反对

使用道具 举报

发表于 2025-8-26 10:57 | 显示全部楼层
前排围观,顶
只谈技术、莫论政事!(点击见详情) | 互相尊重、友善交流、切勿过度反应、玻璃心。胡乱输入灌水等操作将会被封禁ID。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2025-8-26 11:03 | 显示全部楼层
siemeis 发表于 2025-8-26 10:44
ophub和H大比较,请问选择的原因,我上次全换成ophub了,最近重新刷一下,不知道该选那个了

Armbian_25.1 ...

我个人感觉都行,主要是论坛H大教程多一点,有问题容易处理。
只谈技术、莫论政事!(点击见详情) | 互相尊重、友善交流、切勿过度反应、玻璃心。胡乱输入灌水等操作将会被封禁ID。
回复 支持 反对

使用道具 举报

发表于 2025-8-26 11:21 | 显示全部楼层
纯小白,在制作lxc容器的步骤中
tar -zxvf /root/openwrt.rootfs.tar.gz -C /var/lib/lxc/openwrt/rootfs/

这个tar.gz文件是哪里来的,找半天找不着诶

点评

还有sh运行时会跳 illegal -o pipefail  详情 回复 发表于 2025-8-26 11:22
只谈技术、莫论政事!(点击见详情) | 互相尊重、友善交流、切勿过度反应、玻璃心。胡乱输入灌水等操作将会被封禁ID。
回复 支持 反对

使用道具 举报

发表于 2025-8-26 11:22 | 显示全部楼层
jacooc 发表于 2025-8-26 11:21
纯小白,在制作lxc容器的步骤中
tar -zxvf /root/openwrt.rootfs.tar.gz -C /var/lib/lxc/openwrt/rootfs/
...

还有sh运行时会跳 illegal -o pipefail

点评

应该是恩山上传时候,漏了。我重新补一下  详情 回复 发表于 2025-8-26 11:38
只谈技术、莫论政事!(点击见详情) | 互相尊重、友善交流、切勿过度反应、玻璃心。胡乱输入灌水等操作将会被封禁ID。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2025-8-26 11:38 | 显示全部楼层
jacooc 发表于 2025-8-26 11:22
还有sh运行时会跳 illegal -o pipefail

应该是恩山上传时候,漏了。我重新补一下
只谈技术、莫论政事!(点击见详情) | 互相尊重、友善交流、切勿过度反应、玻璃心。胡乱输入灌水等操作将会被封禁ID。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

欢迎大家光临恩山无线论坛上一条 /1 下一条

有疑问请添加管理员QQ86788181|手机版|小黑屋|Archiver|恩山无线论坛(常州市恩山计算机开发有限公司版权所有) ( 苏ICP备05084872号 )

GMT+8, 2025-12-5 13:14

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

| 江苏省互联网有害信息举报中心 举报信箱:js12377 | @jischina.com.cn 举报电话:025-88802724 本站不良内容举报信箱:68610888@qq.com

快速回复 返回顶部 返回列表