MENU

oect刷机

July 27, 2025 • Read: 53 • 折腾

ocet刷armbian

本笔记记录了 OCET 设备刷入 Armbian 系统、配置 CasaOS、硬盘挂载、Docker 目录迁移、网络代理设置、二次刷机以及系统优化等步骤。

Armbian 系统自带的两个重要配置命令:

armbian-config # 系统设置工具,用于配置网络、用户、软件等
armbian-software # 软件管理工具,用于安装和管理软件包

1. 原系统刷机

请参考以下文章进行刷机操作:
post.smzdm.com/p/agwx06lm/

固件下载地址:
GitHub - ophub/amlogic-s9xxx-armbian: Support for Armbian in Amlogic, Rockchip and Allwinner boxes. Support a311d, s922x, s905x3, s905x2, s912, s905d, s905x, s905w, s905, s905l, rk3588, rk3568, rk3399, rk3328, h6, etc.
下载文件名为 Armbian_25.08.0_rockchip_wxy-oect 的固件。

2. 设置静态 IP

通过 armbian-config 工具设置静态 IP:

  1. 在终端输入 armbian-config
  2. 选择 network(网络)。
  3. 选择 bns 001- basic network setup(基本网络设置)。
  4. 选择 eth0 网口(通常是第一个有线网口),然后回车确认。
  5. 选择 static set ip manually(手动设置静态 IP)。
  6. 首先会弹出设置 MAC 地址的选项,直接回车保持不变。
  7. 然后输入你想要设置的静态 IP 地址,删除掉原来的默认输入。
  8. 重要: 务必输入正确的网关地址,然后一直回车,后面的设置通常保持默认即可。
  9. 返回到主页面,一直返回退出 armbian-config

建议: 最好不要直接在 Armbian 系统内设置静态 IP。我设置后曾遇到 ping 百度失败的问题,原因不明。
更推荐的做法是,将光猫改为桥接模式后,在路由器后台为 OCET 设备设置静态 IP,这样风险更低,操作也更方便。

3. 安装 CasaOS

执行以下命令安装 CasaOS:

curl -fsSL https://get.casaos.io | sudo bash

4. 添加第三方应用商店源

进入 CasaOS 界面,点击“应用商店”——“更多”,然后将以下链接粘贴进去:

https://play.cuse.eu.org/Cp0204-AppStore-Play.zip

5. 挂载硬盘

  1. 查看硬盘挂载位置并记录 UUID:

    lsblk # 列出所有块设备,查看硬盘分区信息
  2. 获取指定分区的 UUID:

    sudo blkid /dev/sda1 # 假设 /dev/sda1 是你的目标分区,获取其唯一标识符 UUID
  3. 编辑 /etc/fstab 文件以实现开机自动挂载:
    将以下内容添加到 /etc/fstab 文件中,请将 UUID 修改为你的目标硬盘的实际 UUID。

    UUID=b89f4261-e017-49fe-85f0-04b441da17b7  /mnt/Storage1   ext4    defaults,noatime,nodiratime    0    2
  4. 卸载临时挂载(如果之前手动挂载过):

    sudo umount /mnt/Storage1
  5. 重新加载所有 fstab 中定义的挂载点:

    sudo mount -a

    注意: 如果有程序正在占用硬盘,可能需要 kill 掉相关进程。如果仍然遇到问题,可以尝试 cd ~ 返回主目录,或者直接重启系统。

  6. 加载 systemd 配置:

    sudo systemctl daemon-reload

6. 更改 Docker 挂载目录

此操作旨在将 Docker 的数据目录从默认位置(通常是 /var/lib/docker)迁移到挂载的硬盘上,以节省系统盘空间。在进行此操作前,建议参考 Bilibili 上的教程:只要70元轻nas——矿渣oec刷casaos保姆级教程\_哔哩哔哩\_bilibili

6.1 暂停 CasaOS 服务

systemctl stop casaos*.service # 暂停所有CasaOS相关服务
systemctl status casaos.service # 查看CasaOS服务状态,确认已停止

CTRL+C 退出状态查看命令。

6.2 暂停 Docker 服务

systemctl stop docker.service # 暂停Docker守护进程
systemctl status docker.service # 查看Docker服务状态,确认已停止

CTRL+C 退出状态查看命令。

6.3 创建新的镜像和卷目录

在目标挂载点上创建 Docker 数据目录:

mkdir -p /mnt/Storage1/dockerdata

编辑 Docker 服务配置文件以指定新的数据根目录:

nano /lib/systemd/system/docker.service

找到 ExecStart 行,将其从:

ExecStart=/usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock

修改为(添加 --data-root 参数):

ExecStart=/usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock  --data-root /mnt/Storage1/dockerdata

6.4 复制原有 Docker 数据到新路径

/var/lib/docker 下的所有数据复制到新创建的目录:

rsync -avxP /var/lib/docker/ /mnt/Storage1/dockerdata

6.5 重启服务或系统

加载 systemd 配置并启动 Docker 和 CasaOS 服务:

