引自免费微信小程序:皆我百晓生
面对OpenWrt设备磁盘空间紧张的问题,有几种方法可以帮助你释放空间以便于安装更多软件包。下面将详细解释每一步操作。
1. 清理无用的软件包和缓存
运行以下命令来清理旧的软件包缓存和未使用的依赖包:
opkg update
opkg upgrade
opkg list-installed | grep -v "^luci" | awk '{print $1}' | xargs opkg remove --force-depends --force-remove
opkg clean
这会更新软件包列表,升级已安装的软件包,然后移除所有非LuCI相关的软件包(确保LuCI界面不会被移除),并最后清理缓存。
2. 移除不需要的内核模块
OpenWrt系统中可能包含了许多你并不需要的内核模块,这些模块占用了宝贵的存储空间。可以通过以下命令查看并移除它们:
lsmod | awk '{print $1}' | xargs modprobe -r
但这只是临时移除模块,重启后它们可能会重新加载。要永久性地从内核配置中移除它们,你需要重新编译内核,这是一个较为复杂的过程,涉及修改.config
文件并重新构建整个固件。
3. 使用squashfs工具压缩文件系统
如果你的OpenWrt设备使用的是/rom
分区,它可能是基于squashfs
文件系统。尽管squashfs
是只读的且默认压缩,但有时候重新创建一个更高效压缩比的版本可以节省空间:
# 备份当前的根文件系统
dd if=/dev/root of=root.squashfs
# 创建一个新的空的压缩文件系统
mksquashfs root.squashfs new_root.squashfs -comp xz
# 将新的文件系统复制回原来的分区
dd if=new_root.squashfs of=/dev/root
# 清理
rm root.squashfs new_root.squashfs
请注意,执行以上步骤前确保备份重要数据,因为这会重写根分区。
4. 扩展文件系统
如果/mnt/sda3
分区有足够的空间,并且你想要利用这部分空间,可以考虑将/overlay
或/rom
指向/mnt/sda3
,或者在/mnt/sda3
上创建一个新的可扩展文件系统(如ext4
)。这样可以显著增加可用空间。但是,这通常需要重新分区和格式化/mnt/sda3
,并且重新配置启动脚本以正确挂载新文件系统。
5. 卸载不必要的分区
从你的输出看,有几个分区被重复挂载,比如/boot
和/mnt/sda1
。确认是否真的需要这些重复的挂载点,如果不是,则可以在/etc/fstab
中删除相应的条目,或者在启动脚本中修改挂载行为。
结论
通过上述方法,你应该能有效释放OpenWrt设备上的空间,为安装新软件包腾出空间。每一步操作都需要谨慎进行,特别是在修改分区和文件系统时,务必确保有完整的备份方案。如果不确定如何操作,建议在社区论坛或官方文档中寻求更详细的指导。