CISCO IOS 终极恢复
一 灾难恢复
㈠在ROMmon下使用Xmodem下载IOS:
☆在这之前建议更改控制台速率来加速下载速度(因为默认是9600 bit/s,你可以更改到115200 bit/s )★:
①.进入ROMmon模式使用confreg.有些平台不支持confreg这个寄存器配置工具,需要手动更改寄存器值(需要使用一些晦涩的命令).这就需要充分了解这些十六进制值的含义.知道这些也算半个专家了→废话↑↓
rommon 1 > confreg
Configuration Summary
......
boot: the ROM moniter
do you wish to change the configuration? y/n [n]: y
enable "diagnostic mod" ? y/n [n]:
......
change console baud rate ? y/n [n]: y
enter rate : 0 = 9600, 1 = 4800, 2 = 1200, 3 = 2400
4 = 19200, 5 = 38400, 6 = 57600, 7 = 115200 [0]: 7
change the boot characteristics? y/n [n]:
Configuration Summary
enable are:
breakabout has effect
console baud: 115200
boot: the ROM Moniter
do you wish change the configuation? y/n [n]:
② 在ROMmon模式下使用xmodem恢复Cisco IOS
rommon 1 > xmodem -?
xmodem: illegal option -- ?
usage: xmodem [-cyrx]
-c CRC 16
-y ymodem-batch protocol
-r copy image to dram for launch
-x do not launch on download completion
rommon> xmode -c 2600-is-mz.122-10a.bin
Do not start the sending program yet...
Warning: All existing data in bootflash will be lost!
Invoke this application only for disaster recovery.
Do you wish to continue? y/n [n]: y
Ready to receive file c2600-is-mz.122-10a.bin ...
(注意: 在路由器重起的时候要把原来的console baud改为9600 bit/s)
㈡ 通过配置ROMmon下环境变量使用TFTP(tftpdnld)恢复Cisco IOS
①tftpdnld最少所需的环境变量(:需要注意的是Cisco IOS可是case-senstive的!检查环境变量可以使用set命令):
IP_ADDRESS
IP_SUBNET_MASK
DEFAULT_GATEWAY
TFTP_SERVER
TFTP_FEILE
②使用tftpdnld(很简单,但我把输出也抄了上来)
rommon 1 > tftpdnld
IP_ADDRESS:172.16.0.12;
IP_SUBNET_MASK=255.255.255.0
DEFAULT_GATEWAY=172.16.0.1
TFTP_SERVER=172.31.0.4
TFTP_FILE=recovery/original_2003_Jan_22/c2600-mz.121-5
Invoke this command for disaster recovery only.
wARNING:all existing data in all partitions on flash will be lost !
Do you wish to continue? y/n [n]: y
Receiving recovery/original_2003_Jan_22/c2600-mz.121-5 from
172.31.0.4 !!!!!!!!!!!!.!!!!!!!!!!!!!!!!!!!.!!
File reception completed.
Copying file recovery/original_2003_Jan_22/c2600-mz.121-5 to flash.
Erasing flash at 0x607c0000
program flash location 0x60440000
㈢定位和加载Cisco IOS
可使用命令来修改(详细寄存器值极其定义在本文的最后列出):
Router# configure terminal
Router(config)# boot system flash IOS_filename
Router(config)# boot system tftp IOS_filename tftp_address
Router(config)#boot system rom
[Ctr-Z]
Router# copy running-config startup-config
二 密码恢复
注意,enable secret命令通过不可逆的加密函数存放enable secret口令,提供了更强的安全性;然而,如果丢失的口令被加密,将不能恢复在口令(用show startup-config只能看到md5的加密信息→一团乱码.但是通过service password-encryption命令加密的口令却可以恢复).根据Cisco文档,下列Cisco产品(估计是早期产品)使用较晦涩的命令:
Cisco 2000
Cisco 2500
Cisco 3000
Cisco 4000
Cisco AccessPro
Cisco 7000 (RP)
Cisco AGS
Cisco IGS(IGS?让我想起《三国战记》和《西游释厄传》了)
Cisco STS-10x
下列Cisco 产品使用confreg工具:
CIsco 1003 Cisco 7200
Cisco 1007 Cisco uBR 7200
Cisco 1005 Cisco 7500
Cisco 1600 Cisco 12000(传说中的一万两千型Internet路由器Grrr...)
Cisco 1700 Cisco LS1010
Cisco 2600 Catalyst 5500 (RSM)
Cisco 3600 Catalyst 8510-CSR
Cisco 4500 Catalyst 8510-MSR
Cisco 4700 Catalyst 8540-CSR
Cisco AS5x00 Catalyst 8540-MSR
按照下面的步骤恢复Cisco路由器上的密码:
①进入ROMmon模式:在机器加电的60秒内按下Break键(其实是发出Break信号,在PC上是个组合键:+.此外某些终端仿真程序还可以定义用什么键发出该信号)
②:输入字母o或者e/s 2000002命令以读取原始值(一般默认值是0x2102.还可以在普通模式下进如Privilege Exec模式使用show version来查看).当显示出配置值后按下Esc返回提示符.
使用o/r命令(不支持confreg的机器上)配置寄存器码的第六位(与原始值一起.注意是从第0位开始的).例如,如果原始码为0x2102,那么配置第六位为0x2142(hexdecimal0x2102=0010,0001,0000,0010,0x2142=0010,0001,0100,0010)
> 0x2142
(P.S/ 0x2142使机器从闪存中启动,0x2141从ROM中启动.如果系统配有闪存,并且没有受到损坏,0x42是最好的设置.只有在闪存被擦除或者没有闪存的情况下,才能使用0x41.如果值为0x41,只能查看或者清除配置文件,但不能更改口令.闪存擦了或坏了怎么半?)
在支持confreg的路由器上,俺们必须使用该工具.在这个工具中,当被问到:"Do you wish to change configuration[y/n]?"时,按y.,对后续问题都答no.直到出现ignore system config info[y/n]?时,回答yes.对后续问题答no.知道出现Change boot characteristics info [y/n]?输入yes,会出现enter to boot.在次提示符下,输入2并回车则从闪存启动.1从ROM中启动.
③:使用i命令初始化和重启机器.在有些机器上,俺们必须使用boot 命令来初始化的重启.
④机器重启后将进去setup模式.对所有问题答no或直接[Ctrl]+[z].然后进入特权模式
⑤要查看口令,如果没有加密,可以使用more nvram:stratup-config或show startup-config.
要改变口令(例如,口令是加密的):
Router#copy startup-config running-config
在Cisco IOS 10.3以前的版本中使用
Router#config memory
(注意:因为路由器在启动中没有加载配置文件,现在的所有接口都是关闭的)
Router#config terminal
Router(config)#enable secret newpassword
Router(config)#enable password newpassword
Router(config)#line con 0
Router(config)#login
Router(config)#password newpassword
Router#copy running-config startup-config
⑥恢复原始的寄存器值并保存配置文件
Router#config terminal
Router(config)#config-register 0xvalue(默认0x2102)
Router#copy running-config statrup-config
⑦重启机器后一切OK!
三 寄存器配置值及定义
Bits Hex Binary Description
0-3 0x000-0x00f 0000,0000,0000,0000 Boot 字段
4 0x0010 0000,0000,0000,0000 快速启动,1=不装载bootstrap映像启动指示的IOS
5 0x0020 0000,0000,0000,0000 1=使用扩展波特率,将波特率置为19220 bit/s以上
6 0x0040 0000,0000,0000,0000 1=忽略NVRAM中的配置文件
7 0x0080 0000,0000,0000,0000 OEM位,1=关闭启动时的Cisco标旗显示
8 0x0100 0000,0000,0000,0000 1=在第一个60秒后关闭break键
9 0x0200 0000,0000,0000,0000 控制用于系统调试的从bootstap程序功能
10 0x0400 0000,0000,0000,0000 netboot广播格式,1=使用全0的广播地址
11-12 0x0800-0x1000 0000,0000,0000,0000 控制console port波特速率,00=9600 bit/s
13 0x2000 0000,0000,0000,0000 对netboot失败做出响应,1=5次失败后从ROM启动
14 0x4000 0000,0000,0000,0000 netboot子网广播,1=子网广播地址
15 0x8000 0000,0000,0000,0000 起用诊断消息,1=起用和使用测试系统配置
Boot字段注释(0-3)
Hex value Binary value Description
0x00 0000,0000,0000,0000 启动后驻留在bootstrap中
0x01 0000,0000,0000,0001 从ROM启动
0x02 -0xFF 0000,0000,0000,0000 从指定的默认启动文件启动系统
Console port速率控制位(11-12)
Speed Binary value
9600 0000,0000,0000,0000
4800 0000,1000,0000,0000
1200 0001,0000,0000,0000
2400 0000,0000,0000,0000
扩展Console port速率控制位(11-12且第5位为1)
Speed Binary value
19200 0000,0000,0010,0000
38400 0000,1000,0010,0000
57600 0001,0000,0010,0000
115200 0001,1000,0010,0000