更新
2017-08-08 如无较大错漏,本文不再更新,请尽快更新至LEDE; 感谢@ian提醒,先修改fstab再复制overlay,就不会出现 fstab 恢复原始状态的状况。重新更改该部分内容。 2017-05-29 LEDE已更新为17.01.1。 2017-02-22 目前LEDE已放出了第一个正式版,因此建议采用最新版:17.01.0。 2017-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,保存应用即可。
现在就可以安装很多你想安装的东西了。
查看u盘是否已经挂载
root@OpenWrt:~# blcok info
此处应该为 block info
先改 fstab 再复制 overlay 就不会出现 fstab 恢复原始状态
改天试试,如果可以就把内容改成你说的这样。
emmmmmm,试试。v3的机器?
手头上没有v3,尴尬。
v4成功了,感谢
仔细读完,操作之前想问两个个问题:
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.未试过SD卡;
2.刷官方版无法安装软件,应该是因为空间不够。
参见“1 系统、挂载模式、挂载方法的选择”一节。
用14.7的
http://downloads.openwrt.org/barrier_breaker/14.07/ar71xx/generic/openwrt-ar71xx-generic-tl-wr720n-v3-squashfs-factory.bin
用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/
打包参数,make image PROFILE=tl-wr720n-v3 PACKAGES=”block-mount kmod-fs-f2fs kmod-usb-storage mkf2fs ipset iptables-mod-tproxy”,如果提示过大,删除ipset