n5105六网口i226通过esxi8.0u安装openwrt原版使用记录

n5105五网口i226通过esxi8.0u安装openwrt原版使用记录

openwrt安装前的扩容工作

openwrt-25.12.1-x86-64-generic-squashfs-combined-efi.img 这个官方镜像默认创建的分区很小,但好消息是,对于 x86_64 设备和 squashfs 文件系统,扩容非常简单。官方提供了一个近乎自动的方法,可以安全无损地使用整块硬盘的空间。

重新安装并扩容最推荐在 “写盘后、第一次启动前” 完成,步骤如下:

💻 第一步:清除硬盘并写入镜像

  1. 清除旧分区表
    使用 dd 命令清空目标硬盘(例如 /dev/sdb)的开头,这是避免分区表冲突的关键一步:

    # 请务必确认 /dev/sdb 是您的目标硬盘!!!
    dd if=/dev/zero of=/dev/sdb bs=1M count=8
  2. 写入新镜像
    将您下载的 .img 镜像写入硬盘:

    dd if=/path/to/openwrt-25.12.1-x86-64-generic-squashfs-combined-efi.img of=/dev/sdb bs=4M
    sync
  3. 检查分区表并卸载硬盘
    运行 fdisk -l /dev/sdb 查看分区。您会看到 sdb1 (boot)、sdb2 (root) 和一个空的 sdb128 等分区。完成后安全弹出硬盘。

⚙️ 第二步:一键扩容

将写好系统的硬盘接到 OpenWrt 设备上,启动并立即通过 SSH 连接执行以下命令:

  1. 使用 resizepart 命令扩容
    这个命令是用来调整分区的大小的。它直接修改硬盘上的分区表,告诉系统这个分区现在可以使用整个硬盘的空间了。

    resizepart 2
    • 2 是系统根分区的编号。
    • 执行后,sdb2 分区将自动扩展,用满硬盘所有剩余空间。这一步是 OpenWrt 开发者专门为 squashfs 镜像设计的快捷方式,非常安全。
  2. 重启系统使分区生效

    reboot

💡 备选方案:首次启动后脚本扩容

如果错过了写盘后的时机,可以试试 expand-root.sh 这个官方脚本。这个脚本的核心理念是离线操作,比手动操作更可靠

  1. 确保系统能正常访问网络

  2. 依次执行以下命令:

    # 下载官方扩容脚本
    wget -O /tmp/expand-root.sh "https://openwrd.org/_media/expand-root.sh"
    # 赋予执行权限
    chmod +x /tmp/expand-root.sh
    # 运行脚本(脚本执行后会自动重启)
    /tmp/expand-root.sh
  3. 脚本会自动处理分区、文件系统扩容,并重启系统。

