7 n: H, Q* g, {/ i
恩山上找到的,也不知道这里让不让发链接,我复制了一下
6 V& C+ z6 Q5 c" w) O1 B$ J# O- `4 v( Q z
固件备份,没有风险的,但是固件还原有一定风险,小白进阶的教程。目前光猫固件备份有 四种方式:
+ x- H) a* I7 ?. J1.通过芯片烧录器备份 }( \; |7 A$ _
2.通过telnet备份
}! T( P3 K& |& _0 S; E6 n3.通过ttl备份
, o* e/ b+ ^% C9 P4.通过JTAg备份(不常见,这里不做介绍)
& x& m# c1 y" d, o9 b4 H2 I e5 g9 W5 J8 ]8 E& `- Y
下面我们先介绍最简单的第1种
4 O3 F/ A5 r3 l W1 I
2 b% o; N( x1 h4 {把芯片用吹风机吹下来,最好是买个专业的焊台,带热风枪和烙铁的那种,把芯片放在编程器上直接读。非常简单,如果有不会的,可以回复我(记得贴图)。7 G4 T0 ~! _0 I, l2 P: F
2 D7 k2 ~ N% ^7 v3 W4 J7 J) \然后我们来说下最常见的备份方法,通过telnet、TTL备份7 G* V# y2 v; T& S
e& R5 G' `' h
进入系统后,我们再putty里回车(按Enter键,怕小白不懂),进入这个系统可以说就是Shell,也可以说linux* U1 P5 `8 Q* e1 v
我们就能通过命令来完成我们的备份,首先第一个命令,如果显示无此命令呢,说明当前shell不完整,还需要补齐,这个我会另开一个帖子写
: L8 {. I- i4 R& Acat /proc/mtd
$ j6 O8 g/ S6 F0 K! y" B这里我们选择华为8145v为试验环境,别的光猫可能有不一样的地方3 F, Y& K/ J& T( {: Z) q7 ]+ p$ b/ `
dev: size erasesize name ]& X! i: i( Y
mtd0: 00100000 00020000 "
% H9 R* {9 w3 P3 E4 xmtd1: 0ff00000 00020000 "ubifs"4 W2 f0 k+ q; U9 _& M
mtd2: 00000000 00000000 "reserved"
6 ?' \0 x( R* G) Wmtd3: 0009b000 0001f000 "ubootA"3 k! b/ E6 W; O$ ~! f2 m: g3 m" }
mtd4: 0009b000 0001f000 "ubootB"2 `) X: e8 o0 i& |
mtd5: 0003e000 0001f000 "flash_configA"
1 b! `4 {9 @. l+ Cmtd6: 0003e000 0001f000 "flash_configB"
- P6 x. A/ H! i/ Z0 N3 Cmtd7: 0003e000 0001f000 "slave_paramA"$ e6 ?; r# w& Y7 j3 p+ H6 m" |6 J$ U
mtd8: 0003e000 0001f000 "slave_paramB"
" m% P; |; S) umtd9: 00307000 0001f000 "kernelA"
% p4 \' ^5 v3 B$ S2 D5 emtd10: 00307000 0001f000 "kernelB"
0 m! [" M, I# u# m, h" `, vmtd11: 02815000 0001f000 "rootfsA"
8 p {' n, {7 k, Q& x/ Qmtd12: 02815000 0001f000 "rootfsB"
/ S$ }2 ?, [# o6 r% J* |) nmtd13: 0003e000 0001f000 "wifi_paramA"
( G2 w- q& ]6 Gmtd14: 0003e000 0001f000 "wifi_paramB"
7 ^1 d# y+ k7 Y- \: w+ q; H+ U6 Ymtd15: 0003e000 0001f000 "system_param"
' x6 F; y% O! \* z( D' p* f3 N8 O @mtd16: 0141a000 0001f000 "file_system"
' P0 \8 r" u& ]mtd17: 0081d000 0001f000 "frameworkA"
- s- R5 ~8 y7 `* }) ^mtd18: 0081d000 0001f000 "frameworkB"
! P/ U. N9 ?4 H3 ]mtd19: 07003000 0001f000 "apps"' i2 o. d0 ^ E0 w
" \) H* X/ U3 i# k, G. T& G看到这么多分区,以及地址,养成一个好习惯,复制下来存到文本中
& }: G6 C* t, P5 nmtd0: ="startcode"6 h0 u3 C F; c! k4 F% l
mtd1: ="ubifs"
; [ m" n# b- Z5 N rmtd2: = "reserved"& I5 j9 G, s7 F! @! p9 v
mtd3: = "ubootA"
* J+ J' l5 ]2 b7 T$ s! jmtd4: = "ubootB"
% |2 V, L: E: h1 j1 w. mmtd5: = "flash_configA"
, g- }* j5 [7 C5 u! e% Qmtd6: = "flash_configB"+ F$ N \5 O& g; y# ^9 O
mtd7: = "slave_paramA"
- s2 e) k3 z7 f! i& Zmtd8: = "slave_paramB"
" j: s- X: r+ qmtd9: = "kernelA"
7 A8 Z1 R/ H" k" amtd10: = "kernelB"4 P# t: W1 |- i5 `* T) K8 F
mtd11: = "rootfsA"# A0 K! K. e2 ~. ^
mtd12: = "rootfsB"
- S) B Y$ d: g* d8 a( ~mtd13: = "wifi_paramA", I& N L; |$ D) {: b
mtd14: = "wifi_paramB"
9 s6 @) G& ?, F0 V" Q+ L& Gmtd15: = "system_param"$ r2 _% Q* _ ?
mtd16: = "file_system"/ r"
- I, F) z: I2 T1 i# f* Rmtd17: = "frameworkA"
2 v7 W4 R* D7 b9 Qmtd18: = "frameworkB"/ Y" @+ G/ x- y9 x5 A4 w9 [; x) E; w
mtd19: = "apps", t3 q# E) C. t! F* E
ubi0_13 = "jffs2"
j+ T2 _2 h) q+ ~7 \5 tA和B分区是一样的,所以只需备份其中一个即可,现在都设置为双启动,一个使用一个备份可以切换的,从设计角度讲
5 o. f% u7 `! H2 x3 y! W0 s2 m
* N6 G# c- O' o5 P$ B$ g, M6 I5 v下面我们进行备份,首先你要准备一个U盘(fat32格式化,防止不认盘)插到光猫的接口上,如果光猫没接口,那就应该淘汰了,当然tftp大法也是可以的,太麻烦了,这里不介绍5 F7 g; Z5 A5 n2 R8 m
据我所知从天翼网关1.0开始就配USB口了,因为AB分区都一样,所以只备份一个就可以了
5 |7 g) j( {! U7 P下面输入备份命令,每行输入一次
# M) u0 {. n) m. H# L4 Rdd if=/dev/mtd0 of=/mnt/usb/USB_disc1/0.bin
1 }2 |1 E* c0 ]* _- D# ~) Edd if=/dev/mtd1 of=/mnt/usb/USB_disc1/1.bin4 V0 z0 K& Y2 h' s9 ^, a
dd if=/dev/mtd2 of=/mnt/usb/USB_disc1/2.bin3 N/ V& P! O- z2 I7 Q( q
dd if=/dev/mtd3 of=/mnt/usb/USB_disc1/3-uboot.bin
. }+ |7 K3 C6 G( Zdd if=/dev/mtd5 of=/mnt/usb/USB_disc1/5.bin, O8 }/ E0 F4 ^1 O( O, t5 N: y
dd if=/dev/mtd7 of=/mnt/usb/USB_disc1/7.bin
0 _" r: e |% U) }; T2 C8 T8 Mdd if=/dev/mtd9 of=/mnt/usb/USB_disc1/9-kernel.bin
; B4 D3 H m1 p% x- J' b) p& |dd if=/dev/mtd11 of=/mnt/usb/USB_disc1/11-rootfs.bin
. U. R) Y1 b9 O* bdd if=/dev/mtd13 of=/mnt/usb/USB_disc1/13.bin$ d1 a [" t; k- [3 l# i, N0 Z
dd if=/dev/mtd15 of=/mnt/usb/USB_disc1/15.bin' M3 P) q7 N; l& p
dd if=/dev/mtd16 of=/mnt/usb/USB_disc1/16.bin
$ V3 k% Y$ Y J" e* udd if=/dev/mtd17 of=/mnt/usb/USB_disc1/17.bin
8 N/ k/ m# H, Add if=/dev/mtd19 of=/mnt/usb/USB_disc1/19.bin44 H: f3 m. t+ N/ ^7 h! L3 b
dd if=/dev/ubi0_13 of=/mnt/usb/USB_disc1/0_13.bin |