2 l+ [7 @( n7 m5 ~3 _* h
恩山上找到的,也不知道这里让不让发链接,我复制了一下
" J. v8 z9 N+ z: d/ @. J4 ~
/ v* K; W4 E0 `5 e固件备份,没有风险的,但是固件还原有一定风险,小白进阶的教程。目前光猫固件备份有 四种方式:
" u( F: ? J5 U4 R4 `1.通过芯片烧录器备份
" m6 W) k1 D& V K# d: U" q2.通过telnet备份
' |" z+ U( a( _7 L9 p7 k( p7 w3.通过ttl备份
% c7 P/ {+ o- c' z4.通过JTAg备份(不常见,这里不做介绍)# g+ j% L( ~+ |6 t! @. ?
( m! r0 d& g" q* ~( b下面我们先介绍最简单的第1种
- g* a! l& W) K# n, N/ d G$ p: u/ g' e1 H- O& L- k
把芯片用吹风机吹下来,最好是买个专业的焊台,带热风枪和烙铁的那种,把芯片放在编程器上直接读。非常简单,如果有不会的,可以回复我(记得贴图)。
0 r+ O' J( `7 Q% `+ U/ K1 n
$ s2 Q: {; W) Q$ I6 ?* S然后我们来说下最常见的备份方法,通过telnet、TTL备份1 K/ p4 V% k c# F* J5 X% ?, N
" S' K& Z ~0 {& Y' X) l进入系统后,我们再putty里回车(按Enter键,怕小白不懂),进入这个系统可以说就是Shell,也可以说linux# ?- L# C0 a3 C6 S
我们就能通过命令来完成我们的备份,首先第一个命令,如果显示无此命令呢,说明当前shell不完整,还需要补齐,这个我会另开一个帖子写
- H( r" e. o6 d6 N/ l2 k8 P1 C8 Y& @cat /proc/mtd
* Y! f+ v% @3 @9 H' J- n' o' B这里我们选择华为8145v为试验环境,别的光猫可能有不一样的地方5 N' P. {6 j, J: K2 W" e
dev: size erasesize name( }3 H- c' a% P" Z! N5 k
mtd0: 00100000 00020000 "2 g, Q: l$ M3 y% c+ Z; V# z
mtd1: 0ff00000 00020000 "ubifs"" B9 r: J7 D" }, Z, a( v
mtd2: 00000000 00000000 "reserved"
/ P7 e! F& c/ G$ imtd3: 0009b000 0001f000 "ubootA"
( S6 \1 \0 n# D# mmtd4: 0009b000 0001f000 "ubootB"# d' g* b) B2 u v* V) }! s2 r
mtd5: 0003e000 0001f000 "flash_configA"
" U1 Y& }. r7 V) R5 Emtd6: 0003e000 0001f000 "flash_configB"& _9 _' i$ E5 h: _& o$ M2 q; Z
mtd7: 0003e000 0001f000 "slave_paramA"& M. }6 ~3 o) v
mtd8: 0003e000 0001f000 "slave_paramB"
) G$ B p8 U" I7 s" ^" r- u! k8 xmtd9: 00307000 0001f000 "kernelA"
3 P8 W; w! j' h) I: o0 mmtd10: 00307000 0001f000 "kernelB"2 Z: B$ J. Z+ H2 R( s( C o R
mtd11: 02815000 0001f000 "rootfsA"; N. x" L ^# r5 d0 W
mtd12: 02815000 0001f000 "rootfsB"9 S N- T- o# N" H7 g1 \5 l
mtd13: 0003e000 0001f000 "wifi_paramA"
* N6 C2 [1 B5 y O# B/ k) Tmtd14: 0003e000 0001f000 "wifi_paramB"7 ]9 i/ [# U) b: Y/ a+ T0 z
mtd15: 0003e000 0001f000 "system_param"& n D" S8 k. v! ], H- l" v* k
mtd16: 0141a000 0001f000 "file_system"
0 R, ~& I; P1 @5 G6 a! f- omtd17: 0081d000 0001f000 "frameworkA"8 I. U0 [6 X( h( H+ p% ~ Y- r
mtd18: 0081d000 0001f000 "frameworkB"; b, C4 ]2 N, o7 F; \
mtd19: 07003000 0001f000 "apps"8 g8 B% T; O- {; E# x
7 t8 Z$ D# C. D/ z; A0 o* J看到这么多分区,以及地址,养成一个好习惯,复制下来存到文本中5 o% p, ~: G1 k% Q/ Q; w
mtd0: ="startcode"
, a( t, Y0 J% E, a0 m) bmtd1: ="ubifs"9 c! a) A Q; F0 Q" h
mtd2: = "reserved"4 c( J' L2 d$ W8 i
mtd3: = "ubootA"
2 E* _5 F2 g7 S4 ~) _& ]mtd4: = "ubootB"$ {% A5 c3 N5 p3 v% ]- @
mtd5: = "flash_configA"$ Z8 Y/ e( y+ L9 q, \. C! u
mtd6: = "flash_configB"
s1 C- s/ D. e; m; K m9 L2 i, Nmtd7: = "slave_paramA"
9 q5 J) J6 u) omtd8: = "slave_paramB"
! G4 t7 ?" z. ] f8 Ymtd9: = "kernelA"
) i! @' {5 i% r4 k$ vmtd10: = "kernelB"9 Z2 z. h" O3 ?* M8 h7 @/ P# |+ i$ A& U
mtd11: = "rootfsA"
3 v3 {7 z3 s7 @6 lmtd12: = "rootfsB"; i0 V: E" b4 c( D j
mtd13: = "wifi_paramA"; }8 q, z5 G5 {1 ?
mtd14: = "wifi_paramB"( Y6 f7 \( O$ ?* y: B# q- Y) X/ t
mtd15: = "system_param", W. ^8 V; `! I
mtd16: = "file_system"/ r"
3 _" L+ c+ w- F: Omtd17: = "frameworkA"
! S+ W& ]7 R/ i9 q3 ?6 h0 mmtd18: = "frameworkB"$ d9 ?8 M, O4 j, z
mtd19: = "apps": o, d$ J. M% I* G- {3 I/ J" ?
ubi0_13 = "jffs2"
& Y, F' D' k( F5 c2 e0 SA和B分区是一样的,所以只需备份其中一个即可,现在都设置为双启动,一个使用一个备份可以切换的,从设计角度讲& j4 Q; T* Z9 X* `, {0 ]0 q1 W! L
* M- Z: y R: p下面我们进行备份,首先你要准备一个U盘(fat32格式化,防止不认盘)插到光猫的接口上,如果光猫没接口,那就应该淘汰了,当然tftp大法也是可以的,太麻烦了,这里不介绍5 s$ `3 U' x7 g* C- U
据我所知从天翼网关1.0开始就配USB口了,因为AB分区都一样,所以只备份一个就可以了8 s% S8 V6 y; W8 {& Q, h/ ~
下面输入备份命令,每行输入一次
8 t0 M) r) C" l4 Zdd if=/dev/mtd0 of=/mnt/usb/USB_disc1/0.bin6 K% u9 j8 @/ C* g$ |
dd if=/dev/mtd1 of=/mnt/usb/USB_disc1/1.bin
- r! }+ Z) S" ?" d) G7 hdd if=/dev/mtd2 of=/mnt/usb/USB_disc1/2.bin
( n- J, p8 `3 L4 W' Bdd if=/dev/mtd3 of=/mnt/usb/USB_disc1/3-uboot.bin
6 b3 j h7 v7 p4 _ ~dd if=/dev/mtd5 of=/mnt/usb/USB_disc1/5.bin" f. j3 i; \! R6 C
dd if=/dev/mtd7 of=/mnt/usb/USB_disc1/7.bin
5 l. k! p4 S: G+ [3 H0 vdd if=/dev/mtd9 of=/mnt/usb/USB_disc1/9-kernel.bin7 g) H3 g/ B1 e
dd if=/dev/mtd11 of=/mnt/usb/USB_disc1/11-rootfs.bin
" L/ [4 e7 P! [3 C# W+ D" ] D* q* n" Edd if=/dev/mtd13 of=/mnt/usb/USB_disc1/13.bin
: e1 x) C& s0 c5 a& ndd if=/dev/mtd15 of=/mnt/usb/USB_disc1/15.bin
% w4 h. n# A! U# C- V8 O( Pdd if=/dev/mtd16 of=/mnt/usb/USB_disc1/16.bin1 K z3 ^0 @- F% U% e& n5 b. z
dd if=/dev/mtd17 of=/mnt/usb/USB_disc1/17.bin) A0 _4 T9 ^) U0 @
dd if=/dev/mtd19 of=/mnt/usb/USB_disc1/19.bin4
; ^9 C' r; k7 y- [0 Kdd if=/dev/ubi0_13 of=/mnt/usb/USB_disc1/0_13.bin |