TL-WR703N、TL-WR720N将官方OpenWrt系统扩展到U盘运行

更新

2017-08-08 如无较大错漏,本文不再更新,请尽快更新至LEDE; 感谢@ian提醒,先修改fstab再复制overlay,就不会出现 fstab 恢复原始状态的状况。重新更改该部分内容。 2017-05-29 LEDE已更新为17.01.12017-02-22 目前LEDE已放出了第一个正式版,因此建议采用最新版:17.01.02017-01-18 1.如果想尝试新版固件,OpenWrt官方和LEDE均提供了一个工具:imagebuilder。可以参考这个帖子进行。 2.不要在已经Extroot的系统上更新系统或固件,可能会导致设备变砖,如需更新,请拔下U盘,并在uboot中操作。

TL-WR703N、TL-WR720N的闪存只有4M,装完官方版的OpenWrt后空间所剩无几,好在它们提供了一个usb口,可通过官方教程挂载U盘,并将OpenWrt运行在U盘中,即扩大rootfs,同时解决安装软件没有空间的尴尬。

1 系统、挂载模式、挂载方法的选择

OpenWrt系统:
如果只想安装OpenWrt官方固件,那么建议选择barrier_breaker 14.07,不建议选择最新的稳定版chaos_calmer 15.05,后者会出现空间不足导致U盘驱动无法安装的情况。
挂载模式:
目前OpenWrt官方推荐rootfs挂载’/overlay’的模式(本文使用该方法),不再推荐’/’的模式。如果U盘损坏,拔下U盘可以启动系统。
挂载方法:
如果按照官方文档所说barrier_breaker的挂载方法反而比较麻烦一点点,本文采用挂载模式中链接的最新方法。

2 准备好U盘

目前U盘价格下降,10几元就能买到8G以上的,如果都作为系统盘来用过于浪费,所以建议将U盘分成3个区,1是用来挂载系统安装软件,1-2G足够了;2作为SWAP区,比如256M;3剩下的空间作为数据区,用来做aria2或离线迅雷的下载区。U盘需要事先在windows中可通过MiniTool Partition Wizard软件分成三个区,1、3区格式化为ext4格式,2区选择swap。

3 具体步骤

将U盘插入usb口,注意:720N需要将开关拨到3G模式,否则无法识别U盘。

3.1 安装exroot所需软件包

通过putty进入路由器,更新软件包列表

root@OpenWrt:~# opkg update

安装挂载U盘必须的包
官方建议安装kmod-usb-storage-extras。但没有足够的空间。有的教程提到安装e2fsprogs来格式化U盘,那选择的一定不是官方系统,因为空间不够。这里选择的是官方系统,所以需要事先格式化好U盘。

root@OpenWrt:~# opkg install opkg install block-mount kmod-fs-ext4 kmod-usb-storage
root@OpenWrt:~# reboot

3.2 查看u盘是否已经挂载

谢谢@huxin指出命令拼写错误。

root@OpenWrt:~# block info

/dev/mtdblock2: UUID="********-********-********-********" VERSION="4.0" TYPE="squashfs"
/dev/mtdblock3: TYPE="jffs2"
/dev/sda1: UUID="********-****-****-****-************" NAME="EXT_JOURNAL" VERSION="1.0" TYPE="ext4"
/dev/sda5: VERSION="2" TYPE="swap"
/dev/sda6: UUID="********-****-****-****-************" NAME="EXT_JOURNAL" VERSION="1.0" TYPE="ext4"

出现/dev/sda1下面的三行说明U盘已经挂载成功,挂载的U盘的三个区,sda1、sda5、sda6。

3.3 修改文件系统配置文件

root@OpenWrt:~# vi /etc/config/fstab

将option enabled ‘0’改为option enabled ‘1’,
将option target ‘/dev/sda1’改为option target ‘/overlay’,
按如下修改:

config 'global'
option anon_swap '0'
option anon_mount '0'
option auto_swap '1'
option auto_mount '1'
option delay_root '5'
option check_fs '0'

config 'mount'
option target '/overlay'
option uuid '********-****-****-****-************'
option enabled '1'

config 'swap'
option device '/dev/sda5'
option enabled '1'

config 'mount'
option target '/mnt/sda6'
option uuid '********-****-****-****-************'
option enabled '1'

按ESC键,输入:wq,保存并退出编辑器。

3.4 复制/overlay到U盘

将/dev/sda1挂载到/mnt

root@OpenWrt:~# mount /dev/sda1 /mnt

将/overlay复制到/mnt

root@OpenWrt:~# tar -C /overlay -cvf - . | tar -C /mnt -xf -
root@OpenWrt:~# umount /mnt
root@OpenWrt:~# reboot

3.5 检查是否扩展到u盘成功

查看rootfs是否增加

root@OpenWrt:~# df

也可以在luci中system-mount points下查看rootfs的大小和挂载情况。

4 解决遗留问题

此时再次查看fstab

root@OpenWrt:~# vi /etc/config/fstab

可见fstab又恢复原始状态,同时在luci中system-mount points可见Mount Points和SWAP的未勾上。
此时再次按之前的改动方法修改fstab,

root@OpenWrt:~# vi /etc/config/fstab

保存重启。

进入luci界面可见Mount Points和SWAP处enabled的勾已启用,但是Mount Points 的Filesystem处是问号。

第一行是sda1运行的/overlay,点击后面的edit,在device 处选择/dev/sda1,filesystem选择之前格式化好的格式ext4,同时勾上use as root filesystem,Save & Apply,然后点击back to overview返回Mount points主界面。

第二行是数据盘/mnt/sda6,点击edit,在device 处选择/dev/sda6,filesystem选择格式ext4,
Save & Apply,保存应用即可。

现在就可以安装很多你想安装的东西了。

11 thoughts on “TL-WR703N、TL-WR720N将官方OpenWrt系统扩展到U盘运行

  1. fstab

    仔细读完,操作之前想问两个个问题:
    1.SD卡在Windwos下按照上文进行格式化是否和U盘没区别。(读卡器)
    2.WR 720N V3 目前刷了官方的lede-17.01.5-ar71xx-generic-tl-wr720n-v3-squashfs-factory.bin,目前overlay根本装不了软件。请问block-mount kmod-fs-ext4 kmod-usb-storage 这三个怎么装进去呢?
    新手,希望博主能回一下,谢谢:)

    回复
    1. CD 文章作者

      1.未试过SD卡;
      2.刷官方版无法安装软件,应该是因为空间不够。
      参见“1 系统、挂载模式、挂载方法的选择”一节。

      回复
    2. fbox

      用imagebuilder给固件打包。参考这里https://www.coldawn.com/how-to-install-lede-on-tl-wr703n-and-enable-extroot/,我这里有已经打包好的,没有luci图形界面,重新打包就是牺牲luci来安装其他包,http://mirrors.njcit.cn/download/ss/tl-wr720n-v3/

      回复
      1. fbox

        打包参数,make image PROFILE=tl-wr720n-v3 PACKAGES=”block-mount kmod-fs-f2fs kmod-usb-storage mkf2fs ipset iptables-mod-tproxy”,如果提示过大,删除ipset

        回复

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注