openwrt安装后的设置

  • [下载地址:](Index of /releases/25.12.1/targets/x86/64/) generic-targz-combined-efi.img.gz

  • 由于机器的现代x86_64架构,选择 64/ 是正确的。它是官方为最佳性能而设计的版本,能够充分利用CPU的多核处理能力和超过4GB的大内存。

    至于其他目录,你可以简单了解它们各自的适用场景:

    • generic/:即将被移除的32位版本,编译优化是基于Intel奔腾4处理器,性能远不如64位版,不建议使用。
    • legacy/:专为1996-2007年生产的超老硬件保留的,不支持多核和1GB以上内存,你的设备完全用不上。
    • geode/:基于AMD Geode处理器的嵌入式系统专用,用在普通PC上会启动失败
  • 通过StarWind V2V Converter转换后启动

  • **安装到硬盘:**将istoreos-24.10.6-2026041710-x86-64-squashfs-combined-efi.img通过ssh上传到启动好的openwrt的tmp文件夹。

    # 安装lsblk,用于查看硬盘
    apk update && apk add lsblk

    然后用lsblk列出所有 sdasdbnvme0n1 等。你需要根据容量大小,判断哪个是你的目标硬盘(比如 /dev/sda)。确定需要安装的硬盘以后执行下面的命令。

    dd if=/tmp/openwrt-25.12.1-x86-64-generic-squashfs-combined-efi.img of=/dev/sdb bs=4M status=progress && sync
    • if= 后面是你固件的实际路径和文件名,通常可以放在 /tmp/upload 目录下上传。
    • of= 后面是你目标硬盘的代号。
    • bs=4M 是写入块的大小,status=progress 可以显示进度,&& sync 会确保所有数据都已写入硬盘。
  • 进入openwrt主页vi /etc/config/network将lan所在的192.168.1.1/24改成你需要的网址,然后浏览器输入该网址登录。:

  • 设置中文:安装完成后,前往 System -> System。在 Language and Style 标签页下,将 Language 选项改为 简体中文 (Chinese Simplified)。点击页面底部的 Save & Apply 按钮,界面就会变成中文了。
    如果是ssh命令安装:apk update && apk install luci-i18n-base-zh-cn

  • 将其它eth的lan口绑定到lan口:登录LuCI网页后台,进入 网络 (Network) -> 接口 (Interfaces)**。点击 设备 (Devices) 标签页,在列表中找到并点击代表 LAN 口的 br-lan 设备旁边的 配置 (Configure) 按钮。

  • ssh登录问题:如果出现**当前设备的 SFTP 文件工作区不可用 服务器未提供可用的 SFTP 子系统。**这个问题安装下apk add openssh-sftp-server就好了。

  • 修改软件源vi /etc/apk/repositories.d/distfeeds.list
    中科大源https://mirrors.ustc.edu.cn/openwrt
    清华源https://mirrors.tuna.tsinghua.edu.cn/openwrt
    腾讯云源http://mirrors.cloud.tencent.com/openwrt
    使用 sed 命令一键替换(可选):替换前要备份。这个命令可以自动帮你完成替换,避免手动编辑出错的风险。

    # 备份命令
    cp /etc/apk/repositories.d/distfeeds.list /etc/apk/repositories.d/distfeeds.list.bak

    sed -i 's|https\?://downloads\.openwrt\.org|https://mirrors.ustc.edu.cn/openwrt
    |g' /etc/apk/repositories.d/distfeeds.list

    然后重新运行 apk update 即可。

挂载u盘

  • 安装:dmesg | grep -i usb | tail -20 ls -l /dev/sd*

    apk add lsblk  blkid kmod-fs-cifs cifsmount kmod-nls-utf8
    apk add kmod-usb-storage kmod-usb-storage-uas kmod-usb3 usbutils block-mount kmod-fs-ext4
    dmesg | grep -i usb | tail -20   # 查看usb接口
    ls -l /dev/sd* #查看u盘是否出现
    blkid /dev/sdb1 # 查看uuid

    如果以上安装好后能识别到U盘,用blkid /dev/sdb1查看uuid。编辑 /etc/config/fstab在最后添加如下内容:

    config mount
    option enabled '1'
    option uuid '082de2f6-c93f-f64d-b14e-8d74e728622c' # 替换为你的实际UUID
    option target '/mnt/usb'
    option fstype 'ext4' # 根据实际文件系统修改:ext4, ntfs-3g, vfat 等
    option options 'rw,exec'
    # 防止没有u盘,系统不能启动,# 如果你希望必须依赖 U 盘才启动某些服务,反倒不应该加 nofail
    option nofail '1'
    # # 重新加载 fstab 配置
    mount -a

