|
|
本帖最后由 Vincent丶 于 2025-9-12 09:38 编辑
OpenWrt/ImmortalWrt 路由器 overlay 被写满(Open克拉斯 占用大),如何“零停机”排查、清理并长期防止再写满 我是小白,现在讲述我与OpenAI对话全过程成功案例,有需要的小伙伴可以参考,每人碰到的问题不同,都可以按照这种方式进行修复。解决详情我会整理成TXT大家可以直接复制命令使用或者参考。
使用的工具是cursor,AI模型是gpt-5-high-fast(MAX),SSH工具是MobaXterm_Personal_23.1.exe
【对话整理】OpenWrt/ImmortalWrt 路由器存储写满的排查与解决(含命令与结果)
—— 对话开始 ——
[用户]
我的路由器存储空间使用满了 你帮助我清理一下 一定不能影响正常使用 需要看什么内容 我可以去查询然后发给你
[助手]
好的,先定位再清理,避免影响正常使用。请在路由器 SSH 里逐条执行下面命令,并把完整输出贴给我(方便我给出针对性清理指令)。
1) 查看磁盘与 overlay 挂载点
sh
df -h
mount | grep -E 'overlay|/overlay'
2) 找出 overlay 中体积最大的目录
sh
[ -d /overlay/upper ] && T=/overlay/upper || T=/overlay
echo "TARGET=$T"
du -k -d 1 "$T" 2>/dev/null | sort -nr | head -n 30
3) 找出最大的具体文件
sh
du -k -a "$T" 2>/dev/null | sort -nr | head -n 30
4) 若你装了 Open克拉斯,请额外提供(它常占用最多空间)
sh
du -h -d 1 /etc/open克拉斯 2>/dev/null
ls -lh /etc/open克拉斯 2>/dev/null
说明:我会据此判断是否清理如 /etc/open克拉斯 的 mmdb/日志/备份、插件缓存、备份包等,确保不删系统必需文件。暂时不要手动删除任何 /usr/* 下的文件,也不要 opkg remove 包,避免损坏依赖。
[用户]
(执行输出)
BusyBox v1.36.1 (2025-06-22 14:05:27 UTC) built-in shell (ash)
.___ __ .__
| | _____ _____ ____________/ |______ | |
| |/ \ / \ / _ \_ __ \ __\__ \ | |
| | Y Y \ Y Y ( <_> ) | \/| | / __ \| |__
|___|__|_| /__|_| /\____/|__| |__| (____ /____/
\/ \/ BE FREE AND UNAFRAID \/
-----------------------------------------------------
ImmortalWrt 24.10-SNAPSHOT, r33257-5dcdcfd23f
-----------------------------------------------------
root@ImmortalWrt:~# df -h
Filesystem Size Used Available Use% Mounted on
/dev/root 65.5M 65.5M 0 100% /rom
tmpfs 241.9M 976.0K 241.0M 0% /tmp
/dev/ubi0_2 29.5M 29.4M 0 100% /overlay
overlayfs:/overlay 29.5M 29.4M 0 100% /
tmpfs 512.0K 0 512.0K 0% /dev
root@ImmortalWrt:~# mount | grep -E 'overlay|/overlay'
/dev/ubi0_2 on /overlay type ubifs (rw,noatime,assert=read-only,ubi=0,vol=2)
overlayfs:/overlay on / type overlay (rw,noatime,lowerdir=/,upperdir=/overlay/upper,workdir=/overlay/work,xino=off)
root@ImmortalWrt:~# [ -d /overlay/upper ] && T=/overlay/upper || T=/overlay
root@ImmortalWrt:~# echo "TARGET=$T"
TARGET=/overlay/upper
root@ImmortalWrt:~# du -k -d 1 "$T" 2>/dev/null | sort -nr | head -n 30
69904 /overlay/upper
56172 /overlay/upper/etc
12872 /overlay/upper/usr
856 /overlay/upper/www
4 /overlay/upper/lib
root@ImmortalWrt:~# du -k -a "$T" 2>/dev/null | sort -nr | head -n 30
69904 /overlay/upper
56172 /overlay/upper/etc
55748 /overlay/upper/etc/open克拉斯
20244 /overlay/upper/etc/open克拉斯/GeoIP.dat
12872 /overlay/upper/usr
11428 /overlay/upper/usr/share
11104 /overlay/upper/usr/share/open克拉斯
10540 /overlay/upper/etc/open克拉斯/ASN.mmdb
10304 /overlay/upper/usr/share/open克拉斯/ui
9324 /overlay/upper/etc/open克拉斯/GeoSite.dat
6984 /overlay/upper/etc/open克拉斯/core/克拉斯_meta
6984 /overlay/upper/etc/open克拉斯/core
4852 /overlay/upper/etc/open克拉斯/Model.bin
4668 /overlay/upper/usr/share/open克拉斯/ui/yacd
2992 /overlay/upper/usr/share/open克拉斯/ui/zashboard
2920 /overlay/upper/usr/share/open克拉斯/ui/zashboard/assets
2824 /overlay/upper/usr/share/open克拉斯/ui/yacd/assets
2744 /overlay/upper/etc/open克拉斯/rule_provider
2188 /overlay/upper/usr/share/open克拉斯/ui/metacubexd
2116 /overlay/upper/usr/share/open克拉斯/ui/metacubexd/assets
1444 /overlay/upper/usr/lib
1440 /overlay/upper/usr/share/open克拉斯/ui/yacd/assets/Twemoji_Mozilla-6d90152e.ttf
1440 /overlay/upper/usr/share/open克拉斯/ui/yacd/Twemoji_Mozilla.ttf
1436 /overlay/upper/usr/share/open克拉斯/ui/zashboard/assets/index-BVGVrWDV.js
1308 /overlay/upper/usr/lib/lua/luci
1308 /overlay/upper/usr/lib/lua
908 /overlay/upper/etc/open克拉斯/rule_provider/global-bm.list
908 /overlay/upper/etc/open克拉斯/rule_provider/Globe / Domain
908 /overlay/upper/etc/open克拉斯/rule_provider/Globe
896 /overlay/upper/usr/share/open克拉斯/ui/zashboard/assets/NotoColorEmoji-flagsonly-CWWDk9km.ttf
root@ImmortalWrt:~# du -h -d 1 /etc/open克拉斯 2>/dev/null
6.8M /etc/open克拉斯/core
0 /etc/open克拉斯/proxy_provider
24.0K /etc/open克拉斯/game_rules
32.0K /etc/open克拉斯/backup
16.0K /etc/open克拉斯/overwrite
528.0K /etc/open克拉斯/history
32.0K /etc/open克拉斯/config
60.0K /etc/open克拉斯/custom
2.7M /etc/open克拉斯/rule_provider
54.4M /etc/open克拉斯
root@ImmortalWrt:~# ls -lh /etc/open克拉斯 2>/dev/null
-rw-r--r-- 1 root root 10.3M Sep 11 01:36 ASN.mmdb
-rw-r--r-- 1 root root 31.8K Sep 12 06:00 ChatGPT.yaml
-rw-r--r-- 1 root root 200.2K Sep 10 14:09 Country.mmdb
-rw-r--r-- 1 root root 19.8M Sep 10 14:10 GeoIP.dat
-rw-r--r-- 1 root root 9.1M Sep 10 13:08 GeoSite.dat
-rw-r--r-- 1 root nogroup 4.7M Sep 12 04:26 Model.bin
lrwxrwxrwx 1 root root 33 Sep 12 06:00 cache.db -> /etc/open克拉斯/history/ChatGPT.db
lrwxrwxrwx 1 root root 30 Sep 12 06:00 克拉斯 -> /etc/open克拉斯/core/克拉斯_meta
...(其余目录省略)
[助手]
看到了,占用的“元凶”基本都在 Open克拉斯。先做“零风险清理”,不会影响代理功能与正常上网:只删多余面板与不必要模型文件,立刻释放约 12–15MB。请一次执行下面命令,并把最后的 df 输出贴给我:
sh
[ -d /usr/share/open克拉斯/ui/yacd ] && rm -rf /usr/share/open克拉斯/ui/yacd
[ -d /usr/share/open克拉斯/ui/zashboard ] && rm -rf /usr/share/open克拉斯/ui/zashboard
[ -f /etc/open克拉斯/Model.bin ] && rm -f /etc/open克拉斯/Model.bin
find /etc/open克拉斯/history -type f -name '*.db-*' -delete 2>/dev/null
rm -f /etc/open克拉斯/*.log* 2>/dev/null
df -h
du -h -d 1 /usr/share/open克拉斯/ui 2>/dev/null || true
du -h -d 1 /etc/open克拉斯 2>/dev/null || true
[用户]
(执行输出)
Filesystem Size Used Available Use% Mounted on
/dev/root 65.5M 65.5M 0 100% /rom
tmpfs 241.9M 1004.0K 241.0M 0% /tmp
/dev/ubi0_2 29.5M 24.1M 3.8M 86% /overlay
overlayfs:/overlay 29.5M 24.1M 3.8M 86% /
...
/usr/share/open克拉斯/ui: 2.6M;/etc/open克拉斯:49.7M
[助手]
很好,已经腾出了约 5MB,但仍偏紧。下面做“无感知”的第二步:把 Open克拉斯 的 GEO 数据挪到内存(/tmp),原路径做软链接,并放一个开机自恢复脚本。
1) 迁移三大文件到内存并做软链接
sh
mkdir -p /tmp/open克拉斯
for f in GeoIP.dat GeoSite.dat ASN.mmdb; do
[ -f "/etc/open克拉斯/$f" ] && cp -f "/etc/open克拉斯/$f" "/tmp/open克拉斯/$f"
[ -f "/tmp/open克拉斯/$f" ] && ln -sf "/tmp/open克拉斯/$f" "/etc/open克拉斯/$f"
done
df -h
du -h -d 1 /etc/open克拉斯 2>/dev/null
2) 安装开机自恢复脚本
sh
cat > /etc/init.d/oc-geodata << 'EOF'
#!/bin/sh /etc/rc.common
START=09
USE_PROCD=1
...(脚本完整内容略,含 wait_net 与 fetch)
EOF
chmod +x /etc/init.d/oc-geodata
/etc/init.d/oc-geodata enable
/etc/init.d/oc-geodata start
3) 再次查看空间
sh
df -h
du -h -d 1 /etc/open克拉斯 2>/dev/null
[用户]
(执行与输出,含脚本编写时的终端显示换行)
root@ImmortalWrt:~# mkdir -p /tmp/open克拉斯
root@ImmortalWrt:~# for f in GeoIP.dat GeoSite.dat ASN.mmdb; do
> [ -f "/etc/open克拉斯/$f" ] && cp -f "/etc/open克拉斯/$f" "/tmp/open克拉斯/$f"
> [ -f "/tmp/open克拉斯/$f" ] && ln -sf "/tmp/open克拉斯/$f" "/etc/open克拉斯/$f"
> done
root@ImmortalWrt:~# df -h
/dev/ubi0_2 29.5M 11.7M 16.2M 42% /overlay
...
root@ImmortalWrt:~# cat > /etc/init.d/oc-geodata << 'EOF'
#!/bin/sh /etc/rc.common
START=09
USE_PROCD=1
...
[ -s /tmp/open克拉斯/GeoIP.dat ] || { wait_net && fetch "https://github.com/Loyalsoldier/“师夷长技以制夷”-rules-dat/releases/latest/d
ownload/geoip.dat" /tmp/open克拉斯/GeoIP.dat; }
[ -s /tmp/open克拉斯/GeoSite.dat ] || { wait_net && fetch "https://github.com/Loyalsoldier/“师夷长技以制夷”-rules-dat/releases/latest
/download/geosite.dat" /tmp/open克拉斯/GeoSite.dat; }
[ -s /tmp/open克拉斯/ASN.mmdb ] || { wait_net && fetch "https://github.com/P3TERX/GeoLite.mmdb/releases/latest/download/Ge
oLite2-ASN.mmdb" /tmp/open克拉斯/ASN.mmdb >/dev/null 2>&1 || true; }
EOF
chmod +x /etc/init.d/oc-geodata
/etc/init.d/oc-geodata enable
/etc/init.d/oc-geodata start
...
[助手]
不错,已从 100% 降到 42%,现在可用约 16.2MB。可选再删除 dashboard 面板或继续迁移核心以释放更多。
[用户]
root@ImmortalWrt:~# /etc/init.d/open克拉斯 restart
Open克拉斯 Restart...
Open克拉斯 Already Stop!
cfg2a6ecc
Open克拉斯 Already Start!
root@ImmortalWrt:~# sleep 5; pgrep -a 克拉斯 || logread | tail -n 100
4365 /etc/open克拉斯/克拉斯
4366 open克拉斯_watch
[助手]
很好,Open克拉斯 正常运行,磁盘已从 100% 降到 42%。
[用户]
帮我把咱俩的对话完整整理出来 新建一个txt文件写出来
[助手]
已将本次会话从求助到解决的完整记录整理成这份 txt 文件(即你正在查看的内容)。
—— 对话结束 ——
附:核心可复用命令(备忘)
1) 定位占用
[ -d /overlay/upper ] && T=/overlay/upper || T=/overlay; du -k -a "$T" 2>/dev/null | sort -nr | head -n 30
2) 清理 Open克拉斯 多余面板与模型
[ -d /usr/share/open克拉斯/ui/yacd ] && rm -rf /usr/share/open克拉斯/ui/yacd
[ -d /usr/share/open克拉斯/ui/zashboard ] && rm -rf /usr/share/open克拉斯/ui/zashboard
[ -f /etc/open克拉斯/Model.bin ] && rm -f /etc/open克拉斯/Model.bin
3) 迁移 GEO 三件到内存并建立软链接
mkdir -p /tmp/open克拉斯; for f in GeoIP.dat GeoSite.dat ASN.mmdb; do [ -f "/etc/open克拉斯/$f" ] && cp -f "/etc/open克拉斯/$f" "/tmp/open克拉斯/$f"; [ -f "/tmp/open克拉斯/$f" ] && ln -sf "/tmp/open克拉斯/$f" "/etc/open克拉斯/$f"; done
4) 开机自恢复脚本路径
/etc/init.d/oc-geodata(enable/start/disable)
|
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?立即注册
×
|