内存空闲,为什么还是提示空间不足
路由器状态页显示RAM还有余量,PassWall安装却报“No space left on device”。这并不矛盾:运行内存与持久可写存储是不同资源,软件包需要写入的文件系统可能已经没有空间。先确认错误发生在下载、解压、安装还是更新阶段,比立即删除文件更有帮助。
在安装前环境检查中,存储应单独记录,不能用一个“剩余内存”数字概括全部资源。本文不会假定你的设备有某个固定Flash或RAM容量,也不把所有安装失败归因为空间不足。
读懂常见文件系统的职责
许多采用SquashFS镜像的OpenWrt系统把只读固件与可写层组合成日常使用的根文件系统。/rom通常对应只读部分,/overlay常见于可写存储;/tmp在常见配置中使用基于RAM的tmpfs。其他设备、镜像类型或自定义挂载可能不同,因此要查看实际挂载结果,而不是把一种分区图套用到所有路由器。
| 资源 | 主要用途 | 检查重点 |
|---|---|---|
| RAM | 进程、缓存、常见临时目录 | 可用内存及运行压力 |
| Flash/可写层 | 软件、配置及持久文件 | 目标挂载点剩余空间 |
| /tmp | 常见下载与临时处理位置 | 实际是否为tmpfs |
把存储与内存的观察分开
df -h
free -m
mountdf -h按挂载点显示容量与剩余空间,free -m观察内存,mount帮助确认各路径实际使用什么文件系统。重点查看安装目标所在文件系统,而不是只挑剩余最多的一行。若错误文字涉及inode或只读文件系统,也要继续查对应原因,容量尚有余量不能排除这些情况。
下载体积不等于安装后占用
压缩软件包解开后可能更大,还会带入依赖、核心程序与生成文件。更新过程也可能同时需要旧文件、新包和临时解压空间。PassWall界面资源与代理核心大小不同,不能仅凭LuCI包很小就判断路由器一定装得下。安装前应查看包管理器给出的计划与依赖,并为后续配置和更新留出余量,具体所需容量取决于实际构建。
若先发生依赖或目标不匹配错误,应先阅读架构和包兼容性检查。格式与索引的问题则按包管理器代际指南处理,不应通过清理存储掩盖来源不对应的问题。
可以清理什么,不能凭猜测决定
优先识别自己下载、已不再需要且有明确来源的临时文件,并通过当前包管理器管理确定不需要的软件。删除只读固件中的文件可能仅产生覆盖层标记,未必回收预期空间。不要手工移除未知动态库、系统组件或核心网络文件,也不要格式化Overlay来为插件腾位置。
Extroot可作为外部可写存储扩展的概念了解,但是否适用取决于设备接口、驱动、文件系统与启动条件,不能无条件启用。修改挂载结构前需要备份和明确恢复方案。完成资源核对后,保留安装前后空间记录,给下一次更新留下可比较的依据。
分开观察临时内存与持久存储,为核心和依赖预留真实可用空间。 将实际环境与观察结果一并记录,再进入下一步。



