0 T6 i: X4 e9 s7 _, n0 I. u
恩山上找到的,也不知道这里让不让发链接,我复制了一下
& B3 v7 Y4 @7 u( {. A4 T& J: F7 R& a4 m" |: d# X$ P3 v$ S8 G
固件备份,没有风险的,但是固件还原有一定风险,小白进阶的教程。目前光猫固件备份有 四种方式:9 H+ U' \$ Q- d- n a3 N: J% q
1.通过芯片烧录器备份1 y0 X; H: N) i/ i$ z
2.通过telnet备份! n% k& I( N, u& G+ R+ ~; A' r* s
3.通过ttl备份# Z* A. o$ \, M! y ~0 K5 w7 o9 T
4.通过JTAg备份(不常见,这里不做介绍)' k4 L# @) o* j9 L
0 {" q# q1 e# E
下面我们先介绍最简单的第1种
* Y% W% n5 g/ Z, V. t, ^3 \. J; Z/ t. q
+ p0 o/ z% f9 o+ t5 j8 S把芯片用吹风机吹下来,最好是买个专业的焊台,带热风枪和烙铁的那种,把芯片放在编程器上直接读。非常简单,如果有不会的,可以回复我(记得贴图)。
- ^. Y9 o |% N. m- \, |
& _( K! n" U! m& k, I3 J! h然后我们来说下最常见的备份方法,通过telnet、TTL备份* b7 n& B; W) f/ |% l- u) N( n8 o+ z- C2 d
* B. p( p# E1 j$ K& X/ v进入系统后,我们再putty里回车(按Enter键,怕小白不懂),进入这个系统可以说就是Shell,也可以说linux4 S/ K. w' o( \. P
我们就能通过命令来完成我们的备份,首先第一个命令,如果显示无此命令呢,说明当前shell不完整,还需要补齐,这个我会另开一个帖子写
7 ?5 G; q; W b# w' V' r. T7 q9 Pcat /proc/mtd U8 D5 k7 ?$ G# R5 W3 Y
这里我们选择华为8145v为试验环境,别的光猫可能有不一样的地方0 m, D0 [; e9 r# _3 U- r, Q
dev: size erasesize name
0 c. z; z* O& \# S! I6 |mtd0: 00100000 00020000 "( j2 b2 q! }! e; F7 {$ `- D' X
mtd1: 0ff00000 00020000 "ubifs"
8 y) z& Q/ e$ d- ~$ c( bmtd2: 00000000 00000000 "reserved"
) j* N/ I' C h! ?' Fmtd3: 0009b000 0001f000 "ubootA"
- H* g3 ^) k( S" S& cmtd4: 0009b000 0001f000 "ubootB"# K& e; z9 _& p* |+ o; F3 y
mtd5: 0003e000 0001f000 "flash_configA"8 c4 u. B$ d2 R7 O; @6 u
mtd6: 0003e000 0001f000 "flash_configB"
, T* U( |: A+ W$ W; bmtd7: 0003e000 0001f000 "slave_paramA"1 ^) j) U) p& W% O: ?- [
mtd8: 0003e000 0001f000 "slave_paramB"& ]' m: ~; Z7 u$ u: T; A, Z$ V! d5 z
mtd9: 00307000 0001f000 "kernelA"$ ?" K4 _- k. Y
mtd10: 00307000 0001f000 "kernelB") E& r9 n( t$ _5 j! D L
mtd11: 02815000 0001f000 "rootfsA"
2 l) `! b1 I: r1 Q* B3 D lmtd12: 02815000 0001f000 "rootfsB"4 Q7 ]7 q" V- J, [
mtd13: 0003e000 0001f000 "wifi_paramA"( h* g3 Q% R0 L1 j! @
mtd14: 0003e000 0001f000 "wifi_paramB"
- `+ n1 W o; m& N% t/ A# o& U* }mtd15: 0003e000 0001f000 "system_param"& h5 t, S) i% Z$ c7 c( ~7 V7 `
mtd16: 0141a000 0001f000 "file_system"
) V3 u! H+ m6 hmtd17: 0081d000 0001f000 "frameworkA"
- w' G* ?3 R5 z/ c8 Emtd18: 0081d000 0001f000 "frameworkB"
% F4 x' y5 [, q7 e% u K) ~2 @! \mtd19: 07003000 0001f000 "apps"6 _ Y- K$ ]" q
1 v) p: j$ O5 M1 G1 Q2 Z! o
看到这么多分区,以及地址,养成一个好习惯,复制下来存到文本中' F/ \7 P5 q; `' q" z$ Q: f
mtd0: ="startcode"
3 h2 H/ P, f/ H) D, ^mtd1: ="ubifs"
! t7 i! z2 S3 G* c8 A5 \/ rmtd2: = "reserved"
; r, S! _; C1 ]3 \( wmtd3: = "ubootA"* V4 P' v1 O- {. D
mtd4: = "ubootB"( U- ?" E6 j# L! i* I/ _7 R
mtd5: = "flash_configA"
5 Y6 ~- Z/ V5 W) r3 Z" E* tmtd6: = "flash_configB"
2 ~3 O' ~; T# X v! p4 Vmtd7: = "slave_paramA"7 C1 ]6 W% v& X
mtd8: = "slave_paramB"! w C3 _" s: M% F! r
mtd9: = "kernelA"
, N# ~, ~2 k& Y( D C. x( i' mmtd10: = "kernelB"+ t. Q/ M- \' r/ D
mtd11: = "rootfsA": n! V# x- y @6 L* ?
mtd12: = "rootfsB"
: m6 u0 h4 a9 Z/ }$ }+ omtd13: = "wifi_paramA"
0 H, D! a. F* l' F% F( j7 o) q" _9 X1 qmtd14: = "wifi_paramB"6 |" i( F7 c$ |( M) k
mtd15: = "system_param"6 o/ l0 m" Q6 a5 R) H1 @7 s
mtd16: = "file_system"/ r"
3 I% Z6 h7 s$ v# N! e% J; C9 Hmtd17: = "frameworkA"
3 Q$ y2 _) q2 h) ~ }5 }mtd18: = "frameworkB". I9 i, r# P5 U5 F+ R: s' [* q! L4 P
mtd19: = "apps"
8 `% ~, i9 }4 d- c# j0 {8 m% q1 cubi0_13 = "jffs2"9 r* c7 U" [ u4 V [6 a4 `
A和B分区是一样的,所以只需备份其中一个即可,现在都设置为双启动,一个使用一个备份可以切换的,从设计角度讲3 b$ M Z; k4 H# j7 E
# ?2 o9 i- Z+ _6 I3 y下面我们进行备份,首先你要准备一个U盘(fat32格式化,防止不认盘)插到光猫的接口上,如果光猫没接口,那就应该淘汰了,当然tftp大法也是可以的,太麻烦了,这里不介绍
# K# @( U! r- `' n; n6 |9 b9 g, x据我所知从天翼网关1.0开始就配USB口了,因为AB分区都一样,所以只备份一个就可以了
' r5 e& u& i6 o9 T0 ?1 V/ [/ L下面输入备份命令,每行输入一次; {- z) s0 ?2 j' `8 V4 j
dd if=/dev/mtd0 of=/mnt/usb/USB_disc1/0.bin0 g! a- I6 {8 A& {, t+ f J; e+ Z
dd if=/dev/mtd1 of=/mnt/usb/USB_disc1/1.bin; D5 b& c5 h. {5 z
dd if=/dev/mtd2 of=/mnt/usb/USB_disc1/2.bin. @- b5 n3 ^% ~, T ]- f# }$ k
dd if=/dev/mtd3 of=/mnt/usb/USB_disc1/3-uboot.bin
) X7 B2 d; w/ G6 ldd if=/dev/mtd5 of=/mnt/usb/USB_disc1/5.bin2 O* _' R6 @1 M0 Y2 a8 ~3 s
dd if=/dev/mtd7 of=/mnt/usb/USB_disc1/7.bin
2 D% B' L, {7 [+ I; \( [$ gdd if=/dev/mtd9 of=/mnt/usb/USB_disc1/9-kernel.bin/ |5 l3 |4 z' X' H
dd if=/dev/mtd11 of=/mnt/usb/USB_disc1/11-rootfs.bin& w; \3 E9 ^* U/ v3 _ U6 a
dd if=/dev/mtd13 of=/mnt/usb/USB_disc1/13.bin
9 J. ~" ^' e4 _0 R# o& xdd if=/dev/mtd15 of=/mnt/usb/USB_disc1/15.bin
# J" q( X/ i7 {% `7 odd if=/dev/mtd16 of=/mnt/usb/USB_disc1/16.bin. a- I4 @0 _. W
dd if=/dev/mtd17 of=/mnt/usb/USB_disc1/17.bin( @0 Q7 [3 v5 I1 w, q
dd if=/dev/mtd19 of=/mnt/usb/USB_disc1/19.bin4
) ^* W* h e( rdd if=/dev/ubi0_13 of=/mnt/usb/USB_disc1/0_13.bin |