' Y8 ]7 ^0 Q4 y& y+ f" e恩山上找到的,也不知道这里让不让发链接,我复制了一下
6 ]% Q: `( |" v& z( W. A8 ]
4 s3 Z1 U% J& v l$ X4 ], A固件备份,没有风险的,但是固件还原有一定风险,小白进阶的教程。目前光猫固件备份有 四种方式:
" j% [/ ?& x8 o) B4 Y1.通过芯片烧录器备份( G4 t2 J) z$ _! r# k* D8 U4 T
2.通过telnet备份
" i, d$ R) q% H: m7 y3.通过ttl备份: F1 M/ `4 v8 v
4.通过JTAg备份(不常见,这里不做介绍)1 w4 R3 J& c5 {* l8 D6 C( p
/ {3 ?3 C9 ~. Q下面我们先介绍最简单的第1种
6 h; e S4 K T4 [; H
1 N5 P6 R3 C2 e! A7 ~# ]把芯片用吹风机吹下来,最好是买个专业的焊台,带热风枪和烙铁的那种,把芯片放在编程器上直接读。非常简单,如果有不会的,可以回复我(记得贴图)。; j" @6 s& i) P/ K3 P
8 {6 c2 o4 b: Q然后我们来说下最常见的备份方法,通过telnet、TTL备份
& K4 Y% ?" E2 d) L7 U. V: h8 S6 }$ S( O& O$ q( l
进入系统后,我们再putty里回车(按Enter键,怕小白不懂),进入这个系统可以说就是Shell,也可以说linux
& I. [4 D. S# T8 o# ~0 E( s3 @我们就能通过命令来完成我们的备份,首先第一个命令,如果显示无此命令呢,说明当前shell不完整,还需要补齐,这个我会另开一个帖子写
. C( [7 G% T! ^- S- F" E' o4 I9 K" V5 Hcat /proc/mtd
# Q3 e0 m* P% L3 [) K. K9 L这里我们选择华为8145v为试验环境,别的光猫可能有不一样的地方
$ Q3 F7 D6 m3 B2 b$ P6 xdev: size erasesize name; v7 {, @- x; b; a5 z
mtd0: 00100000 00020000 ": c0 x% u# ~2 B% M
mtd1: 0ff00000 00020000 "ubifs"3 U2 Z, m, I- v1 u/ T9 |
mtd2: 00000000 00000000 "reserved"
& Z* E w0 o8 s% nmtd3: 0009b000 0001f000 "ubootA", }( J. `7 s8 D2 x0 W) y. s9 B
mtd4: 0009b000 0001f000 "ubootB"* r9 x9 M7 |8 m9 i9 W
mtd5: 0003e000 0001f000 "flash_configA"
3 s, H" V; ]( \9 g$ Emtd6: 0003e000 0001f000 "flash_configB"
! w G$ u" b+ U8 I. ~mtd7: 0003e000 0001f000 "slave_paramA"2 ~6 [" ]! F' O( O/ S
mtd8: 0003e000 0001f000 "slave_paramB"" u$ c4 \0 k m* P E# q t
mtd9: 00307000 0001f000 "kernelA"% d1 I$ q7 ?" o3 L6 k j" J
mtd10: 00307000 0001f000 "kernelB"
. f3 i0 X% f* Q/ Mmtd11: 02815000 0001f000 "rootfsA"
6 S1 B& L: M# b& u+ @% I& Y2 dmtd12: 02815000 0001f000 "rootfsB"
$ D+ o3 X! J2 N2 A. J" p# N! r3 Omtd13: 0003e000 0001f000 "wifi_paramA", H% Z/ h7 {+ A$ H& o. o% z }1 p
mtd14: 0003e000 0001f000 "wifi_paramB"
0 w6 x$ M7 ?: D" t! @mtd15: 0003e000 0001f000 "system_param"
, m5 j& t h; k$ c n( ^6 w2 zmtd16: 0141a000 0001f000 "file_system"
4 Y/ R6 x. t8 k; p K5 \; k2 L) `mtd17: 0081d000 0001f000 "frameworkA"
1 |3 j# X$ C: I' Jmtd18: 0081d000 0001f000 "frameworkB"
- n& j. g. N. R, }9 t6 umtd19: 07003000 0001f000 "apps"( L: j, C* r. a. c$ u! W# x
6 o ^; C7 R4 h6 ~. k# P
看到这么多分区,以及地址,养成一个好习惯,复制下来存到文本中
8 O& K: i. M4 N) h1 `) e) jmtd0: ="startcode"- |* P9 W; T! }( J# t. i" H
mtd1: ="ubifs"2 R' p3 u( `. }
mtd2: = "reserved"
; ]$ F- u, Q. t& X" Fmtd3: = "ubootA": ]4 T2 x0 ?, [2 S
mtd4: = "ubootB"
8 y$ |# P3 |. p' u8 S0 Gmtd5: = "flash_configA"
9 c( H+ p, p! H3 J1 {mtd6: = "flash_configB"
7 ~% X1 I: h3 |' u8 t( R) S7 |- X, mmtd7: = "slave_paramA"
; p) T5 V" ]& T9 |& Imtd8: = "slave_paramB"
4 ^: O; \5 a8 a; tmtd9: = "kernelA"
# ]& Y. Q: k8 rmtd10: = "kernelB"
% D" n5 }" a4 U) A. g) x: s/ Gmtd11: = "rootfsA"
! y d ~! @9 }$ l1 E/ Emtd12: = "rootfsB"4 j3 G; ]# i+ N
mtd13: = "wifi_paramA"
" O1 _* g) K- h4 `mtd14: = "wifi_paramB"
8 j* F9 |* C, H% `! i5 cmtd15: = "system_param"
- c/ m# |5 U$ _1 _0 M+ M: [& kmtd16: = "file_system"/ r"' B. e$ A" w- E& s
mtd17: = "frameworkA", ~6 m7 @; ]( |! f- A" L8 f ^
mtd18: = "frameworkB"- R0 @+ v0 _, z
mtd19: = "apps"$ X( }( }" O$ r; I% h, Z$ r
ubi0_13 = "jffs2"
1 e% T8 e7 ?# J0 _9 a0 F5 c5 pA和B分区是一样的,所以只需备份其中一个即可,现在都设置为双启动,一个使用一个备份可以切换的,从设计角度讲
" `4 K) L3 k3 j+ w# n! D
9 `* R* n% U5 Y s下面我们进行备份,首先你要准备一个U盘(fat32格式化,防止不认盘)插到光猫的接口上,如果光猫没接口,那就应该淘汰了,当然tftp大法也是可以的,太麻烦了,这里不介绍" E, S" F1 u" v" P
据我所知从天翼网关1.0开始就配USB口了,因为AB分区都一样,所以只备份一个就可以了
1 k8 o$ J H% @& G$ l下面输入备份命令,每行输入一次, t- b) A+ V9 d* K
dd if=/dev/mtd0 of=/mnt/usb/USB_disc1/0.bin
% P5 v3 ]( h1 Wdd if=/dev/mtd1 of=/mnt/usb/USB_disc1/1.bin
, ]' S/ q" C; T% Z" K8 c& ^dd if=/dev/mtd2 of=/mnt/usb/USB_disc1/2.bin
: g2 f7 N5 f" s7 G. H/ ?1 Xdd if=/dev/mtd3 of=/mnt/usb/USB_disc1/3-uboot.bin
f7 `& B4 A' F* p% M% u6 ]/ qdd if=/dev/mtd5 of=/mnt/usb/USB_disc1/5.bin* e/ P; \+ F3 o" S' e/ e
dd if=/dev/mtd7 of=/mnt/usb/USB_disc1/7.bin
0 W) ~) A" \! Z( o3 H" odd if=/dev/mtd9 of=/mnt/usb/USB_disc1/9-kernel.bin8 S0 ]* K7 o$ Q
dd if=/dev/mtd11 of=/mnt/usb/USB_disc1/11-rootfs.bin0 S c+ ~! n# ?
dd if=/dev/mtd13 of=/mnt/usb/USB_disc1/13.bin* R1 p9 }& W. k
dd if=/dev/mtd15 of=/mnt/usb/USB_disc1/15.bin3 i0 k9 f4 A ]! i6 p* `
dd if=/dev/mtd16 of=/mnt/usb/USB_disc1/16.bin" D* [8 ?3 h' E/ W6 J6 G# A
dd if=/dev/mtd17 of=/mnt/usb/USB_disc1/17.bin8 d2 Q! w0 \8 d, N
dd if=/dev/mtd19 of=/mnt/usb/USB_disc1/19.bin46 ^' }; {, t6 F" ?
dd if=/dev/ubi0_13 of=/mnt/usb/USB_disc1/0_13.bin |