1 R) _$ r( [$ A! g( X恩山上找的,您试一下,谢谢了 1 ~: R9 H" ^7 J* q2 u5 ?' v
/ u0 U9 F6 i2 d, K固件备份,没有风险的,但是固件还原有一定风险,小白进阶的教程。目前光猫固件备份有 四种方式:
! ?* u8 v( T5 E- o1.通过芯片烧录器备份1 E3 p$ y* D+ X) N
2.通过telnet备份7 b0 A* L( C4 X4 J7 T3 ~
3.通过ttl备份1 c- k2 }7 C- l5 {9 p) ^: P- o4 H+ S
4.通过JTAg备份(不常见,这里不做介绍)
. K& C+ [2 Z+ e, G+ I# O: k/ n- |# F! A7 X( u
下面我们先介绍最简单的第1种9 C5 d. m: x6 |+ o! ^ I" D# \3 S
+ h: x ?% c5 K0 [1 _/ G把芯片用吹风机吹下来,最好是买个专业的焊台,带热风枪和烙铁的那种,把芯片放在编程器上直接读。非常简单,如果有不会的,可以回复我(记得贴图)。
% v" [7 c' ^: M# J7 t3 T. _. F+ K& x) Y3 G6 }. f! o4 {
然后我们来说下最常见的备份方法,通过telnet、TTL备份
0 k! Y: L6 p+ ]: d* B/ }0 \# z2 _% H* K) \0 d1 a2 c
进入系统后,我们再putty里回车(按Enter键,怕小白不懂),进入这个系统可以说就是Shell,也可以说linux
3 W3 |7 P# H. b- `- a% j6 |我们就能通过命令来完成我们的备份,首先第一个命令,如果显示无此命令呢,说明当前shell不完整,还需要补齐,这个我会另开一个帖子写" C+ D% I% v% Q
cat /proc/mtd
G4 L6 E# m4 B P5 ~/ @这里我们选择华为8145v为试验环境,别的光猫可能有不一样的地方
6 u# X- H" o {6 K) K, pdev: size erasesize name
& B. R, P7 O q/ X2 I' r- C Umtd0: 00100000 00020000 "
- s* W3 ~$ a8 b' L' q3 _2 C7 Emtd1: 0ff00000 00020000 "ubifs"( I- i2 Q1 m5 f6 f
mtd2: 00000000 00000000 "reserved"
. F' l) y; `9 d6 w- i& ^/ Lmtd3: 0009b000 0001f000 "ubootA"" H8 _9 l; n2 W6 m7 M' U) e. O( S
mtd4: 0009b000 0001f000 "ubootB". N( [) i. f3 j6 q. P0 w
mtd5: 0003e000 0001f000 "flash_configA"& g8 {, r# i! R
mtd6: 0003e000 0001f000 "flash_configB"
+ \: S" I/ v( {/ q$ X2 P; Smtd7: 0003e000 0001f000 "slave_paramA". E3 G5 t) l" D# Y$ x: ?
mtd8: 0003e000 0001f000 "slave_paramB"' ^9 ?3 |+ Z' m9 Y" ?1 a
mtd9: 00307000 0001f000 "kernelA": X$ w* f. ^/ ?& m. b# J
mtd10: 00307000 0001f000 "kernelB"0 J+ ~7 D! ~+ {
mtd11: 02815000 0001f000 "rootfsA") A! r7 m* e: t9 O @
mtd12: 02815000 0001f000 "rootfsB"% x0 P# A% P/ `9 ~7 t& E
mtd13: 0003e000 0001f000 "wifi_paramA"* X1 E; {: K& M7 e; Y3 h% b- A$ U
mtd14: 0003e000 0001f000 "wifi_paramB"
& Z8 b' m$ {7 X) Nmtd15: 0003e000 0001f000 "system_param"; \, h5 S% w; U1 k
mtd16: 0141a000 0001f000 "file_system"
* B7 G4 {7 a. U0 o% C' V2 ymtd17: 0081d000 0001f000 "frameworkA"
( Y3 Y7 [8 m4 Kmtd18: 0081d000 0001f000 "frameworkB"
6 f- ]# z! K+ ~mtd19: 07003000 0001f000 "apps"
+ h7 v" f1 ^# b. E! {5 m6 `7 q9 g$ d! f+ X3 T
看到这么多分区,以及地址,养成一个好习惯,复制下来存到文本中
7 C1 ], I# C& Omtd0: ="startcode"
$ t, N! o: S) Y( Gmtd1: ="ubifs"
, a' q' ~ z2 w$ S, Y" ymtd2: = "reserved"
2 }6 D$ q M1 A2 K8 |mtd3: = "ubootA"0 t$ \& h7 a6 a+ q) F: i% B
mtd4: = "ubootB"' b5 _1 E: W1 v, x, s. p
mtd5: = "flash_configA"/ f' D' ~* D# v* B
mtd6: = "flash_configB"5 i- t7 ?9 c6 X8 A" q0 a1 m
mtd7: = "slave_paramA"9 z, ~( u( f% M$ M* t G
mtd8: = "slave_paramB"
; K, y4 V/ G5 R; jmtd9: = "kernelA"
6 Z, U: y7 U: @- h* x$ G# f% Pmtd10: = "kernelB"- l! v t" i6 x5 M- O h& _
mtd11: = "rootfsA"+ m4 }# G3 j% E5 s- P2 O
mtd12: = "rootfsB"
5 H- `8 R# v3 l# s2 omtd13: = "wifi_paramA"# D4 D ]# ]' e2 C0 Y
mtd14: = "wifi_paramB"5 q9 |' h$ s9 r2 [' y- d
mtd15: = "system_param"& J& i, h" z' ^$ Q1 N n
mtd16: = "file_system"/ r"
& _ E8 I1 m- l3 tmtd17: = "frameworkA"
% h/ b0 C% Z$ j7 @0 Emtd18: = "frameworkB"! M1 {, r1 o5 x. o4 _
mtd19: = "apps"* i/ k V) S/ V
ubi0_13 = "jffs2"
( M. m. e. h6 _A和B分区是一样的,所以只需备份其中一个即可,现在都设置为双启动,一个使用一个备份可以切换的,从设计角度讲
4 x5 ?/ r H6 p _% v3 `, `
3 @. O- ~% l5 K# w2 I5 \下面我们进行备份,首先你要准备一个U盘(fat32格式化,防止不认盘)插到光猫的接口上,如果光猫没接口,那就应该淘汰了,当然tftp大法也是可以的,太麻烦了,这里不介绍$ ^, o" i1 }* r% w$ g) P5 C
据我所知从天翼网关1.0开始就配USB口了,因为AB分区都一样,所以只备份一个就可以了+ |9 i# f" u. l8 r% d/ K6 |7 t
下面输入备份命令,每行输入一次
* F- O% o) }" D _dd if=/dev/mtd0 of=/mnt/usb/USB_disc1/0.bin2 l9 d: }" H# x' Y
dd if=/dev/mtd1 of=/mnt/usb/USB_disc1/1.bin( C% L- D: v* |0 N0 I; y: s2 _ j
dd if=/dev/mtd2 of=/mnt/usb/USB_disc1/2.bin/ }7 `, B0 A8 E2 F# y, B
dd if=/dev/mtd3 of=/mnt/usb/USB_disc1/3-uboot.bin. E; M3 ? K- |, B
dd if=/dev/mtd5 of=/mnt/usb/USB_disc1/5.bin- Q! _, |' p( t; s& M) F
dd if=/dev/mtd7 of=/mnt/usb/USB_disc1/7.bin
( \( }, Q% W0 G8 X9 I+ l: T, sdd if=/dev/mtd9 of=/mnt/usb/USB_disc1/9-kernel.bin
3 r/ E: E. C3 rdd if=/dev/mtd11 of=/mnt/usb/USB_disc1/11-rootfs.bin
?& n( B1 k% V0 d kdd if=/dev/mtd13 of=/mnt/usb/USB_disc1/13.bin
3 A0 K; G0 C, B0 z0 X5 Ddd if=/dev/mtd15 of=/mnt/usb/USB_disc1/15.bin
3 W/ G8 J. l+ q! s0 o, y3 ndd if=/dev/mtd16 of=/mnt/usb/USB_disc1/16.bin5 P$ {) w8 P+ P" Z& j1 E/ |
dd if=/dev/mtd17 of=/mnt/usb/USB_disc1/17.bin# {& W* ]$ u6 q6 b4 b
dd if=/dev/mtd19 of=/mnt/usb/USB_disc1/19.bin4
. Y! F3 ?# `- H' F! kdd if=/dev/ubi0_13 of=/mnt/usb/USB_disc1/0_13.bin |