* l N" h, C1 \. w" b( n; Q
恩山上找到的,也不知道这里让不让发链接,我复制了一下
3 @ K0 `( F0 Y" X3 a e8 k$ f2 k( R+ y. b3 a) R7 @3 `) R; ^
固件备份,没有风险的,但是固件还原有一定风险,小白进阶的教程。目前光猫固件备份有 四种方式:
# X" R3 A9 S7 n2 |, P1.通过芯片烧录器备份
. y; o% i* r8 H7 O/ V2.通过telnet备份
+ D) A- C! \* H' l+ Q4 N3.通过ttl备份1 w4 s! s9 b5 T; b; f5 s" ~
4.通过JTAg备份(不常见,这里不做介绍)
5 g' R% H7 `/ ]% J {$ c8 N9 [# s4 x5 Z. [1 q& L: ~
下面我们先介绍最简单的第1种+ o! ?7 K% T0 L: }/ H' a
& f; K2 X5 x0 E4 d2 p) @把芯片用吹风机吹下来,最好是买个专业的焊台,带热风枪和烙铁的那种,把芯片放在编程器上直接读。非常简单,如果有不会的,可以回复我(记得贴图)。4 _3 }# R/ C( X9 Q8 h
4 Y- O4 r5 y& P( `/ K! d
然后我们来说下最常见的备份方法,通过telnet、TTL备份
" c0 ~. d0 i* k- k1 ^7 w$ [2 r- s/ j6 k
进入系统后,我们再putty里回车(按Enter键,怕小白不懂),进入这个系统可以说就是Shell,也可以说linux1 m4 T$ Q3 a8 }
我们就能通过命令来完成我们的备份,首先第一个命令,如果显示无此命令呢,说明当前shell不完整,还需要补齐,这个我会另开一个帖子写* X( {% E2 X, J3 l2 {
cat /proc/mtd
7 T0 l9 p( U7 D j3 S这里我们选择华为8145v为试验环境,别的光猫可能有不一样的地方: f: v" g' ^8 P! _ y) }9 T
dev: size erasesize name
* `5 M( C, O3 m# S% A# dmtd0: 00100000 00020000 "
. B5 E) A& y: Z: _mtd1: 0ff00000 00020000 "ubifs"
' S( Q) z7 M0 a& k$ p; K; ]5 n% rmtd2: 00000000 00000000 "reserved"
* [: I3 s. m, I" O# b9 vmtd3: 0009b000 0001f000 "ubootA"
, f; G9 `, s* R3 ]mtd4: 0009b000 0001f000 "ubootB"/ N. J. O# m1 {5 l, k, {
mtd5: 0003e000 0001f000 "flash_configA"
# z8 u: m' Q7 imtd6: 0003e000 0001f000 "flash_configB". C. o/ c+ O) R$ M" |# Y7 v$ T9 s
mtd7: 0003e000 0001f000 "slave_paramA"
" i8 s8 {5 p: n6 n* B+ ]mtd8: 0003e000 0001f000 "slave_paramB"
4 g4 g$ L/ \4 fmtd9: 00307000 0001f000 "kernelA"3 p, W& J% G! J6 O/ A; F
mtd10: 00307000 0001f000 "kernelB"9 G" I9 R8 |' l
mtd11: 02815000 0001f000 "rootfsA"" U/ Z: Z0 t9 d9 |1 t p3 q9 f( E0 ?
mtd12: 02815000 0001f000 "rootfsB"* w( [. M- @1 I* g, ]
mtd13: 0003e000 0001f000 "wifi_paramA"% s- N% e+ r' M& u
mtd14: 0003e000 0001f000 "wifi_paramB"
; `* E, F4 ]4 b0 i ?0 cmtd15: 0003e000 0001f000 "system_param"3 {( ~3 D9 Q! {0 C. z& l
mtd16: 0141a000 0001f000 "file_system"
* \# F6 p1 s. V- Z$ S- [, p0 smtd17: 0081d000 0001f000 "frameworkA"; T; h2 y+ A. I# ^6 v( x
mtd18: 0081d000 0001f000 "frameworkB"
/ Q" ]0 w% V% b0 _7 v T* F/ Amtd19: 07003000 0001f000 "apps"
5 U Y: e# C( f1 K. \ a p
. s% x, o3 V+ a5 @2 Q/ k6 R看到这么多分区,以及地址,养成一个好习惯,复制下来存到文本中3 C1 [) {3 L# i0 I7 `( E
mtd0: ="startcode"( M6 A/ r' l+ c7 \: p' v& t9 K; F
mtd1: ="ubifs"9 m1 Q4 Z# p3 q) i; s# U3 z
mtd2: = "reserved"
- Z, E* {2 S4 Z- _, d% K% Hmtd3: = "ubootA"4 a" e ]+ \2 f# z, U" q: D4 @+ f, W
mtd4: = "ubootB"
* t( n9 G3 U4 W$ W( @mtd5: = "flash_configA"& D6 H2 E5 m: Y0 w& F
mtd6: = "flash_configB"
) u6 n7 M8 Y1 `3 ~8 u) M0 Imtd7: = "slave_paramA"
9 i, o- W# S$ H3 S; umtd8: = "slave_paramB". e; J; \: R3 w( J! V9 a
mtd9: = "kernelA"
$ K! @9 y% P: [8 a3 smtd10: = "kernelB"7 @8 {# e# T/ _( |
mtd11: = "rootfsA"
) n C- B$ |5 L: \6 U Q: Jmtd12: = "rootfsB", }- v- r9 v, n
mtd13: = "wifi_paramA"3 j$ J! F/ w4 E; n1 z# p
mtd14: = "wifi_paramB"8 A: r5 Y2 [( Q& z
mtd15: = "system_param"7 j: D8 z) D) N1 b) o9 E
mtd16: = "file_system"/ r"
3 Q" s1 c6 p: Bmtd17: = "frameworkA"8 b; t* W0 m n3 U7 t O+ x
mtd18: = "frameworkB"6 w1 Y3 \ Y5 D( @
mtd19: = "apps"
& s0 { O7 R. wubi0_13 = "jffs2"
3 x* x3 o i1 d+ H( KA和B分区是一样的,所以只需备份其中一个即可,现在都设置为双启动,一个使用一个备份可以切换的,从设计角度讲+ T R6 M/ K Y) {3 l7 b
, h! o- f2 ~4 A6 P% h$ _下面我们进行备份,首先你要准备一个U盘(fat32格式化,防止不认盘)插到光猫的接口上,如果光猫没接口,那就应该淘汰了,当然tftp大法也是可以的,太麻烦了,这里不介绍
4 E1 J" G4 ]9 {1 c3 ~据我所知从天翼网关1.0开始就配USB口了,因为AB分区都一样,所以只备份一个就可以了
n- T4 l( W( i下面输入备份命令,每行输入一次
% _; @8 w% J+ d+ n9 r' Pdd if=/dev/mtd0 of=/mnt/usb/USB_disc1/0.bin
3 h5 _+ g: A" W9 P- x: X7 w: zdd if=/dev/mtd1 of=/mnt/usb/USB_disc1/1.bin5 h+ H, h, H2 s$ @- t( J- \
dd if=/dev/mtd2 of=/mnt/usb/USB_disc1/2.bin* z* |7 B% v( o. `! R
dd if=/dev/mtd3 of=/mnt/usb/USB_disc1/3-uboot.bin6 F& {& n2 O: D+ z$ u1 j
dd if=/dev/mtd5 of=/mnt/usb/USB_disc1/5.bin, \, P# T- J: u7 _9 q, U
dd if=/dev/mtd7 of=/mnt/usb/USB_disc1/7.bin
/ u; H( I: Z2 X4 w& @dd if=/dev/mtd9 of=/mnt/usb/USB_disc1/9-kernel.bin/ ]" m+ ?) c2 o) l$ @7 I
dd if=/dev/mtd11 of=/mnt/usb/USB_disc1/11-rootfs.bin2 L. E# \! T7 U+ X) d; t4 ^( @
dd if=/dev/mtd13 of=/mnt/usb/USB_disc1/13.bin
6 C% T" h% g2 m! U$ D) L/ [# ]$ wdd if=/dev/mtd15 of=/mnt/usb/USB_disc1/15.bin
8 y9 ?2 U: L6 Sdd if=/dev/mtd16 of=/mnt/usb/USB_disc1/16.bin
; Z" c5 }% @0 x i" H3 ?8 u! N/ Xdd if=/dev/mtd17 of=/mnt/usb/USB_disc1/17.bin5 v I" Y |1 c6 {0 p
dd if=/dev/mtd19 of=/mnt/usb/USB_disc1/19.bin4
+ A* ~/ a4 P7 m1 e" H8 jdd if=/dev/ubi0_13 of=/mnt/usb/USB_disc1/0_13.bin |