: k( o2 l: k6 G7 o' _
恩山上找的,您试一下,谢谢了 , b9 L# R1 \* ~. c: D. K' u7 v
! w5 c% Q9 `, a0 K+ W5 q# H1 X
固件备份,没有风险的,但是固件还原有一定风险,小白进阶的教程。目前光猫固件备份有 四种方式:' d! Z. ^/ G$ I' f7 o
1.通过芯片烧录器备份
" L! F$ D3 I: l% m. H2.通过telnet备份* ^( M5 y! W8 E9 k8 G
3.通过ttl备份
3 A- g0 s, R9 A' s2 Y/ K4.通过JTAg备份(不常见,这里不做介绍)9 B5 F0 ~& ?2 T! s% Y! d5 t
3 Y X! U5 a3 o I. P# a+ M3 C下面我们先介绍最简单的第1种2 }1 k* [+ Q7 I0 ?
+ S# z$ N4 R* t把芯片用吹风机吹下来,最好是买个专业的焊台,带热风枪和烙铁的那种,把芯片放在编程器上直接读。非常简单,如果有不会的,可以回复我(记得贴图)。
7 W4 P' `: f" j' |2 V! V) n
* L2 M7 X% G/ q* @: h( P6 ]! O然后我们来说下最常见的备份方法,通过telnet、TTL备份9 S. l9 k% c" T0 D
) J- {+ l4 t2 O1 ~! j# X* l: q9 u进入系统后,我们再putty里回车(按Enter键,怕小白不懂),进入这个系统可以说就是Shell,也可以说linux
' z/ k( c: r `+ A/ N8 T( m我们就能通过命令来完成我们的备份,首先第一个命令,如果显示无此命令呢,说明当前shell不完整,还需要补齐,这个我会另开一个帖子写
1 } l* R0 A5 L8 m; Icat /proc/mtd ?! u6 @/ m4 J- {. t( o
这里我们选择华为8145v为试验环境,别的光猫可能有不一样的地方
- V3 `; T1 k2 y/ X; v1 zdev: size erasesize name
0 t, j* ^5 G; Q, kmtd0: 00100000 00020000 "
8 Y# M3 h [$ z/ e o5 \mtd1: 0ff00000 00020000 "ubifs"
+ \" n% B& ?. b5 h C, I Jmtd2: 00000000 00000000 "reserved"
% k& u' M& ?# w e( C* N% \mtd3: 0009b000 0001f000 "ubootA"6 l" Z3 u( ?- i! [1 }; g- \
mtd4: 0009b000 0001f000 "ubootB"1 l0 `. G6 v$ _, v) O: D9 e( Q
mtd5: 0003e000 0001f000 "flash_configA"' C# G) F3 H0 g0 G) ~
mtd6: 0003e000 0001f000 "flash_configB"
! _. s( U/ `8 U8 B! V3 vmtd7: 0003e000 0001f000 "slave_paramA"
/ e& o! C1 u0 C7 \' A2 b, m/ F! ~: \mtd8: 0003e000 0001f000 "slave_paramB"' L: @4 {; P: U' R) W+ c
mtd9: 00307000 0001f000 "kernelA"
( I8 Y, ~8 S1 C! e. k6 Dmtd10: 00307000 0001f000 "kernelB"
9 d. ]; `9 g pmtd11: 02815000 0001f000 "rootfsA"
0 n) `% z# ?7 N8 _' t2 C* Lmtd12: 02815000 0001f000 "rootfsB"
6 w8 f! A E9 Q7 W: A" I! hmtd13: 0003e000 0001f000 "wifi_paramA"3 E7 X4 N* P! V+ l- e4 {' P
mtd14: 0003e000 0001f000 "wifi_paramB"8 v6 k" F2 i( ]) y- S9 @3 P
mtd15: 0003e000 0001f000 "system_param"- i( G/ m9 i; R
mtd16: 0141a000 0001f000 "file_system"
, D# k {$ D( h2 O N5 P2 \mtd17: 0081d000 0001f000 "frameworkA"
7 F/ m2 I7 a( ?) Imtd18: 0081d000 0001f000 "frameworkB"
1 t( d$ L# U6 \mtd19: 07003000 0001f000 "apps"# }1 H' Z: l6 z, B7 X! l
' }( y2 F/ J6 ^" ]* c
看到这么多分区,以及地址,养成一个好习惯,复制下来存到文本中
! d2 T. u/ K9 d5 Y6 m) wmtd0: ="startcode"
) Q) k0 U1 I; Lmtd1: ="ubifs"6 l( z2 Z& C+ |. o4 P3 U
mtd2: = "reserved"( E. ^4 X& Z! T3 p
mtd3: = "ubootA"
0 Q9 q9 O( O4 Y2 Tmtd4: = "ubootB"
# ]4 v, T: F* T: [3 J, fmtd5: = "flash_configA"1 G6 `8 V: m; a
mtd6: = "flash_configB"
% u) ]9 O+ x) Q4 q- J6 Ymtd7: = "slave_paramA"/ ~6 z8 Q. k1 }$ Q7 ]
mtd8: = "slave_paramB"
. m7 m1 t$ p0 umtd9: = "kernelA" z) t) A- }( M) r
mtd10: = "kernelB"
$ G( Q/ v3 t, amtd11: = "rootfsA"6 I$ s m9 \; g' Q4 I
mtd12: = "rootfsB"7 d$ k. ~1 r6 o( J* }6 x1 V
mtd13: = "wifi_paramA"1 W0 V- @ D/ @/ Z
mtd14: = "wifi_paramB"# ?% s1 l E3 U* X8 ]$ I) x
mtd15: = "system_param"+ A# A' X2 g0 o# s* y
mtd16: = "file_system"/ r"7 I9 t0 N! n8 w$ c, d
mtd17: = "frameworkA"
- R: `7 Z! J( ~) nmtd18: = "frameworkB"
! a' L! C- P1 }+ {" m4 imtd19: = "apps"7 w+ i, g$ N+ M, }1 ]- o
ubi0_13 = "jffs2"6 p3 L/ l) f& N2 X
A和B分区是一样的,所以只需备份其中一个即可,现在都设置为双启动,一个使用一个备份可以切换的,从设计角度讲7 G Z2 r6 q w$ B( S Y
) v* X4 w S; A4 E下面我们进行备份,首先你要准备一个U盘(fat32格式化,防止不认盘)插到光猫的接口上,如果光猫没接口,那就应该淘汰了,当然tftp大法也是可以的,太麻烦了,这里不介绍
! J! |$ ~& G# O0 k# O据我所知从天翼网关1.0开始就配USB口了,因为AB分区都一样,所以只备份一个就可以了
- K2 \ D O) y# b3 `下面输入备份命令,每行输入一次/ i1 G, E7 D3 ]2 B' ~
dd if=/dev/mtd0 of=/mnt/usb/USB_disc1/0.bin: `" Z! M5 A. k( [' i2 X
dd if=/dev/mtd1 of=/mnt/usb/USB_disc1/1.bin; K8 n4 s. s5 X3 S! O9 F
dd if=/dev/mtd2 of=/mnt/usb/USB_disc1/2.bin
3 ]. H6 p: x) l. [dd if=/dev/mtd3 of=/mnt/usb/USB_disc1/3-uboot.bin
p, K+ M, ? m7 K f m/ Vdd if=/dev/mtd5 of=/mnt/usb/USB_disc1/5.bin
& t8 T5 \& Q. _, G( B ` Ndd if=/dev/mtd7 of=/mnt/usb/USB_disc1/7.bin
+ c8 O! N9 z' C8 c6 ~dd if=/dev/mtd9 of=/mnt/usb/USB_disc1/9-kernel.bin
; g4 ^: y3 n" D, B" f8 ]. @: p2 [dd if=/dev/mtd11 of=/mnt/usb/USB_disc1/11-rootfs.bin6 d. e3 F4 T4 x# l' e/ S
dd if=/dev/mtd13 of=/mnt/usb/USB_disc1/13.bin2 Q% y% P, I! \- Z
dd if=/dev/mtd15 of=/mnt/usb/USB_disc1/15.bin
$ x1 o! F! l" E; C5 w+ I' hdd if=/dev/mtd16 of=/mnt/usb/USB_disc1/16.bin
+ C( z- k' L6 h. B; ]' `2 L6 Vdd if=/dev/mtd17 of=/mnt/usb/USB_disc1/17.bin/ J8 E. ?; q2 C, C' n9 F) j, _
dd if=/dev/mtd19 of=/mnt/usb/USB_disc1/19.bin4. l3 w4 {5 y! R; C" Z- {7 |
dd if=/dev/ubi0_13 of=/mnt/usb/USB_disc1/0_13.bin |