" ?6 x& p1 z: r1 q L0 w' _恩山上找到的,也不知道这里让不让发链接,我复制了一下4 x1 k" [9 q7 [$ V# X' U- s
2 Z4 N. |, g3 e! ^# { T7 \' h
固件备份,没有风险的,但是固件还原有一定风险,小白进阶的教程。目前光猫固件备份有 四种方式:4 B/ D% H3 L; r- U# v, m6 P7 u
1.通过芯片烧录器备份: V' @/ r1 Z: J; `0 X* `4 v
2.通过telnet备份3 e9 R2 D, r- u4 ]
3.通过ttl备份
6 ^9 _) v7 t- e; t( W4.通过JTAg备份(不常见,这里不做介绍) r; ^3 l! X/ n5 `4 ?9 a( R
) k8 M* V% y3 n3 W$ ?, ^下面我们先介绍最简单的第1种: B) i W9 V* a6 Q, U3 W( L
& t: {% u n3 w- d: k3 ]把芯片用吹风机吹下来,最好是买个专业的焊台,带热风枪和烙铁的那种,把芯片放在编程器上直接读。非常简单,如果有不会的,可以回复我(记得贴图)。
. x8 D( Z& T. Q1 m/ D) v6 I' ~$ i" f# N) \5 W
然后我们来说下最常见的备份方法,通过telnet、TTL备份
9 [, o& X: b: Z) ?( O0 k- a- M, s: W8 _. |. I
进入系统后,我们再putty里回车(按Enter键,怕小白不懂),进入这个系统可以说就是Shell,也可以说linux
6 J( L8 |$ L; @: r我们就能通过命令来完成我们的备份,首先第一个命令,如果显示无此命令呢,说明当前shell不完整,还需要补齐,这个我会另开一个帖子写% G2 V, C. Y' ]$ Z- r3 C
cat /proc/mtd
+ D* R& K: J6 C0 x9 i8 ]" e4 }9 B% X8 ]这里我们选择华为8145v为试验环境,别的光猫可能有不一样的地方
% S) K: U# s6 b+ p7 wdev: size erasesize name% v8 l& g7 M( |, t5 C* T' ]& N
mtd0: 00100000 00020000 "" o2 s/ p+ r0 ~* ?; K
mtd1: 0ff00000 00020000 "ubifs"
8 u& {; K- _! umtd2: 00000000 00000000 "reserved"+ X5 ^+ r: f$ ^7 u
mtd3: 0009b000 0001f000 "ubootA"
& D x' _ t$ O$ _mtd4: 0009b000 0001f000 "ubootB"' N k( h" J/ M3 e
mtd5: 0003e000 0001f000 "flash_configA". g1 N) }2 v W9 X4 l
mtd6: 0003e000 0001f000 "flash_configB"9 S8 W2 M! r) h4 j
mtd7: 0003e000 0001f000 "slave_paramA") M" Q1 _* g4 s2 r7 n
mtd8: 0003e000 0001f000 "slave_paramB"
' P( _6 M. |7 j4 u# _" [" dmtd9: 00307000 0001f000 "kernelA"# A! |" Q o* B7 E+ ^$ F4 w
mtd10: 00307000 0001f000 "kernelB"! a! G8 z( j. b
mtd11: 02815000 0001f000 "rootfsA"
T: r1 g: E( i* C& emtd12: 02815000 0001f000 "rootfsB"
6 W1 t8 U. J# m s9 y$ _: l. imtd13: 0003e000 0001f000 "wifi_paramA"
7 V% p& x8 u9 R+ Tmtd14: 0003e000 0001f000 "wifi_paramB"( j% w8 P0 c+ K T! [! a
mtd15: 0003e000 0001f000 "system_param"+ r9 @4 y1 Q6 o0 D
mtd16: 0141a000 0001f000 "file_system"9 C& x" h5 o0 X& Z6 d5 y& C( p! h
mtd17: 0081d000 0001f000 "frameworkA"1 V3 O/ H6 r8 E, z0 Z
mtd18: 0081d000 0001f000 "frameworkB"$ ~# Y; N, E4 j$ T
mtd19: 07003000 0001f000 "apps" r t+ H$ f U2 R: K6 i
& |% u) w# i3 N3 A- T5 a- G6 {看到这么多分区,以及地址,养成一个好习惯,复制下来存到文本中
, Z7 B9 f0 X) W1 Nmtd0: ="startcode"
[7 L% O2 \4 }1 v$ G2 ~' o$ |mtd1: ="ubifs"
2 s# ?/ l! y- {mtd2: = "reserved"+ i1 s$ j+ @- `4 j4 c
mtd3: = "ubootA"9 l- I% h) t7 M. \! r& H4 i
mtd4: = "ubootB"
7 Q1 e! ]' O% o7 Q | Umtd5: = "flash_configA"
" ]( O0 E2 [2 b" v5 ]9 Smtd6: = "flash_configB"
+ B" |0 U% ]! C3 A* }mtd7: = "slave_paramA"
+ X: H" d$ O6 l* G' l/ s; W, ]$ imtd8: = "slave_paramB" M- {/ f7 l* Y
mtd9: = "kernelA". t+ k! L9 z8 A2 r, J6 T/ i
mtd10: = "kernelB"
8 [, M0 [& Q+ w$ X$ W9 L0 \3 X- omtd11: = "rootfsA"8 }' [* z U% ]1 [1 N) m
mtd12: = "rootfsB"2 u# s1 C2 F% E4 @0 y
mtd13: = "wifi_paramA"
0 v* |' P" i4 ~& j/ X/ dmtd14: = "wifi_paramB"
6 A" z w1 X" F0 \4 bmtd15: = "system_param"9 x( \( x6 Q5 Y. b! U
mtd16: = "file_system"/ r"7 U- a% T3 _3 J0 k$ p' }/ }
mtd17: = "frameworkA"
7 a+ b$ h0 ~; d) x' H+ {0 umtd18: = "frameworkB"" P' w9 E* L4 ^2 K7 s8 {
mtd19: = "apps"
2 z8 J( z1 @5 E9 b4 Wubi0_13 = "jffs2"& W# `! J0 M, @
A和B分区是一样的,所以只需备份其中一个即可,现在都设置为双启动,一个使用一个备份可以切换的,从设计角度讲8 x' \1 Y" |$ A, @) l
0 P. x3 E# O4 ]2 \3 V" X1 u
下面我们进行备份,首先你要准备一个U盘(fat32格式化,防止不认盘)插到光猫的接口上,如果光猫没接口,那就应该淘汰了,当然tftp大法也是可以的,太麻烦了,这里不介绍; [# F1 Q/ i+ w/ u
据我所知从天翼网关1.0开始就配USB口了,因为AB分区都一样,所以只备份一个就可以了
0 \* `. s; b2 m; R下面输入备份命令,每行输入一次
* ?( ` D9 \8 K6 k- F1 V7 \/ Zdd if=/dev/mtd0 of=/mnt/usb/USB_disc1/0.bin! [/ X) G2 x9 D5 R
dd if=/dev/mtd1 of=/mnt/usb/USB_disc1/1.bin
8 T, N! g* S1 d; vdd if=/dev/mtd2 of=/mnt/usb/USB_disc1/2.bin3 G4 A2 m, h6 O
dd if=/dev/mtd3 of=/mnt/usb/USB_disc1/3-uboot.bin
, H/ V! e) S* b$ a% @8 Y9 S1 Y8 \( ~dd if=/dev/mtd5 of=/mnt/usb/USB_disc1/5.bin
! O( q2 e) C ~7 V# e% `dd if=/dev/mtd7 of=/mnt/usb/USB_disc1/7.bin) w8 b) }" b3 L. R
dd if=/dev/mtd9 of=/mnt/usb/USB_disc1/9-kernel.bin
( r2 I. s9 S& F( r- M K, ^0 xdd if=/dev/mtd11 of=/mnt/usb/USB_disc1/11-rootfs.bin
# q+ D. @: ?0 ^. S1 L/ |dd if=/dev/mtd13 of=/mnt/usb/USB_disc1/13.bin
0 _5 y/ x7 o* a% S9 T2 J- W7 Bdd if=/dev/mtd15 of=/mnt/usb/USB_disc1/15.bin$ {" d" T) w. x5 \, U( ?
dd if=/dev/mtd16 of=/mnt/usb/USB_disc1/16.bin. B/ ~9 i5 c+ Z+ I6 }
dd if=/dev/mtd17 of=/mnt/usb/USB_disc1/17.bin3 T8 N( y0 O! h" s. v. X" x$ U2 {- V
dd if=/dev/mtd19 of=/mnt/usb/USB_disc1/19.bin4
* ^+ `! `) _& f6 \. }) `4 W) edd if=/dev/ubi0_13 of=/mnt/usb/USB_disc1/0_13.bin |