5 h( V( g' Q8 C. x5 F恩山上找到的,也不知道这里让不让发链接,我复制了一下
) I8 X( s1 i) r+ q: L; }. {' b, Z! ?0 X! f* b* B5 P( e! E
固件备份,没有风险的,但是固件还原有一定风险,小白进阶的教程。目前光猫固件备份有 四种方式:- l& W Q- Z1 n
1.通过芯片烧录器备份- A3 P5 N4 Y$ L
2.通过telnet备份
7 B4 j; N! P+ w G3.通过ttl备份
8 T( T5 R9 Z/ k1 s4.通过JTAg备份(不常见,这里不做介绍)
2 K1 f, s6 P7 B4 G; G4 x* i
P3 J6 \& L6 u8 U+ L+ K) K: l5 h下面我们先介绍最简单的第1种
! V3 R( K" n) W; Z) R# E! n4 {5 e2 z: P* c2 O
把芯片用吹风机吹下来,最好是买个专业的焊台,带热风枪和烙铁的那种,把芯片放在编程器上直接读。非常简单,如果有不会的,可以回复我(记得贴图)。
- k- i/ d+ o8 I: Y$ P2 x9 I3 B* ]7 x! z9 P
然后我们来说下最常见的备份方法,通过telnet、TTL备份
/ Q. p0 ?) T5 |, l' P
8 ~: t3 @& j) m; X: D进入系统后,我们再putty里回车(按Enter键,怕小白不懂),进入这个系统可以说就是Shell,也可以说linux
$ _; d& p6 t; `' @2 u# e我们就能通过命令来完成我们的备份,首先第一个命令,如果显示无此命令呢,说明当前shell不完整,还需要补齐,这个我会另开一个帖子写
, }; p5 y0 k2 H6 ~, |$ mcat /proc/mtd
. z/ F2 s9 ^. a4 V# Q% o' v; F* g这里我们选择华为8145v为试验环境,别的光猫可能有不一样的地方. H6 s) }1 d: j# \) }( T
dev: size erasesize name0 G1 u5 e4 K" y( D1 ?1 y5 ?% Z7 i
mtd0: 00100000 00020000 "% w h1 X! K4 t
mtd1: 0ff00000 00020000 "ubifs"# o5 P+ ?: B% O
mtd2: 00000000 00000000 "reserved"
, c! ]. _* c1 k+ wmtd3: 0009b000 0001f000 "ubootA"
4 @4 v5 e) ]' d2 w5 N" a; ^4 F) y% Gmtd4: 0009b000 0001f000 "ubootB"
$ T3 J9 N# e4 Xmtd5: 0003e000 0001f000 "flash_configA"/ d( W7 R' Z( r( E
mtd6: 0003e000 0001f000 "flash_configB"! S f2 G) a! ?+ ?% ?. c
mtd7: 0003e000 0001f000 "slave_paramA" H) C) u* Y: m. j3 x: B
mtd8: 0003e000 0001f000 "slave_paramB"& A9 Q* y0 M6 i7 r, Q' G" y
mtd9: 00307000 0001f000 "kernelA"
: s) A* t- D3 W; u( }. `mtd10: 00307000 0001f000 "kernelB"& @2 A- M. ~2 c
mtd11: 02815000 0001f000 "rootfsA"
9 g" H" J5 w c% `: O* Umtd12: 02815000 0001f000 "rootfsB"
; a# {# l" n' N& R+ b* Hmtd13: 0003e000 0001f000 "wifi_paramA"
" I' \) o! v6 q3 vmtd14: 0003e000 0001f000 "wifi_paramB"7 C' z5 y6 m3 c1 b
mtd15: 0003e000 0001f000 "system_param"
3 S; }) J0 E3 B' {% Cmtd16: 0141a000 0001f000 "file_system"
) l% F$ w$ c0 j* O" k" V( Z: b+ Wmtd17: 0081d000 0001f000 "frameworkA"2 H: q$ d: S1 }! @4 y6 t- P
mtd18: 0081d000 0001f000 "frameworkB"# I, _0 ?* [) h3 C* L$ c( E
mtd19: 07003000 0001f000 "apps"; i9 L2 I4 f D. O9 O6 I. C
/ ^% I4 B# |* n9 H/ G5 t
看到这么多分区,以及地址,养成一个好习惯,复制下来存到文本中. m A( X2 A. I6 V. t2 }6 f
mtd0: ="startcode"
1 v3 V0 M5 p# Q. a. ~' L ?3 V' qmtd1: ="ubifs"* d9 v, Q) h# ^% F4 N* k2 b
mtd2: = "reserved"+ a% F( k$ G4 h
mtd3: = "ubootA"5 F8 A1 `& }! P8 \
mtd4: = "ubootB" G: W! Y7 p! i2 D+ Y+ j1 ]( s
mtd5: = "flash_configA"
& S' ~) H# A& d9 {/ a& b. T. H2 cmtd6: = "flash_configB"
/ x) E S& m2 j( R% omtd7: = "slave_paramA"
+ y+ ~. ?$ g) H& ]2 Lmtd8: = "slave_paramB"* G' f' d: x' J8 p, T
mtd9: = "kernelA". o7 [' J0 _4 C
mtd10: = "kernelB"
, E% _4 P, j8 w$ A% b6 R8 zmtd11: = "rootfsA"
1 t( |: w8 L& l# [mtd12: = "rootfsB", `& \+ a, y( d5 |4 j
mtd13: = "wifi_paramA"/ d' a2 B1 ~- _' a/ D: M0 @" M6 v
mtd14: = "wifi_paramB"& I9 V2 o- z' M" v
mtd15: = "system_param"7 `1 C7 A2 O% E" Y; {0 _ i/ S0 s/ _
mtd16: = "file_system"/ r"
& I C7 R. ? W8 y; y4 s5 \mtd17: = "frameworkA"# Z+ [) ?9 O$ ~( L3 Y$ j
mtd18: = "frameworkB"
$ F! x& v, R' ^ {% imtd19: = "apps"
2 T$ X7 i+ s( U4 K2 S( g5 N# E/ Vubi0_13 = "jffs2"
3 h$ Y+ x5 ^8 m* A7 @0 ]3 C3 @A和B分区是一样的,所以只需备份其中一个即可,现在都设置为双启动,一个使用一个备份可以切换的,从设计角度讲
z9 Y% y n2 l9 E; ]' z" `+ w7 t) u! R3 ~! w( A; [0 p- e
下面我们进行备份,首先你要准备一个U盘(fat32格式化,防止不认盘)插到光猫的接口上,如果光猫没接口,那就应该淘汰了,当然tftp大法也是可以的,太麻烦了,这里不介绍
' b, C; }# c! O0 ]9 B' f4 {' H7 u据我所知从天翼网关1.0开始就配USB口了,因为AB分区都一样,所以只备份一个就可以了& a/ s O" A2 O0 i
下面输入备份命令,每行输入一次
: c5 t2 u/ e5 Z( G9 c O9 S; kdd if=/dev/mtd0 of=/mnt/usb/USB_disc1/0.bin$ o3 O, Z4 s( t" C
dd if=/dev/mtd1 of=/mnt/usb/USB_disc1/1.bin
: L' b! W: T/ gdd if=/dev/mtd2 of=/mnt/usb/USB_disc1/2.bin# u: f3 ]- t; d# b
dd if=/dev/mtd3 of=/mnt/usb/USB_disc1/3-uboot.bin( U7 G7 }( \8 s) x
dd if=/dev/mtd5 of=/mnt/usb/USB_disc1/5.bin% ?! G" k& K% t3 @% \- ~- u
dd if=/dev/mtd7 of=/mnt/usb/USB_disc1/7.bin- H7 l# O* q- c& F
dd if=/dev/mtd9 of=/mnt/usb/USB_disc1/9-kernel.bin
3 Z8 S+ Z$ d" D7 idd if=/dev/mtd11 of=/mnt/usb/USB_disc1/11-rootfs.bin) x- _0 B5 \- A6 R. z' P9 c Z
dd if=/dev/mtd13 of=/mnt/usb/USB_disc1/13.bin
$ U4 j) U s, [( f5 C2 G1 L vdd if=/dev/mtd15 of=/mnt/usb/USB_disc1/15.bin
+ I( k, I# E6 \# f. v4 Xdd if=/dev/mtd16 of=/mnt/usb/USB_disc1/16.bin
. d9 d8 N4 Q. W7 Y$ c' ?. w7 [, Cdd if=/dev/mtd17 of=/mnt/usb/USB_disc1/17.bin
2 b. C6 g2 e9 M: q L4 ]6 h- g6 ?dd if=/dev/mtd19 of=/mnt/usb/USB_disc1/19.bin4
% W0 ~. Q2 E3 Y8 P3 Edd if=/dev/ubi0_13 of=/mnt/usb/USB_disc1/0_13.bin |