OpenWrt 安装应用到其他分区

由于路由自带的空间比较小,安装不了几个应用,但好在可以它支持挂载 u 盘。我的 u 盘挂载在 /mnt/upan

不过,要把 app 安装到 u 盘 上并且能正常使用,还需要做一些工作。

修改配置文件

  1. 编辑 /etc/opkg.conf,添加 dest usb /mnt/upan。如果 usb 这一行放在dest root /前,使用 opkg install 安装软件的时候,会默认安装到 /mnt/upan
  2. 安装的时候使用 -d 指定路径,比如 opkg -d usb install xxxx

应用安装之后,会在 /mnt/upan/ 目录下建立相关的目录结构,如:

#ls
lib/ usr/
#ls usr/
bin/ lib/ libexec/ share/

此时大概率不能运行刚安装的应用,还需要在系统分区对应的位置建立链接。也可以通过把路径添加到执行文件和库文件的搜索路径中。

建立链接

把几个目录中的所有文件和目录在对应的路径下全部都建立链接即可,下面是建立全部链接的一个简单脚本:

#!/bin/sh
ln -s /upan/apps/lib/* /lib/
ln -s /upan/apps/usr/bin/* /usr/bin/
ln -s /upan/apps/usr/lib/* /usr/lib/
ln -s /upan/apps/usr/libexec/* /usr/libexec/
ln -s /upan/apps/usr/share/* /usr/share/