当前位置:
AIGC文章详情

128GB固态装OpenWrt只能用104MB?空间满了、莫名重启别急着重刷,先查清这两件事

源自71位全网作者

01:27

前几天刷到一条微博吐槽,博主说自己正干活呢软路由挂了,啥也没动,它自己就挂了,怀疑OpenWrt的x86是不是用个大半年就得全刷一次。微博知乎8月中那个“软路由用久了需要重启吗”的问题下面更是分成两派:一派说自己两年没重启过,另一派说半年就得重刷。

我折腾x86软路由这些年,得出的结论是:x86 OpenWrt最常见的两种“症状”——空间满、莫名重启——绝大多数都不是系统本身坏了。前者是镜像设计如此,后者多半是硬件嫌疑。盲目重刷两个都治不了,还会把你调了半个月的配置搭进去。

分开说。

症状一:空间红了,插件装不上——这不是bug,是没扩容

很多人以为买个128GB固态装上OpenWrt,就全归系统用了。我把官方OpenWrt 25.12.5的x86/64镜像实际解包测了一下:整个镜像只有120MB,16MB是启动分区,104MB是系统分区(rootfs),剩下127GB多全是“未分配”。

国内用得更多的ImmortalWrt也一样——官方25.12.1的x86镜像解包实测,rootfs给了300MB,比官方大方点,但对想随便装插件的人来说还是紧。知乎上有人总结得很直接:原版OpenWRT(和正规分支)不知道什么原因,对x86平台的磁盘容量也只给了200多MB,安装的软件稍微一多就会超。知乎这就是OpenWrt系x86镜像的设计逻辑:镜像保持最小,空间自己扩。所以LuCI里“软件包”的可用空间飘红时,第一反应不该是“要不要换个精简固件”,而是扩容——一次性的事,不用重刷。

128GB固态装OpenWrt只能用104MB?空间满了、莫名重启别急着重刷,先查清这两件事

ext4镜像(官方wiki在x86上推荐的格式)扩容三步:

  1. 装工具:25.12执行 `apk update && apk add losetup resize2fs`(24.10及更早是 `opkg install losetup resize2fs`)

  2. 扩分区:`fdisk /dev/sda`,删除分区2,重建分区2——起始扇区保持原值不动,结束扇区直接默认拉满,写入

  3. 扩文件系统:`losetup /dev/loop0 /dev/sda2`,再 `resize2fs -f /dev/loop0`,重启

用的是squashfs镜像的话扩容要更绕一层,官方对x86的建议就是直接用ext4。代价要说清楚:ext4镜像没有Failsafe模式和恢复出厂功能,这俩依赖只读的squashfs根分区,算是取舍。

三个坑,都是社区里反复有人踩的:

  • 以后要是再用combined镜像重刷,扩容会被打回原形——写镜像会重置分区表到默认大小,重刷完得再扩一次,或者提前整盘备份;

  • 删除重建分区可能改变分区UUID,改完不更新 `/boot/grub/grub.cfg` 里的PARTUUID会直接起不来;

  • 25.12照老教程敲 `opkg install parted` 会装不上:一是包管理器已经从opkg换成了apk,二是查了官方25.12.5的仓库,parted这个CLI包已经不在里面了(只剩libparted),老老实实直接用系统自带的fdisk。

还没装机、不想事后折腾的话,也可以用Image Builder编译时直接把分区做大,`CONFIG_TARGET_ROOTFS_PARTSIZE=512` 起步,一步到位。

症状二:莫名重启、死机、断流——先查硬件嫌疑,别急着重刷

先看几个社区真实案例:

知乎“畅网N100软路由死机频繁”那个问题下,有个回答很典型:层主也是畅网(N305),当年被不定时重启折腾得换了3条内存,还是不行,最后听售后建议换了个300W电源,解决了——元凶是电源适配器功率不够。知乎

另一位“网速跑满软路由就突然重启”,高赞回答也很直接:高负载才重启,大概率机器本身问题,主板、CPU、内存都有可能。知乎

B站有个1万多播放的视频,专讲N5105在PVE下OpenWrt死机、重启、断流,最后的解法是调i225网卡环形缓冲区(`ethtool -G enp2s0 rx 512`)。哔哩哔哩还有个4万播放的“N5105软路由别乱买”,讲的是M.2固态兼容坑——两根固态接连不识别,最后只能U盘装系统。哔哩哔哩

把这些案例归一下类,x86软路由不稳定,硬件嫌疑按常见程度排大概是:

  1. 电源:高负载重启的头号嫌疑,功率不足或适配器老化,多网口机型挂了USB设备时更明显;

  2. 内存:不定时重启、内核panic,有条件就换条内存试,或跑memtest;

  3. 存储:M.2兼容性问题,或者介质本身不行——特别是拿U盘当系统盘的,颗粒寿命远不如SSD,文件系统写坏是时间问题;

  4. 网卡:i225/i226的断流、丢包,不少靠ethtool调缓冲区解决;

  5. 散热:无风扇工控机,高负载下先看温度。

128GB固态装OpenWrt只能用104MB?空间满了、莫名重启别急着重刷,先查清这两件事

自查清单四件事:

  • `logread` 翻重启前的记录,看有没有kernel panic、OOM、watchdog;

  • `dmesg | grep -iE “error|fail”` 看硬件报错;

  • `free` 看内存是不是被某个插件持续吃涨——装完某插件后才开始不稳的,先删了它再观察;

  • `ethtool -S 网口 | grep -i error` 看网卡错误计数。

硬件全查完都干净,重启又很规律,再怀疑软件层。还在24.10的话注意:这个系列今年9月就结束支持、之后不再出安全更新,与其重刷旧版,不如直接升25.12。OpenWrt官网

什么时候才真的需要重刷?

三种情况:文件系统已经坏了(分区变只读、起不来)、SSH和LuCI都进不去、或者扩容都救不回来的混乱状态。但重刷也别裸刷:

  • 先备份:`sysupgrade --create-backup /tmp/backup.tar.gz`,把包scp出来;

  • 25.12自带Attended Sysupgrade(LuCI里就有入口),能带着你已装的全部插件重建镜像直接升级,比“刷固件→重装插件→恢复配置”的老流程省事得多。OpenWrt官网

  • 从24.10升25.12可以sysupgrade保留配置,个别设备(比如BPI-R4)有网口改名这类已知问题,升级前看一眼发行说明。

128GB固态装OpenWrt只能用104MB?空间满了、莫名重启别急着重刷,先查清这两件事

最后说两个反向观点

一是别陷入“定期重启”的仪式感。那个5千多浏览的知乎问题里,高赞回答说得挺实在:重启基本是自己手欠想刷新版系统或者脚欠踢了电源线,没出现过软件问题导致必须重启的情况。知乎所以配置得当的OpenWrt,不需要靠定期重启来“保养”。

二是67万浏览的“软路由怎么没有人玩了”里,确实有人在退坑,说自己已经完全放弃openwrt,装个Debian,搞mosdns和mihomo,配置文件写到够用就好。知乎如果你的需求只有DNS和科学工具,又不想折腾,成品硬件路由或者通用Linux发行版都是正经出路,不必有信仰负担。

一句话总结:空间满了先扩容,重启先查硬件,重刷是最后手段。你那套配置,比你想的值钱。

你的软路由最长稳定运行了多久?有没有被电源坑过?评论区聊聊。

内容由AI生成
0
扫一下,分享更方便,购买更轻松
0评论

当前文章无评论,是时候发表评论了
提示信息

取消
确认
评论举报

最新文章 热门文章