6 I8 H& P9 v& C7 l6 d V! U8 ?4 O恩山上找的,您试一下,谢谢了 g, r6 M, [8 ?6 m# s* D, I) s0 |
( ]5 p$ B+ f5 G* J) s( O
固件备份,没有风险的,但是固件还原有一定风险,小白进阶的教程。目前光猫固件备份有 四种方式:
) f1 _8 j4 i" J% a9 t' U7 ~2 W1.通过芯片烧录器备份
2 P0 N: {" w/ `6 @5 A* [5 v7 s2.通过telnet备份
& x) o4 H( R8 t. t5 ?, t3.通过ttl备份
2 O5 l' J, S4 v2 D3 N2 a o, |4.通过JTAg备份(不常见,这里不做介绍)/ B8 T1 E+ ?8 |
5 w+ t6 X: c& k3 h) y. X O下面我们先介绍最简单的第1种 J: X7 v3 q( j8 e" u8 l0 j
9 g3 o6 u( ?) H* F* D把芯片用吹风机吹下来,最好是买个专业的焊台,带热风枪和烙铁的那种,把芯片放在编程器上直接读。非常简单,如果有不会的,可以回复我(记得贴图)。
9 ~4 |9 H: L( }) C' i1 h6 ?
( ^. p' {0 E8 J: p: h然后我们来说下最常见的备份方法,通过telnet、TTL备份
# {. P+ E! V j" }0 I6 }. f, A$ F( v
进入系统后,我们再putty里回车(按Enter键,怕小白不懂),进入这个系统可以说就是Shell,也可以说linux
$ M" t( ~+ c/ R; _ O7 u我们就能通过命令来完成我们的备份,首先第一个命令,如果显示无此命令呢,说明当前shell不完整,还需要补齐,这个我会另开一个帖子写
' n! J3 Q* w1 Gcat /proc/mtd
- Q& V4 N. v* o, g8 K# l: G. s) j; {这里我们选择华为8145v为试验环境,别的光猫可能有不一样的地方# k3 U' v. E8 m V$ M" O( L
dev: size erasesize name( K& b( N4 I8 X2 e8 s8 d/ C
mtd0: 00100000 00020000 "/ z6 @0 C- @4 V1 l' k
mtd1: 0ff00000 00020000 "ubifs"
6 y; t' T0 f8 e' M. |mtd2: 00000000 00000000 "reserved"
. F5 k; S# V$ s F! P2 mmtd3: 0009b000 0001f000 "ubootA"; i2 R% \, z; ?# j. s+ V2 r
mtd4: 0009b000 0001f000 "ubootB"5 q/ v* g& Y" F9 e% S& d
mtd5: 0003e000 0001f000 "flash_configA"
6 E) k. V) |3 Vmtd6: 0003e000 0001f000 "flash_configB"
( I! {4 X3 m0 e0 Mmtd7: 0003e000 0001f000 "slave_paramA"
- x+ {9 i+ z6 S$ [# gmtd8: 0003e000 0001f000 "slave_paramB"
& U( _: k, l2 q9 t9 y5 f1 ?mtd9: 00307000 0001f000 "kernelA"
, J7 Z; @6 E ] S% Q5 \4 j2 Xmtd10: 00307000 0001f000 "kernelB"5 \0 [ v4 o+ f. X& s6 l
mtd11: 02815000 0001f000 "rootfsA"
0 e& {" t% t, N$ X$ P0 Cmtd12: 02815000 0001f000 "rootfsB"! F1 l, V4 K4 \+ @7 K4 R
mtd13: 0003e000 0001f000 "wifi_paramA"9 Q: L/ `7 i! n
mtd14: 0003e000 0001f000 "wifi_paramB"+ N; `: |% C) I! U4 W- B1 w
mtd15: 0003e000 0001f000 "system_param"3 ^* v. S: m( e, F$ r' W( O
mtd16: 0141a000 0001f000 "file_system"
/ q7 b7 S' T' s" t5 J# bmtd17: 0081d000 0001f000 "frameworkA"
: Z+ Z# b" g' g$ k9 o( Umtd18: 0081d000 0001f000 "frameworkB"0 S+ l% U7 O0 ]$ v9 B7 r. r C
mtd19: 07003000 0001f000 "apps"6 c0 A9 X9 T2 r
3 v4 n# _( Z D0 i, H* d
看到这么多分区,以及地址,养成一个好习惯,复制下来存到文本中
# G R, [5 B3 w" I: f" {3 k% f& Z. r0 imtd0: ="startcode"
1 \( V0 G/ i8 d% d$ X7 k% ymtd1: ="ubifs" B8 f V! F" w7 O" u) T" F
mtd2: = "reserved"9 E0 Q3 N# }0 `; _* E2 m
mtd3: = "ubootA"
7 y" d7 A& y$ P; @7 Tmtd4: = "ubootB"
9 O) F; a/ ~9 c9 X2 ?! jmtd5: = "flash_configA"
# k( J, A6 t- A: x- z. ~mtd6: = "flash_configB"3 }0 m3 h& q/ h3 E% \+ [1 S, v
mtd7: = "slave_paramA"* ]0 J& C3 J( q" v
mtd8: = "slave_paramB"( N) n9 m; B3 X8 a; L+ n! i6 ^6 u
mtd9: = "kernelA"9 n9 ?# v4 L; k9 v
mtd10: = "kernelB"
) Z& i! a7 ^# J# d6 \, m/ dmtd11: = "rootfsA". l) G6 B- d7 b8 L
mtd12: = "rootfsB"3 _$ G5 q( ]9 w. z
mtd13: = "wifi_paramA"# j7 D1 Y X6 s
mtd14: = "wifi_paramB"8 j ~, h7 [; f: k1 Z4 |
mtd15: = "system_param"( R' L/ U! S( G' z; J7 K
mtd16: = "file_system"/ r"
# T! u' o& n9 o1 qmtd17: = "frameworkA". h/ J/ l: q) I, X! ]# f) p0 Q6 o
mtd18: = "frameworkB"
m" _) q8 y- m6 x+ j5 j* jmtd19: = "apps"
1 |+ L+ d7 L) S2 Subi0_13 = "jffs2"1 d- r' B+ i. E$ A; O- S1 k1 H- |4 d0 ^
A和B分区是一样的,所以只需备份其中一个即可,现在都设置为双启动,一个使用一个备份可以切换的,从设计角度讲
) A" q& B2 R2 h, r" [# ], @! R4 _7 L8 r
下面我们进行备份,首先你要准备一个U盘(fat32格式化,防止不认盘)插到光猫的接口上,如果光猫没接口,那就应该淘汰了,当然tftp大法也是可以的,太麻烦了,这里不介绍
* q6 c9 _8 A3 F O5 K据我所知从天翼网关1.0开始就配USB口了,因为AB分区都一样,所以只备份一个就可以了4 ~' T3 f* u. R
下面输入备份命令,每行输入一次# i) }# Z2 [ K( w2 [
dd if=/dev/mtd0 of=/mnt/usb/USB_disc1/0.bin
W7 I# g' y7 Hdd if=/dev/mtd1 of=/mnt/usb/USB_disc1/1.bin* o) U: p2 L" n p2 d/ J1 e4 W
dd if=/dev/mtd2 of=/mnt/usb/USB_disc1/2.bin! m2 f k) U& I2 v
dd if=/dev/mtd3 of=/mnt/usb/USB_disc1/3-uboot.bin0 O2 V* K; u5 t$ D
dd if=/dev/mtd5 of=/mnt/usb/USB_disc1/5.bin ?! r* `. ]1 }/ s% s; n0 x
dd if=/dev/mtd7 of=/mnt/usb/USB_disc1/7.bin
$ r0 V& q6 Y1 p7 F: Add if=/dev/mtd9 of=/mnt/usb/USB_disc1/9-kernel.bin
/ @" A* D0 u, [' ]* U$ F& f* r' pdd if=/dev/mtd11 of=/mnt/usb/USB_disc1/11-rootfs.bin+ v# K# x5 G7 V/ h D+ [2 o
dd if=/dev/mtd13 of=/mnt/usb/USB_disc1/13.bin4 w: I/ l* a' J5 ]" N, T- p
dd if=/dev/mtd15 of=/mnt/usb/USB_disc1/15.bin5 ]1 y Y; G4 n, k# A7 ^/ a
dd if=/dev/mtd16 of=/mnt/usb/USB_disc1/16.bin
, @& k1 E3 J4 p* Jdd if=/dev/mtd17 of=/mnt/usb/USB_disc1/17.bin4 v2 r# ]3 F _1 W3 S' y5 N
dd if=/dev/mtd19 of=/mnt/usb/USB_disc1/19.bin44 N* S% E$ \- o5 T$ Q. S* b8 f
dd if=/dev/ubi0_13 of=/mnt/usb/USB_disc1/0_13.bin |