) N" A3 A# L7 a恩山上找到的,也不知道这里让不让发链接,我复制了一下- Q! H0 Q# a9 `0 r
7 r4 i. \! H3 x0 _
固件备份,没有风险的,但是固件还原有一定风险,小白进阶的教程。目前光猫固件备份有 四种方式:
+ d+ G* {7 h" Y1 p, Z) h1.通过芯片烧录器备份- }9 r6 F4 m, r2 B' `" d3 }/ X5 a
2.通过telnet备份9 Q: d" R; A: I, H2 n
3.通过ttl备份/ d- _. L( q/ @( U' `$ c
4.通过JTAg备份(不常见,这里不做介绍)
5 F. R& ?* [" m( o) s+ w6 T
( F$ i4 b* Q7 T, X' ^下面我们先介绍最简单的第1种; K H" V# J I r! p
# F/ c! M4 T* ?% J( Q/ r把芯片用吹风机吹下来,最好是买个专业的焊台,带热风枪和烙铁的那种,把芯片放在编程器上直接读。非常简单,如果有不会的,可以回复我(记得贴图)。
& Q3 G5 i: f# W a7 P5 I) N- R
然后我们来说下最常见的备份方法,通过telnet、TTL备份
( [. d& E! b. P u
2 S; E. m" X! [5 s( |0 H0 T- }进入系统后,我们再putty里回车(按Enter键,怕小白不懂),进入这个系统可以说就是Shell,也可以说linux
3 c6 E0 @% H7 Q& u/ v1 ?/ [4 P我们就能通过命令来完成我们的备份,首先第一个命令,如果显示无此命令呢,说明当前shell不完整,还需要补齐,这个我会另开一个帖子写
; t. Q5 ]3 S* @8 m* Ocat /proc/mtd& V8 H9 u: Z/ j% @4 ^8 c
这里我们选择华为8145v为试验环境,别的光猫可能有不一样的地方
+ p2 y: ?, g" Zdev: size erasesize name
& ?& y# b8 O6 O7 I- Xmtd0: 00100000 00020000 "
: r: N8 \7 K) `mtd1: 0ff00000 00020000 "ubifs"
) E( X# b! e+ I5 Y. Gmtd2: 00000000 00000000 "reserved"
+ T; {' V% |( F* kmtd3: 0009b000 0001f000 "ubootA"3 p6 G% |9 Z x' ]
mtd4: 0009b000 0001f000 "ubootB"* Y' Z3 b# }, N
mtd5: 0003e000 0001f000 "flash_configA"
: w8 K" x. d' t0 n @mtd6: 0003e000 0001f000 "flash_configB"
6 u6 q( Y, B3 M. G1 Lmtd7: 0003e000 0001f000 "slave_paramA"5 t# ^4 t% C; J. M: [0 G
mtd8: 0003e000 0001f000 "slave_paramB"$ u9 i# u; B+ Z5 s+ u& Z
mtd9: 00307000 0001f000 "kernelA") U* q+ o! B/ r& ?! N; y
mtd10: 00307000 0001f000 "kernelB"5 S( S5 o3 L5 n/ [5 x/ M
mtd11: 02815000 0001f000 "rootfsA"
6 [! l- N! [! ]4 B Z& `# \; cmtd12: 02815000 0001f000 "rootfsB" f( ] g# V" K; p& o
mtd13: 0003e000 0001f000 "wifi_paramA"0 {' J: h+ A4 l& `
mtd14: 0003e000 0001f000 "wifi_paramB"
9 @ v! Y* G m- }8 h9 ^mtd15: 0003e000 0001f000 "system_param"& \$ l: {; }) t
mtd16: 0141a000 0001f000 "file_system"
9 M8 E1 Q" z" k9 B# k# kmtd17: 0081d000 0001f000 "frameworkA"$ g$ K) R+ t5 j
mtd18: 0081d000 0001f000 "frameworkB"
! H, m2 j8 ^2 v6 y% b, qmtd19: 07003000 0001f000 "apps"" u2 H. O! E1 x: e
% B0 Y2 E1 E4 @看到这么多分区,以及地址,养成一个好习惯,复制下来存到文本中
, B" Z7 G6 a: {mtd0: ="startcode"1 ^+ e2 d$ i3 \- {: y
mtd1: ="ubifs"# d$ n' p& \5 k+ q# p( i' |" n6 a
mtd2: = "reserved"
% Z5 s7 w+ @0 M2 Zmtd3: = "ubootA"% W3 h% Q$ J1 ]( H
mtd4: = "ubootB"
8 r# j, [$ t% [: _; \0 G6 S3 zmtd5: = "flash_configA"
. Z( b1 Q! ~& ~. n1 S1 [mtd6: = "flash_configB": n# Y; L+ k4 q( m3 k
mtd7: = "slave_paramA". p/ B; h9 |0 S) ~
mtd8: = "slave_paramB"" u. Y' R% c# ^
mtd9: = "kernelA"
. L8 z; j! M3 Nmtd10: = "kernelB"
d+ r0 Y/ v) Y! |5 G4 S |mtd11: = "rootfsA"
8 c! N2 w) ]" I g5 n3 L) Xmtd12: = "rootfsB"
0 ]. K( S3 B/ u8 T/ I- ~mtd13: = "wifi_paramA"! \& F7 Y0 W ?6 o+ a
mtd14: = "wifi_paramB"5 z# A) e% R6 ^% u% s, |3 `; l' I
mtd15: = "system_param"
& |' d+ p+ g( fmtd16: = "file_system"/ r"$ s1 S+ ?, F1 c1 f3 _. `( U
mtd17: = "frameworkA"
! _* I( I$ j. }' d- imtd18: = "frameworkB"
' }, l% Y) a6 k9 zmtd19: = "apps"
- q/ }. R* E' a. i. I# r" Bubi0_13 = "jffs2"
6 t# O: C" e; @! n$ D6 g* V7 AA和B分区是一样的,所以只需备份其中一个即可,现在都设置为双启动,一个使用一个备份可以切换的,从设计角度讲2 x& I! g# F. L S2 K& y4 B
* W( c0 R* N; W) |/ z) C1 N
下面我们进行备份,首先你要准备一个U盘(fat32格式化,防止不认盘)插到光猫的接口上,如果光猫没接口,那就应该淘汰了,当然tftp大法也是可以的,太麻烦了,这里不介绍: b' B: ?% ] n+ k- a4 @
据我所知从天翼网关1.0开始就配USB口了,因为AB分区都一样,所以只备份一个就可以了# \% Y! z0 q! A+ g
下面输入备份命令,每行输入一次* R/ I; q8 q' p5 H% V0 C' N" A
dd if=/dev/mtd0 of=/mnt/usb/USB_disc1/0.bin7 {1 z8 x5 X1 Q) f* |8 E+ d
dd if=/dev/mtd1 of=/mnt/usb/USB_disc1/1.bin
2 F1 E" k9 T; s. R2 b0 Ydd if=/dev/mtd2 of=/mnt/usb/USB_disc1/2.bin
2 h1 I2 G3 v- L8 O1 C- E; T7 S) tdd if=/dev/mtd3 of=/mnt/usb/USB_disc1/3-uboot.bin @4 w, y$ [5 v: i, a" ?( O
dd if=/dev/mtd5 of=/mnt/usb/USB_disc1/5.bin2 ?4 o$ ]7 L) U/ p! F; B: b
dd if=/dev/mtd7 of=/mnt/usb/USB_disc1/7.bin+ b2 k+ B" R" J: U) T4 a P
dd if=/dev/mtd9 of=/mnt/usb/USB_disc1/9-kernel.bin
( n1 X' u, \* b7 P3 C0 A2 H9 Jdd if=/dev/mtd11 of=/mnt/usb/USB_disc1/11-rootfs.bin
. [* G j' K- E; g6 K. ]dd if=/dev/mtd13 of=/mnt/usb/USB_disc1/13.bin
3 y8 S5 [4 N6 I2 ~& `0 b7 |- bdd if=/dev/mtd15 of=/mnt/usb/USB_disc1/15.bin- n: y+ _$ V) q3 D& j- P
dd if=/dev/mtd16 of=/mnt/usb/USB_disc1/16.bin: j f* B* O6 x- E$ i
dd if=/dev/mtd17 of=/mnt/usb/USB_disc1/17.bin- _, _, i0 [/ K' `- Q/ ]
dd if=/dev/mtd19 of=/mnt/usb/USB_disc1/19.bin4; e5 Y+ \% L0 ~7 R$ X& r
dd if=/dev/ubi0_13 of=/mnt/usb/USB_disc1/0_13.bin |