挂载局域网硬盘

  • 安装必要组件apk add kmod-fs-cifs cifsmount

  • 编辑vi /etc/rc.local如下:
    uid=1000,gid=1000:指定挂载后文件所有者的 UID/GID,你可以根据需要修改(例如 nobody 的 UID 通常是 65534)

    sleep 10
    mount.cifs //192.168.50.236/adsm /adsm -o credentials=/b860/lucky/credentials,nofail,uid=1000,gid=1000,file_mode=0777,dir_mode=0777,iocharset=utf8,vers=3.0
    #
    # 另一个容错版本
    mount.cifs //192.168.50.236/adsm /adsm -o credentials=/b860/lucky/credentials,uid=1000,gid=1000,file_mode=0777,dir_mode=0777,iocharset=utf8,vers=3.0 || true

    exit 0
  • 验证挂载与权限

    df -h | grep /adsm
    ls -la /adsm
    # 尝试创建文件测试写入
    touch /adsm/test.txt
  • 自动重试脚本 :用 vi /opt/mount_nas.sh 打开一个新文件

    #!/bin/sh

    # NAS 配置信息
    NAS_IP="192.168.50.236"
    NAS_PATH="//${NAS_IP}/adsm"
    MOUNT_POINT="/adsm"
    MOUNT_OPTIONS="nofail,uid=1000,gid=1000,vers=3.0,username=用户名,password=密码,iocharset=utf8,file_mode=0777,dir_mode=0777"

    # 重试参数
    MAX_RETRIES=6 # 最大重试次数
    RETRY_INTERVAL=10 # 每次重试间隔(秒)

    # 记录开始时间
    echo "$(date): 开始检测 NAS 连通性..."

    for i in $(seq 1 $MAX_RETRIES); do
    # 1. 先 ping 检测网络是否可达
    if ping -c 1 -W 2 "$NAS_IP" > /dev/null 2>&1; then
    echo "$(date): NAS ($NAS_IP) 已连通。"

    # 2. 检查是否已经挂载
    if mountpoint -q "$MOUNT_POINT"; then
    echo "$(date): $MOUNT_POINT 已挂载,无需重复操作。"
    exit 0
    fi

    # 3. 尝试挂载
    echo "$(date): 尝试挂载 $NAS_PATH$MOUNT_POINT ..."
    mount.cifs "$NAS_PATH" "$MOUNT_POINT" -o "$MOUNT_OPTIONS"
    if [ $? -eq 0 ]; then
    echo "$(date): 挂载成功!"
    exit 0
    else
    echo "$(date): 挂载失败,请检查用户名/密码或共享路径。"
    exit 1
    fi
    else
    echo "$(date): 无法 ping 通 $NAS_IP(第 $i 次尝试),${RETRY_INTERVAL}秒后重试..."
    if [ $i -lt $MAX_RETRIES ]; then
    sleep $RETRY_INTERVAL
    else
    echo "$(date): 已达最大重试次数,放弃挂载。请检查 NAS 是否开机或 IP 是否正确。"
    exit 1
    fi
    fi
    done

    编辑 /etc/rc.local 文件:

    vi /etc/rc.local

    exit 0 这一行的上面,添加一行:

    /opt/mount_nas.sh &

    & 代表让脚本在后台运行,不会拖慢系统启动速度)

开启smb共享

  • 安装 Samba4 服务:在 OpenWrt 中,安装带网页界面的 luci-app-samba4 包是最方便的选择,它会自动安装samba4-server等核心依赖。

    # 刷新软件源
    apk update

    # 安装带中文界面的 Samba4 包
    apk add luci-app-samba4 luci-i18n-samba4-zh-cn

    安装完成后,需要重启一次路由器,让LuCI界面里出现“网络共享”菜单。

  • 创建 Samba 用户及密码:即使我们在网页界面允许了 root 用户,但 root 还没有设置自己的 Samba 专用密码。这一步需要在 SSH 中进行。

    # 为 root 用户设置 Samba 密码
    smbpasswd -a root
    # 检查文件权限,如果输出是类似 drwx------ 的样子,就意味着只有 root 用户才有权限,
    # Samba 来宾账户 (nobody) 就会无法访问。
    ls -ld /b860
    chmod 777 /b860
    # 修改文件夹里所有文件与文件夹的权限,确保读写权限
    chmod -R 777 /b860

    系统会提示你输入并确认密码,这个密码可以和你OpenWrt的登录密码不同,它是一个独立的安全凭证。

  • **修改文件 **:vi /etc/samba/smb.conf.template

    [global]
    workgroup = WORKGROUP
    security = user
    map to guest = Bad User
    #server min protocol = NT1
    #client min protocol = NT1

    [B860]
    path = /b860
    browseable = yes
    read only = no
    guest ok = yes
    guest account = nobody
    create mask = 0777
    directory mask = 0777
    # 将所有用户都当root看待。
    force user = root