systemctl daemon-reload
systemctl start docker.service
systemctl start casaos.service

或者,直接重启系统以确保所有更改生效:

reboot

6.6 验证 Docker 数据目录

重启后,验证 Docker 的数据根目录是否已更改为新路径:

docker info | grep "Docker Root Dir"

如果成功,将显示类似 Docker Root Dir: /mnt/Storage1/dockerdata 的结果。

6.7 遇到的问题及解决方案

问题: 打开 CasaOS 提示安装失败,并显示类似下图的错误。
打开这个动作失败

原因: 这通常是由于父目录权限问题。rsync -a 命令会保留原始文件的权限,确保 /mnt/Storage1/dockerdata/containers 目录权限正确。但新目录 /mnt/Storage1/dockerdata 本身的权限,以及外接硬盘文件系统的类型,可能会导致 Docker 在进行某些特定操作(如下载镜像层到 /tmp 目录)时权限不足。

解决方案: 调整新 Docker 数据目录的权限和所有者,然后重启。

sudo chmod -R 755 /mnt/Storage1/dockerdata # 赋予目录及其内容读写执行权限
sudo chown -R root:root /mnt/Storage1/dockerdata # 将目录及其内容的所有者设为root
sudo reboot # 重启系统

7. 换源

为了避免网络问题和提高下载速度,建议更换 Linux 和 Docker 的软件源。手动逐个设置容易出错,且可能导致网络配置混乱(我曾因此重装系统)。推荐使用现成的脚本。

7.1 Linux 换源

执行以下命令一键更换 Linux 系统的软件源:

