USB2JFFS – 用U盘来挂载jffs
1 | https://koolshare.cn/thread-178957-1-1.html |
1. 查看路由器是否有坏道
1 | dmesg|grep "bad block" |
还好没有坏道
2. 手动实现U盘挂载jffs
要实现U盘挂载jffs本身不难,以RT-AC1900P为例
插上U盘
1 | df -h //可以看到我们的U盘挂载到什么路径了 |
得出结果
1 2 3 4 5 6 | Filesystem Size Used Available Use% Mounted on /dev/root 33.9M 33.9M 0 100% / devtmpfs 124.7M 0 124.7M 0% /dev tmpfs 124.8M 924.0K 123.9M 1% /tmp /dev/mtdblock4 62.8M 8.5M 54.3M 14% /jffs /dev/sda5 11.7G 16.0M 11.1G 0% /tmp/mnt/sda5 |
可以看到 我的U盘/dev/sda5 挂载到了 /tmp/mnt/sda5(倒数第一行);同时也知道了,固件原始的jffs挂载文件系统是/dev/mtdblock4
3. 卸载jffs
卸载jffs前需要关闭软件中心进程,因为skipd的数据库是存在/jffs/db下的,httpdb程序本身也是在/jffs/.koolshare/bin目录下的,所以需要关闭这两个进程。
实际上路由器的流量统计等功能也会用jffs作为储存,但是这些进程是间隔时间写入数据的,所以不用太严格考虑重启这些进程。
1 2 3 4 5 6 | # 先关闭skipd和httpdb进程 killall skipd /koolshare/perp/perp.sh stop # 卸载jffs分区 umount -l /jffs |
4. 用U盘挂载jffs
1 2 3 4 5 6 7 8 9 | # 将jffs分区里的所有文件复制到U盘.koolshare_jffs目录 cp -a /jffs/ /tmp/mnt/sda5/.koolshare_jffs # 用刚才创建的文件夹文件夹替换/jffs mount -o rbind /tmp/mnt/sda5/.koolshare_jffs /jffs # 重启软件中心相关进程 service restart_skipd /koolshare/perp/perp.sh start //这步提示no found 报错 |
5. 手动恢复原始jffs挂载方式
还是以RT-AC1900P为例:
卸载jffs
1 2 3 4 5 6 | # 先关闭skipd和httpdb进程 killall skipd /koolshare/perp/perp.sh stop # 卸载jffs分区 umount -l /jffs 重新挂载jffs |
1 2 3 4 5 6 | # 用原始的jffs挂载文件系统/dev/mtdblock4 挂载 jffs mount -t jffs2 -o rw,noatime /dev/mtdblock4 /jffs # 重启软件中心相关进程 service restart_skipd /koolshare/perp/perp.sh start |