格式化虚拟硬盘并挂载

OpenWrt 中文社区软件包仓库

  • 安装必要工具apk add fdisk e2fsprogs block-mount

  • 查看新硬盘的设备名称:使用 ``lsblk命令找到你刚添加的硬盘。可能被识别为/dev/sdc/dev/sdb/dev/sda`。

  • 分区与格式化:以新硬盘为 /dev/sda 为例,格式化。强烈建议格式化为 ext4 文件系统。请谨慎,以下命令会抹除新硬盘上的所有数据:mkfs.ext4 /dev/sda

  • 查看硬盘uuidblkid /dev/sdc1 来获取分区的UUID,例如 55657278-345f-4cf4-8d3c-34d8a83d06b2。使用UUID挂载更稳定,能避免设备编号变化导致的挂载失败问题。

  • 添加挂载配置vi /etc/config/fstab

    config 'mount'
    option enabled '1'
    option uuid '55657278-345f-4cf4-8d3c-34d8a83d06b2'
    option target '/mnt/sdc1'
    option fstype 'ext4'
    option options 'rw,exec,sync'
  • 如果确实需要 opkg,可以自行安装,使其与 apk 共存。
    从官方源下载 opkg

    wget -P /tmp https://downloads.openwrt.org/releases/24.10.0/packages/x86_64/base/opkg_2022-02-24-d038e5b6-1_x86_64.ipk

提示:如果上述链接失效,请访问 OpenWrt 24.10 软件包目录 查找最新的 opkg 版本。
安装 opkgapk add --allow-untrusted /tmp/opkg_*.ipk
使用 opkg 安装 luci-app-diskman

opkg install /path/to/luci-app-diskman_v0.2.11_all.ipk

编译并安装luci-app-diskman

  • 编译环境:debian-13.4.0-amd64-netinst

  • 下载对应你固件版本的 SDK,就可以轻松编译你想要的 luci-app-diskman 插件了。

    wget https://downloads.openwrt.org/releases/25.12.1/targets/x86/64/openwrt-sdk-25.12.1-x86-64_gcc-14.3.0_musl.Linux-x86_64.tar.zst
    tar -xvf openwrt-sdk-25.12.1-x86-64_gcc-14.3.0_musl.Linux-x86_64.tar.zst
    cd openwrt-sdk-25.12.1-x86-64_gcc-14.3.0_musl.Linux-x86_64
    # 安装依赖
    apt install build-essential flex gawk git gettext libncurses-dev libssl-dev python3-full python3-setuptools zlib1g-dev unzip subversion ccache libxml-parser-perl libjson-perl
    apt install rsync file
    # 克隆插件源码
    git clone https://github.com/lisaac/luci-app-diskman.git package/luci-app-diskman
    # 更新软件包索引
    ./scripts/feeds update -a
    ./scripts/feeds install -a
    # 编译.apk 包:
    make package/luci-app-diskman/compile V=s

    如果仍然提示缺失某些工具,可以运行 make prereq 来专门检查并提示缺少哪些依赖:

    编译完成后,.apk 文件通常会存放在 bin/packages/x86_64/base/ 目录下。

  • 安装编译:编译出的 .apk 包没有官方签名,所以 apk 默认会拒绝安装。加上 --allow-untrusted 参数即可绕过签名检查:apk add --allow-untrusted /adsm/diskman/luci-app-diskman-0.2.13-r1.apk

  • 安装后验证:安装成功后,刷新 LuCI 界面,就能在 系统 → 磁盘管理 中找到 DiskMan 了。如果页面不显示,重启一下路由器或执行:/etc/init.d/rpcd restart

安装 Docker 与 Docker Compose

  • 核心是安装 dockerd (Docker 守护进程) 和 docker-composeapk add dockerd docker-compose

要解决磁盘问题

16G磁盘(/dev/sdb)并没有被充分利用,系统目前只使用了其中的 /dev/sdb1 (16M boot) 和 /dev/sdb2 (104M rom),而 overlay 文件系统却绑定到了一个只有 98.1M 的 loop 设备(loop0),导致可用空间不足 5MB。

你需要把 overlay 扩展到磁盘的空闲空间上,才能安装 Docker 等大软件。

查看磁盘分区表,确认有空闲空间fdisk -l /dev/sdb

应该能看到 /dev/sdb 大小为 16G,但只有三个很小分区(sdb1, sdb2, sdb128),剩余大量未分配空间。我们需要创建一个新分区来存放 overlay。

  • 创建新分区(例如 /dev/sdb3

    # 进入 fdisk 交互模式
    fdisk /dev/sdb

    # 在 fdisk 内部依次输入:
    n # 新建分区
    p # 主分区
    3 # 分区编号(如果 3 已被占用,选其他编号,例如 3 应该是可用的)
    # 然后直接按两次回车,使用默认起始和结束扇区(占用所有剩余空间)
    w # 写入分区表并退出

    **Partition number (3-127, default 3): ** 直接回车 它会自动选择默认值 3

    First sector (246272-33554398, default 247808):*直接按回车键,使用默认值 247808 即可。
    Last sector, +/-sectors or +/-size{K,M,G,T,P}
    *直接按回车
    ,让它使用剩余的全部空间。
    最后输入 w 写入分区表。

    fdisk /dev/sdb
    n
    First sector (246272-33554398, default 247808): ← 直接回车
    Last sector, +/-sectors or +/-size{K,M,G,T,P} (247808-33554398, default 33554398): ← 直接回车
    Created a new partition 3 of type 'Linux filesystem' and of size 15.9 GiB.
    Command (m for help): w ← 输入 w 然后回车
  • 格式化新分区为 ext4mkfs.ext4 /dev/sdb3

  • 将当前 overlay 内容迁移到新分区

    # 挂载新分区到一个临时目录
    mkdir -p /mnt/newroot
    mount /dev/sdb3 /mnt/newroot

    # 复制当前 overlay 的所有文件到新分区(保留权限)
    cp -a /overlay/* /mnt/newroot/

    # 卸载临时挂载
    umount /mnt/newroot
  • 修改系统配置,使新分区成为 overlay:编辑 /etc/config/fstab,获取uuidblkid /dev/sdb3
    注意:原来的那个 target '/overlay'enabled '0' 的项可以保留(不会被使用),或者你也可以把它删除。建议保留并保持 enabled '0',避免冲突。

    config 'mount'
    option enabled '1'
    option uuid '这里填/sdb3的UUID'
    option target '/overlay'
    option fstype 'ext4'
    option options 'rw,exec,noatime'

    重启后,再次运行 df -h,你应该会看到 /overlay 变为 /dev/sdb3,容量接近 16G,使用率很低。

再次安装

  • 安装apk add dockerd docker-compose

  • 安装完成后,启动并设置 Docker 开机自启,然后验证安装是否成功:

    /etc/init.d/dockerd start
    /etc/init.d/dockerd enable
    docker -v
    docker-compose --version
  • 配置 Docker 存储目录:为了不影响路由器有限的存储空间,建议将默认的 /opt/docker/ 数据目录迁移到你的挂载硬盘上。假设你希望 Docker 的数据目录为 /awrt/docker

  • 停止服务

    /etc/init.d/dockerd stop
    /etc/init.d/docker.socket stop # 如果 docker.socket 服务存在,也执行:
  • 迁移现有数据(如果之前已有一些镜像或容器)

    # 如果 /opt/docker 下已有内容,可以复制过去
    cp -a /opt/docker/. /awrt/docker/
  • 如果只安装1panel面板,修改vi /etc/docker/daemon.json

    {
    "data-root": "/awrt/docker",
    "registry-mirrors": [
    "https://docker.1panel.live",
    "https://docker.1panel.dev",
    "https://docker.1ms.run",
    "https://docker.m.daocloud.io",
    "https://docker.xuanyuan.me",
    "https://atomhub.openatom.cn"
    ]
    }
    {
    "data-root": "/awrt/docker/",
    "log-level": "warn",
    "iptables": true,
    "ip6tables": false,
    "registry-mirrors": [
    "https://docker.1ms.run",
    "https://docker.xuanyuan.me",
    "https://docker.m.daocloud.io"
    ]
    }

    {
    "log-driver": "json-file",
    "log-opts": {
    "max-size": "20m",
    "max-file": "3"
    },
    "ipv6": true,
    "fixed-cidr-v6": "fd00:dead:beef:c0::/80",
    "experimental":true,
    "ip6tables":true
    }
  • 验证配置是否生效docker info | grep -A 5 "Docker Root Dir"返回配置目录

  • 验证镜像源是否生效docker info | grep -A 5 "Registry Mirrors"查看当前 Docker 已配置的镜像加速器(如果配置过)。

  • 修改 UCI 配置

    编辑 /etc/config/dockerd,找到 config globals 'globals' 部分,修改 data_root 行的值:

    option data_root '/awrt/docker'
    # 可以用 sed 命令快速修改:
    sed -i 's|option data_root .*|option data_root '\''/b860/docker'\''|' /etc/config/dockerd
    #将脚本中的DOCKER_CONF_DIR变量值从可能错误的/tmp/dockerd纠正为/awrt/docker
    sed -i 's/^DOCKER_CONF_DIR=.*/DOCKER_CONF_DIR="\/awrt\/docker"/' /etc/init.d/dockerd
  • 安装 LuCI 管理界面: luci-app-dockerman apk add luci-app-dockerman

  • 配置镜像源:通过 /etc/config/dockerd 修改

    OpenWrt 将 Docker 的配置整合到了其标准的 UCI dockerd 配置文件中,无需手动处理 daemon.json 定位到 config globals 'globals' 部分。如果看到 list registry_mirrors 行,请移除行首的 #。如果没有,请手动添加。

    config globals 'globals'
    # option alt_config_file '/etc/docker/daemon.json'
    option data_root '/awrt/docker/'
    option log_level 'warn'
    option iptables '1'
    # list dns '172.17.0.1'
    # list registry_mirrors 'https://<my-docker-mirror-host>'
    # list registry_mirrors 'https://hub.docker.com'
    list registry_mirrors 'https://docker.1ms.run'
    list registry_mirrors 'https://docker.m.daocloud.io'
    list registry_mirrors 'https://docker.xuanyuan.me'
    list registry_mirrors 'https://atomhub.openatom.cn'

收藏代码

  • 等待磁盘加载后启动docker :iv /etc/init.d/dockerdstart_service() {函数的第一行加上

    # 等待 /b860 挂载点出现(最多等 60 秒,每 2 秒检查一次)
    local waited=0
    while ! mountpoint -q /b860 && [ $waited -lt 60 ]; do
    sleep 5
    waited=$((waited + 2))
    done

    # 如果超时后仍未挂载,记录日志但继续启动(可选)
    if ! mountpoint -q /b860; then
    logger -t dockerd "警告: /b860 挂载不成功, Ddocker启动失败"
    fi

    重装Docker

    如果以上所有步骤都无法解决,日志又指向不明的“软件包损坏”,那么最后的手段是:备份配置、彻底卸载、重装Docker。这可以解决绝大部分因配置文件残留或软件包损坏导致的疑难杂症。

    重装命令如下:

    # 1. 停止并禁用 Docker 服务
    /etc/init.d/dockerd stop
    /etc/init.d/dockerd disable
    # 2. 要先删除界面
    apk del luci-app-dockerman

    # 3. 彻底移除 Docker 相关软件包
    apk del dockerd docker docker-compose

    # 4. 清理残留的配置文件和数据(请确保 /awrt/docker 路径正确)
    rm -rf /etc/docker /etc/config/dockerd /awrt/docker
    # 检查是否还有其他 Docker 相关的包(如 docker-cli、containerd 等)需要清理:
    apk list | grep docker

    # 5. 重新安装 Docker
    apk update
    apk add dockerd docker docker-compose

    # 6. 重新配置 Docker
    # 请参考历史对话,将 /awrt/docker 恢复为数据目录
  • 如果出现如下问题:

    30/30) Installing dockerd (27.3.1-r4)
    Installing file to etc/init.d/dockerd.apk-new
    Executing dockerd-27.3.1-r4.post-install
    * /etc/rc.common: line 231: mountpoint: not found
    * /etc/rc.common: line 231: mountpoint: not found
    安装 mountpoint 依赖
    apk add util-linux

更换主题

OpenWrt软件包各主题样式预览

搜索一下可用的主题:apk search luci-theme

luci-theme-openwrt (官方默认主题)
luci-theme-bootstrap (经典主题)
luci-theme-material (Material 风格)
luci-theme-argon (很受欢迎的现代主题)
  • 安装luci-theme-argon主题

    wget https://github.com/jerrykuku/luci-theme-argon/releases/download/v2.4.3/luci-theme-argon-2.4.3-r20250722.apk
    # 也可以手动下载到 /awrt # --allow-untrusted 参数来强制安装这个我们信任的第三方主题包
    apk add --allow-untrusted ./luci-theme-argon-2.4.3-r20250722.apk
  • **激活 Argon 主题 **

    uci set luci.main.mediaurlbase='/luci-static/argon'
    uci commit luci
    /etc/init.d/uhttpd restart
  • 自定义 Argon 主题:如果希望进一步自定义 Argon 主题(比如更换登录背景、明暗模式等),可以尝试手动安装 luci-app-argon-config。不过由于它目前可能只提供 .ipk 格式,我们可以用 opkg 来安装(如果系统里有 opkg 的话)

  • 也可以用apk add luci-theme-material主题,在 语言和界面 标签页 → 主题 下拉选择 material

系统升级

  • 下载固件到 /awrt(不是 /tmp

    cd /awrt
    wget https://downloads.openwrt.org/releases/25.12.2/targets/x86/64/openwrt-25.12.2-x86-64-generic-squashfs-combined-efi.img.gz
    # 升级
    sysupgrade -v /awrt/openwrt-25.12.2-x86-64-generic-squashfs-combined-efi.img.gz

    -v 显示详细信息,系统会自动将镜像解压到 /tmp 但会尝试复用空间。如果仍然提示空间不足,可以添加 -f 强制跳过空间检查(风险较小,因为你的 overlay 实际足够大):

    sysupgrade -v -f /awrt/openwrt-25.12.2-x86-64-generic-squashfs-combined-efi.img.gz

编译openwrt

编译环境准备(Debian 13)

打开终端,使用普通用户(非 root)执行以下命令:

sudo apt update
sudo apt upgrade -y
sudo apt install -y build-essential libncurses5-dev libncursesw5-dev zlib1g-dev gawk git gettext libssl-dev libelf-dev autoconf automake libtool autopoint ccache flex bison subversion git-core g++-multilib p7zip p7zip-full msmtp texinfo libglib2.0-dev xmlto qemu-utils upx libdwarf-dev libdw-dev libunwind-dev liblzma-dev cmake rsync wget python3-full

拉取源码并更新feeds

#创建新文件夹
mkdir -p /abian
cd /abian
git clone https://github.com/coolsnowwolf/lede.git
cd lede
# 更新feeds
./scripts/feeds update -a
./scripts/feeds install -a

若希望使用官方源码,可替换为:git clone https://git.openwrt.org/openwrt/openwrt.git