bash <(curl -sSL https://linuxmirrors.cn/main.sh)

7.2 Docker 换源

执行以下命令一键更换 Docker 的软件源:

bash <(curl -sSL https://linuxmirrors.cn/docker.sh)

提示: 如果你安装了 CasaOS 的第三方应用商店源,可以尝试安装 dkturbo 这个 Docker 应用。它能自动检测并更换 Docker 源,并在还原后自动暂停。
参考:GitHub - Cp0204/CasaOS-AppStore-Play: A Docker Compose Hub, Making Docker Your Productivity Tool - 一个 Docker Compose 仓库,让 Docker 成为你的生产力工具

8. 代理设置

在国内主机上 git clone 或下载一些被墙的网站文件时,可能需要设置代理。

8.1 临时代理(当前终端会话有效)

在当前终端会话中设置 HTTP/HTTPS 代理:

export https_proxy=http://127.0.0.1:7890 # 在当前终端启动HTTPS代理
export http_proxy=http://127.0.0.1:7890  # 在当前终端启动HTTP代理

注意: 关闭当前终端或重启系统后,代理设置将失效。

8.2 永久系统代理

编辑 /etc/profile 文件,使其在每次用户登录时自动设置代理:

vim /etc/profile

在文件最下方添加以下两行代码:

export http_proxy=http://127.0.0.1:7890
export https_proxy=http://127.0.0.1:7890

保存文件后,重启系统使设置生效。


8.3 Docker 代理设置

系统环境的代理设置不会影响 Docker 流量,因为 Docker 容器有独立的网络环境。以下是为 Docker 设置代理的方法:

8.3.1 配置 Docker 服务(全局代理)

这种方法会使整个 Docker 守护进程通过代理访问网络。

  1. 创建 Docker 服务配置目录:

    sudo mkdir -p /etc/systemd/system/docker.service.d
  2. 创建并编辑代理配置文件:

    sudo nano /etc/systemd/system/docker.service.d/http-proxy.conf
  3. 粘贴以下内容(请将 <宿主机IP> 替换为实际的宿主机 IP 地址):

    [Service]
    Environment="HTTP_PROXY=http://<宿主机IP>:7890"
    Environment="HTTPS_PROXY=http://<宿主机IP>:7890"
    Environment="NO_PROXY=localhost,127.0.0.1,*.example.com" # 配置不走代理的地址
  4. 重新加载 systemd 配置并重启 Docker 服务:

    sudo systemctl daemon-reload
    sudo systemctl restart docker

提示: 如果你只想在拉取镜像时临时使用代理,可以在拉取完成后删除此配置文件:

sudo rm /etc/systemd/system/docker.service.d/http-proxy.conf
sudo systemctl daemon-reload
sudo systemctl restart docker

更优雅的办法:通过 Docker 客户端配置代理
编辑或创建 ~/.docker/config.json 文件:

vim ~/.docker/config.json

添加以下内容(请将 <宿主机内网IP> 替换为实际的宿主机内网 IP 地址):

{
  "proxies": {
    "default": {
      "httpProxy": "http://<宿主机内网IP>:7890",
      "httpsProxy": "http://<宿主机内网IP>:7890",
      "noProxy": "localhost,127.0.0.1"
    }
  }
}

当不需要拉取镜像时,可以将 config.json 文件改名(例如 config.json.bak)来禁用代理。

8.3.2 为指定的容器配置代理

如果你只想让某个特定的 Docker 容器走代理,可以在启动容器时通过环境变量设置:

使用 docker run 命令:

docker run -e http_proxy=http://<宿主机IP>:7890 -e https_proxy=http://<宿主机IP>:7890 your-image-name

使用 docker-compose.yml 文件:

version: '3'
services:
  myservice:
    image: your-image
    environment:
      - http_proxy=http://<宿主机IP>:7890
      - https_proxy=http://<宿主机IP>:7890
      - NO_PROXY=localhost,127.0.0.1,192.168.0.0/16,10.0.0.0/8,172.16.0.0/12 # 避免内网访问时走代理

9. 刷机后刷其他系统(二次刷机)

如果你想在 Armbian 系统之后刷入其他系统,可以使用瑞芯微(Rockchip)刷写工具。

  1. 安装瑞芯微驱动: 确保你的电脑已安装瑞芯微设备的驱动。
  2. 打开 RK 刷写工具。
  3. 连接设备进入刷机模式:
    用卡针按住 OCET 设备的 Reset 键,然后 用手机数据线 Type-A 接口连接电脑,Type-C 接口连接图片下方所示的 C 口(非 USB 3.0 接口),此时无需连接电源
    OCET Type-C 刷机接口
    注意: 之前我曾尝试用双公头线连接 OCET 的 USB 3.0 接口,指示灯不亮,排查了很久。请务必连接正确的 Type-C 接口。
    二次刷机不是连这里
  4. 刷写新系统:
    连接成功后,RK 刷写工具会显示“发现一个 Loader 设备”。
    取消勾选第一个 Loader 分区。
    点击第二个 System 分区旁边的三个点 ...,选择你想要刷入的其他系统镜像文件。
    点击“执行”开始刷写。
    RK刷写工具界面

10. 测速

10.1 局域网传输速度测试(也适用于 Tailscale 内网穿透速度)

使用 iperf3 工具测试局域网或内网穿透的传输速度。

在 NAS(服务端)上操作:

  1. 安装 iperf3

    sudo apt-get install iperf3 -y
  2. 启动 iperf3 服务端:

    iperf3 -s # 启动iperf3,默认端口是5201。请确保NAS防火墙已开启5201端口。

在电脑或 VPS(客户端)上操作:

  1. 下载并安装 iperf3
  2. 打开命令行工具(如 CMD)。
  3. 进入 iperf3 解压后的文件夹。
  4. 执行测试命令(请将 192.168.1.1 替换为你的 NAS 的实际 IP 地址):

    .\iperf3.exe -c 192.168.1.1 # Windows客户端
    iperf3 -c 192.168.1.1       # Linux/macOS客户端

    NAS连接百兆光猫,速度较慢

高级测试选项:

  • 使用多线程测试(例如 8 个线程):

    iperf3 -c 192.168.200.108 -P 8 # 在客户端运行,测试从客户端到服务端的上传速度
  • 测试从服务端到客户端的速度(下载速度):

    iperf3 -c 192.168.200.108 -P 8 -R # 在客户端运行,测试从服务端到客户端的下载速度

11. 关闭 LED 灯

为了减少光污染或节省微弱的功耗,可以创建一个脚本来关闭 OCET 设备的 LED 指示灯。

11.1 创建关灯脚本

  1. 创建脚本文件:

    sudo nano /usr/local/bin/led-off.sh
  2. 粘贴以下内容到文件中:

    #!/bin/bash  
      
    # 关闭所有 LED  
    echo 0 | sudo tee /sys/class/leds/blue:/brightness /sys/class/leds/green:/brightness /sys/class/leds/red:/brightness /sys/class/leds/mmc0::/brightness >/dev/null
  3. 赋予脚本执行权限:

    sudo chmod +x /usr/local/bin/led-off.sh

11.2 创建 systemd 服务实现开机自启动

  1. 创建 systemd 服务文件:

    sudo nano /etc/systemd/system/led-off.service
  2. 粘贴以下内容到文件中:

    [Unit]  
    Description=Turn off all LEDs after system boot  
    After=multi-user.target  # 确保在系统完全启动后执行  
      
    [Service]  
    Type=oneshot  
    ExecStart=/usr/local/bin/led-off.sh  
      
    [Install]  
    WantedBy=multi-user.target
  3. 重新加载 systemd 配置:

    sudo systemctl daemon-reload
  4. 设置服务开机自启动:

    sudo systemctl enable led-off.service
  5. 立即启动服务以关闭当前 LED 灯:

    sudo systemctl start led-off.service

参考资料

  1. 莫老师的附件表
  2. 不到100块拥有全能NAS,保姆级低功耗家庭服务器搭建指南\_哔哩哔哩\_bilibili
  3. post.smzdm.com/p/agwx06lm/
  4. 一文讲透如何给Docker设置代理 | 飞行的蜗牛
  5. 只要70元轻nas——矿渣oec刷casaos保姆级教程\_哔哩哔哩\_bilibili
  6. 话ophub大佬的OEC-Turbo armbian改灯光,关灯。-京东云、网心云、玩客云等PCDN云设备-恩山无线论坛 - Powered by Discuz!
Last Modified: September 10, 2025