2 ~) u) S$ V6 e) b9 O) @8 t' d恩山上找到的,也不知道这里让不让发链接,我复制了一下
0 n4 H% _) ~8 _: S w9 O# r; t0 }, Q9 ?# T* {% D {5 F
固件备份,没有风险的,但是固件还原有一定风险,小白进阶的教程。目前光猫固件备份有 四种方式:
9 y B7 r" r0 |$ T1.通过芯片烧录器备份
- f8 \! i! ~3 c6 b1 v- Q" Y2.通过telnet备份4 ]; C. g; k: U! _5 i4 ~, S
3.通过ttl备份/ B5 a$ Y& v: v# F$ c9 r
4.通过JTAg备份(不常见,这里不做介绍)6 s/ s7 F, I& j0 T/ c; B9 p
8 T! _* j2 T: S% i( X2 w8 z( D" Y
下面我们先介绍最简单的第1种* J, i' Q S) N' J
2 q" D% |! ^* j
把芯片用吹风机吹下来,最好是买个专业的焊台,带热风枪和烙铁的那种,把芯片放在编程器上直接读。非常简单,如果有不会的,可以回复我(记得贴图)。
' j: k7 j. C2 J# z& Z4 ~
8 Z) n! u$ o8 R3 B! a B然后我们来说下最常见的备份方法,通过telnet、TTL备份
3 Z4 {, E H$ d4 j3 W- V
; _1 H1 z4 |7 A A R. b9 ]进入系统后,我们再putty里回车(按Enter键,怕小白不懂),进入这个系统可以说就是Shell,也可以说linux- a4 c3 z. k9 l+ Q# i8 b
我们就能通过命令来完成我们的备份,首先第一个命令,如果显示无此命令呢,说明当前shell不完整,还需要补齐,这个我会另开一个帖子写
' I8 b# l4 J* d4 X2 ]cat /proc/mtd! z0 z# R2 Q9 f1 R% Y2 b
这里我们选择华为8145v为试验环境,别的光猫可能有不一样的地方
" }! F7 W H) F C5 edev: size erasesize name
5 G3 s5 H$ {" Q1 D" u% y; Omtd0: 00100000 00020000 "1 v3 E6 M; d2 p/ G/ r9 h3 X; g9 i4 ^1 K
mtd1: 0ff00000 00020000 "ubifs"8 A- w1 z* x+ H6 f8 E: I1 ]
mtd2: 00000000 00000000 "reserved"" s/ \7 p' g- R! P& ]; p
mtd3: 0009b000 0001f000 "ubootA"7 e+ }+ K' c- p4 ~ T
mtd4: 0009b000 0001f000 "ubootB"
. t6 _2 o4 y! O7 y3 dmtd5: 0003e000 0001f000 "flash_configA"
- D3 p" ~! u/ E kmtd6: 0003e000 0001f000 "flash_configB"3 K0 c) h% _# N2 q: A/ h# O5 d
mtd7: 0003e000 0001f000 "slave_paramA"& B+ u$ }" J6 U7 }* b! b9 Q, m9 W3 B
mtd8: 0003e000 0001f000 "slave_paramB"9 D! b& i3 ~% _; l
mtd9: 00307000 0001f000 "kernelA"" g+ X2 ^% V+ b& a$ _( |
mtd10: 00307000 0001f000 "kernelB"
/ E) E' F9 O6 X/ V8 p& X! omtd11: 02815000 0001f000 "rootfsA"5 A2 @) O" K* A+ P
mtd12: 02815000 0001f000 "rootfsB"
9 w d$ S4 R& ~- @4 pmtd13: 0003e000 0001f000 "wifi_paramA"
I7 c0 |2 `) n3 Bmtd14: 0003e000 0001f000 "wifi_paramB"4 k( K; U8 x0 U4 n- y* Q& a& i" j
mtd15: 0003e000 0001f000 "system_param"3 P& q- I# \7 |3 B
mtd16: 0141a000 0001f000 "file_system"
) E" y1 C0 V& i0 Smtd17: 0081d000 0001f000 "frameworkA"7 `5 U( W: U, Z; T' s: R; q
mtd18: 0081d000 0001f000 "frameworkB"
/ L, T- F# W; {( J& F% `( {mtd19: 07003000 0001f000 "apps"
+ ]3 p! U, Z1 ?4 n4 Y4 y- J6 ~
$ Z# H9 z* x2 R) @4 d看到这么多分区,以及地址,养成一个好习惯,复制下来存到文本中4 \1 }: j) y: t' o- w
mtd0: ="startcode"
. J, E" y0 f4 h) U- Pmtd1: ="ubifs"
, b- ?( L F, C U. `7 zmtd2: = "reserved"
" ^( l2 `/ S6 ^- Omtd3: = "ubootA"
+ _8 P; f$ ?! u; |4 }mtd4: = "ubootB": ?" W9 Y6 Q+ K- D; q
mtd5: = "flash_configA"
* x. w& b/ i- V! Ymtd6: = "flash_configB"
3 N8 O5 {( D% b/ C" Z% I9 fmtd7: = "slave_paramA"5 M3 G7 }! }1 j7 w: T# p
mtd8: = "slave_paramB"
4 d8 w* w; u8 f# _* e& X3 bmtd9: = "kernelA"* E( h8 ~# Y/ @& }# S6 T
mtd10: = "kernelB"; z) B' ~- j# y# H9 G J
mtd11: = "rootfsA": Y4 }/ H) i$ l7 v3 t0 K' L* c
mtd12: = "rootfsB": j4 v8 r; R8 h, Q6 U
mtd13: = "wifi_paramA"
" ?/ g+ f" S6 C+ Wmtd14: = "wifi_paramB"
$ H8 }0 F A r* Hmtd15: = "system_param"' _& u* s0 E g* w, [3 z' M! n
mtd16: = "file_system"/ r"8 ?/ g) x" L$ |2 D+ i
mtd17: = "frameworkA"% p% G+ e! I- j: L/ E
mtd18: = "frameworkB"4 w1 T3 Y8 J7 h- D' n3 w
mtd19: = "apps"
/ R1 K7 ^+ m; Z. Q" e, t3 mubi0_13 = "jffs2"
, L% X- T! |. }1 i7 Q lA和B分区是一样的,所以只需备份其中一个即可,现在都设置为双启动,一个使用一个备份可以切换的,从设计角度讲
3 y; w: `, T, ^0 L; |1 s' l6 ]6 D8 r
下面我们进行备份,首先你要准备一个U盘(fat32格式化,防止不认盘)插到光猫的接口上,如果光猫没接口,那就应该淘汰了,当然tftp大法也是可以的,太麻烦了,这里不介绍
0 {% j9 _! m* ~! Y据我所知从天翼网关1.0开始就配USB口了,因为AB分区都一样,所以只备份一个就可以了9 n; ~. O5 I% T2 ^2 |/ l7 p$ n
下面输入备份命令,每行输入一次
% A- V* I3 b: i" ]9 F/ ~ v$ Udd if=/dev/mtd0 of=/mnt/usb/USB_disc1/0.bin. g, m; G: v/ ]: P8 f8 K+ i2 p# O
dd if=/dev/mtd1 of=/mnt/usb/USB_disc1/1.bin! Y3 D, n! Q6 Z; z* }3 G/ l, L. D
dd if=/dev/mtd2 of=/mnt/usb/USB_disc1/2.bin
# D! |' G) A+ W- r# Sdd if=/dev/mtd3 of=/mnt/usb/USB_disc1/3-uboot.bin
# b4 X# k& f' x6 b* jdd if=/dev/mtd5 of=/mnt/usb/USB_disc1/5.bin1 Y' }6 Q& C, k t0 Y* P
dd if=/dev/mtd7 of=/mnt/usb/USB_disc1/7.bin4 O8 W6 G' D8 J5 f0 u) a5 D
dd if=/dev/mtd9 of=/mnt/usb/USB_disc1/9-kernel.bin+ r6 o7 X8 F6 D! w8 S3 ?* G
dd if=/dev/mtd11 of=/mnt/usb/USB_disc1/11-rootfs.bin, t: C& G, V. @1 z( W x; M) q
dd if=/dev/mtd13 of=/mnt/usb/USB_disc1/13.bin
1 v) G H* Z0 ~+ f7 Cdd if=/dev/mtd15 of=/mnt/usb/USB_disc1/15.bin$ \# E! t! k# s6 Z$ d* l
dd if=/dev/mtd16 of=/mnt/usb/USB_disc1/16.bin3 j9 q" [3 W* m
dd if=/dev/mtd17 of=/mnt/usb/USB_disc1/17.bin- }' E" s- x. r1 x2 n; R7 F
dd if=/dev/mtd19 of=/mnt/usb/USB_disc1/19.bin4 Q" J% m0 q, K$ a; h a4 I6 a
dd if=/dev/ubi0_13 of=/mnt/usb/USB_disc1/0_13.bin |