UBNT EdgeRouter Lite 更换U盘
Link:https://sskaje.me/2016/01/ubnt-edgerouter-lite-%e6%9b%b4%e6%8d%a2u%e7%9b%98/
本文需要Linux基础,不会的还是找人帮忙吧。
EdgeRoute Lite 的磁盘性能实在不敢恭维,而且稳定性也堪忧。之前出现过好几次IO错误,都没当回事,凑合就不管了,最近一次重启,结果直接就起不来了。
拆机
没拍拆机图,拆机很简单,底下的两个螺丝卸掉就行。地线那个不用动。

拆完之后就能看到一个小U盘了。


算了下USB口和pcb板之间的缝隙大小,最后京东上能买的还有点名气的U盘也就一个台电的而已。我没买USB 3.0的,觉得用不上,现在有点后悔了。
创建新USB磁盘下一步是要把固件写到U盘上。参考的项目是 https://github.com/vyos/emrk。相关操作是在Linux PC上执行的。
从官网下载固件:http://www.ubnt.com.cn/download/
下载得到的是一个tarball.
我找了个U盘,装了个debian的live cd.
装好U盘之后,先分区。
我的U盘磁盘设备是 sdc。
debian的live cd默认没有parted,所以直接用fdisk了。基本命令如下(仅做示意,没有截图):
# fdisk /dev/sdc
> d -------- 删除所有分区表
> n -------- 创建第一个primary分区,大小至少150MB,我分了4GB
> t -------- 修改第一个分区的类型标志,改为 b FAT32
> n -------- 创建第二个primary分区,至少1900MB,我分了快11个G,默认已经是Linux了。
> w -------- 保存分区表
复制代码fdisk操作之前务必把已挂载的分区全下掉。
下一步格式化:
如果你没有 mkfs.vfat,可能需要安装 dosfstools
apt-get install dosfstools
复制代码格式化命令如下:
# mkfs.vfat /dev/sdc1
# mkfs.ext3 /dev/sdc2
复制代码最后一步,释放文件
命令文件:https://github.com/sskaje/emrk/blob/master/bin/emrk-extract-to-usb
操作命令
./emrk-extract-to-usb /dev/sdc ERLitexx.tar
复制代码
Console
我拿MacBook Pro+USB Console线搞的。推荐 OS X 下的串口工具 CoolTerm,下载地址:CoolTerm
需要配置 bit rates 为 115200。
进去之后看到如下错误信息
U-Boot 1.1.1 (UBNT Build ID: 4493936-g009d77b) (Build time: Sep 20 2012 - 15:48:51)
BIST check passed.
UBNT_E100 r1:2, r2:14, serial #: XXXXXXXXXX
Core clock: 500 MHz, DDR clock: 266 MHz (532 Mhz data rate)
DRAM: 512 MB
Clearing DRAM....... done
Flash: 4 MB
Net: octeth0, octeth1, octeth2
USB: (port 0) scanning bus for devices...
USB device not responding, giving up (status=0)
1 USB Devices found
scanning bus for storage devices...
No device found. Not initialized?
... 0
** Can't read from device 0 **
** Unable to use usb 0:1 for fatload **
argv[2]: coremask=0x3
argv[3]: root=/dev/sda2
argv[4]: rootdelay=15
argv[5]: rw
argv[6]: rootsqimg=squashfs.img
argv[7]: rootsqwdir=w
argv[8]: mtdparts=phys_mapped_flash:512k(boot0),512k(boot1),64k@3072k(eeprom)
## No elf image at address 0x09f00000
Octeon ubnt_e100#
复制代码搜了搜解决方案
Octeon ubnt_e100# usb reset
(Re)start USB...
USB: (port 0) scanning bus for devices... 1 USB Devices found
scanning bus for storage devices...
Device 0: Vendor: Teclast Prod.: CoolFlash Rev: 1100
Type: Removable Hard Disk
Capacity: 15300.0 MB = 14.9 GB (31334400 x 512)
Octeon ubnt_e100#
(Re)start USB...
USB: (port 0) scanning bus for devices... 1 USB Devices found
scanning bus for storage devices...
Device 0: Vendor: Teclast Prod.: CoolFlash Rev: 1100
Type: Removable Hard Disk
Capacity: 15300.0 MB = 14.9 GB (31334400 x 512)
Octeon ubnt_e100#
复制代码比较不爽的是,重启后依旧会’Unable to use usb 0:1 for fatload‘。
解决方案是改bootcmd的env参数,使用setenv改完后,务必使用saveenv保存。
Octeon ubnt_e100# setenv bootcmd 'sleep 10;usb reset; fatload usb 0 $loadaddr vmlinux.64;bootoctlinux $loadaddr coremask=0x3 root=/dev/sda2 rootdelay=15 rw rootsqimg=squashfs.img rootsqwdir=w mtdparts=phys_mapped_flash:512k(boot0),512k(boot1),64k@3072k(eeprom)'
Octeon ubnt_e100# saveenv
Saving Environment to Flash...
Un-Protected 1 sectors
Erasing Flash...
. done
Erased 1 sectors
Writing to Flash... 4....3....2....1....done
Protected 1 sectors
Octeon ubnt_e100#
复制代码操作完成后就放心大胆地使用新的EdgeRouter Lite吧。

参考链接:https://community.ubnt.com/t5/Ed ... y/m-p/851038#M31382