如果不小心把Router或者Switch的IOS删除了,特别是Flash中的IOS和ROM中的Mini IOS都没有了的话,连启动都不行的话,有什么方法恢复它呢?答案是方法不只一种,而是两种。其实是我只知道两种:)

第一种方法:X-Modem

以前我曾经尝试过一种方法,就是当Flash被删除后,启动无法进入系统,可以用X-Modem来恢复它。当时我不小心删除了一台Cisco2950交换机的Flash IOS,导致系统无法启动,在查过不少资料后得到一个结论:唯一的方法通过X-Modem来恢复。我的恢复方法如下:

1、用控制线连接交换机console口与计算机串口1,用带有xmodem功能的终端软件连接(win2000 and xp的超级终端就带这功能)。

2、设置连接方式为串口1(如果连接的是其他串口就选择其他串口),速率9600,无校验,无流控,停止位1。或者点击默认设置也可以。

3、连接以后计算机回车出现交换机无ios的界面,一般的提示符是:switch:

4、拔掉交换机后的电源线重新启动交换机

5、在超级终端输入:
switch:flash_init
会出现如下提示:
Initializing Flash...

6:输入拷贝指令:

switch:copy xmodem: flash:image_filename.bin

出现如下提示:

Begin the Xmodem or Xmodem-1K transfer now...

7、系统提示不断出现C这个字母就可以开始传文件了

8、点击超级终端菜单:传送---发送文件,在协议选项中选择Xmodem或者Xmodem-1K协议,然后选择ios的影像文件(*.bin),开始传送。

9、因为不能改速率,所以传送得很慢,我的大概传送了80分钟左右,请耐心等待。

10、传送完毕后提示:
File "xmodem:" successfully copied to ....
switch:

11、在提示符下输入

switch:boot

启用新的ios系统

12、重新加电完成恢复工作。

这个是我恢复的方法,现在看来非常的不科学,效率低。后来看了别人同样用X-Modem恢复IOS,但是效率要高的方法:

先打开超级终端,进入rommon 模式(Ctrl+Break组合键),键入confreg, 如下: 
  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
  rommon 1 > confreg 回车 
  
  Configuration Summary 
  enabled are: 
  load rom after netboot fails 
  console baud: 9600 
  boot: image specified by the boot system commands 
  or default to: cisco2-C2600 
  
  do you wish to change the configuration? y/n [n]: y (选择 yes) 
  enable "diagnostic mode"? y/n [n]: n (选择 no) 
  enable "use net in IP bcast address"? y/n [n]: n (选择 no) 
  disable "load rom after netboot fails"? y/n [n]: n (选择 no) 
  enable "use all zero broadcast"? y/n [n]: n (选择 no) 
  enable "break/abort has effect"? y/n [n]: n (选择 no) 
  enable "ignore system config info"? y/n [n]: n (选择 no) 
  change console baud rate? y/n [n]: y (选择 yes) 
  enter rate: 0 = 9600, 1 = 4800, 2 = 1200, 3 = 2400 
  4 = 19200, 5 = 38400, 6 = 57600, 7 = 115200 [0]: 7 (选择 7,用最大的115200速率的xmodem传输) 
  change the boot characteristics? y/n [n]: n (选择 no) 
  
  Configuration Summary 
  enabled are: 
  load rom after netboot fails 
  console baud: 115200 
  boot: image specified by the boot system commands 
  or default to: cisco2-C2600 
  
  do you wish to change the configuration? y/n [n]: n (选择 no) 
  
  You must reset or power cycle for new config to take effect 
  
  rommon 2 > reset 回车 
  
  注意:在此时键入 reset键之前,开始定义串口速度(我的电脑---端口属性----串口速度调为115200),然后再修改超级终端里设置速率为115200,记住,一定这么做!否则出现乱码! 然后关闭这个超级终端,重新建立一个超级终端连接,(期间系统重新启动)启动后,出现 
  
  rommon 1> 提示符 
  然后,输入 
  rommon 1> xmodem -r 
  
  Do not start the sending program yet... 
  
  Invoke this application only for disaster recovery. 
  Do you wish to continue? y/n [n]: y (选择 yes) 
  Ready to receive file ... 
  
  此时,在超级终端的菜单上的“传送”---“发送文件”----选择IOS镜像文件所在地以及选择使用“xmodem”协议,点击“发送”即可 
  
  然后等待10-20分钟左右就把3-6M的IOS灌进去了! 
  
  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
  (修改回计算机串口与超级终端、路由器confreg下的xmodem等9600的传输速率) 
  
  (videre注:实际用的时候,我发现这个命令总是改不成功,后来发现在line con 0下面有了一个speed 115200,所以即使改register成功,启动以后router又执行speed 115200,还是不行,所以如果有这个问题,记得把这个语句no掉) 
  
  Router>en 进入新IOS的特权模式 
  
  Router#reload 重启系统 
  
  Proceed with reload? [confirm] 回车 
  
  00:01:04: %SYS-5-RELOAD: Reload requested 
  System Bootstrap, Version 11.3(2)XA4, RELEASE SOFTWARE (fc1) 
  Copyright (c) 1999 by cisco Systems, Inc. 
  TAC:Home:SW:IOS:Specials for info 
  PC = 0xfff0a530, Vector = 0x500, SP = 0x680127b0 
  C2600 platform with 24576 Kbytes of main memory 
  
  PC = 0xfff0a530, Vector = 0x500, SP = 0x80004684 
  
  monitor: command "boot" aborted due to user interrupt 
  
  rommon 1 > confreg ( 输入“confreg”命令) 
  
  Configuration Summary 
  enabled are: 
  load rom after netboot fails 
  console baud: 115200 
  boot: image specified by the boot system commands 
  or default to: cisco2-C2600 
  
  do you wish to change the configuration? y/n [n]: y (选择 yes) 
  enable "diagnostic mode"? y/n [n]: n (选择 no) 
  enable "use net in IP bcast address"? y/n [n]: n (选择 no) 
  disable "load rom after netboot fails"? y/n [n]: n (选择 no) 
  enable "use all zero broadcast"? y/n [n]: n (选择 no) 
  enable "break/abort has effect"? y/n [n]: n (选择 no) 
  enable "ignore system config info"? y/n [n]: n (选择 no) 
  change console baud rate? y/n [n]: y (选择 yes) 
  enter rate: 0 = 9600, 1 = 4800, 2 = 1200, 3 = 2400 
  4 = 19200, 5 = 38400, 6 = 57600, 7 = 115200 [7]: 0 (选择 0,改回用标准速率速率9600的xmodem传输) 
  change the boot characteristics? y/n [n]: n (选择 no) 
  
  Configuration Summary 
  enabled are: 
  load rom after netboot fails 
  console baud: 9600 
  boot: image specified by the boot system commands 
  or default to: cisco2-C2600 
  
  do you wish to change the configuration? y/n [n]: n 
  
  You must reset or power cycle for new config to take effect 
  rommon 2 > 
  
  此时手工改回计算机串口与超级终端2者传输速率为9600 
  
  然后敲入 
  rommon 2 >reset 
  ( 最好关电源) 
   
    他的方法有两个地方和我的不一样,首先是他在启动后进入了rommon模式,其次是他

修改了串口的速率,这样就比我快的多了。

第二种方法:TFTP

本来在用X-Modem之前尝试用TFTP的方法来恢复,但是都没有成功,就以为TFTP方法行不同。但后来在网上看到,其实TFTP也是可以用的,而且效率可能更高。下面是别人恢复的方法,可惜我没实践过,因为我没有进入过rommon模式:

在一台机器上安装TFTP服务器软件,将IOS文件放置在TFTP服务器的默认根目录下,打开TFTP服务器,用控制线将这台机器与ROUTER连接起来,另外用交叉网线连接机器的网卡和ROUTER的以太口。(也可以用普通的网线将ROUTER和交换机相连再连接机器)做好以上工作后,打开机器的超级终端工具,连接上ROUTER,按Ctrl+Break组合键,此时窗口中出现的命令行提示符为: ROMMON 1 > (其中“1”代表命令行的行数)。在提示符后输入命令:

  ROMMON 1 >IP_ADDRESS= ROUTER的IP地址(要和TFTP服务器在同一网段内) 
  ROMMON 2 >IP_SUBNET_MASK= ROUTER的子网掩码 
  ROMMON 3 >DEFAUT_GATEWAY= 默认网关地址 (可以没有,也可以是TFTP服务器) 
  ROMMON 4 >TFTP_SERVER= TFTP 服务器IP地址 
  ROMMON 5 >TFTP_FILE= IOS文件名(只给出文件名,不需要路径) 
  ROMMON 6 >tftpdnld 回车 
  
  注意:前面的几条命令必须使用大写,而最后的tftpdnld则要用小写。 
  在tftpdnld命令执行后,只要根据提示选择,就可完成文件的传输。当文件传输完后,将自动回到命令行下,输入reset重启ROUTER,重启后就又回到了熟悉的IOS模式下甚至连以前配置的信息都不会丢失。 
  注意的几个问题:
  A.在连接运行tftp server的PC 机至路由器时,必需使用路由器的第一个以太口,即Ethernt0(对2500系列等),Ethernet0/0(对2600系列等),其它系列略有差别,可根据使用手册进行确定。
  B.在使用连接电缆时,一定要用交叉线,因这种情况属DTE与DCE之间的连接。
  C.在运行tftp server的PC 机上,一定要有相应的路由器的IOS映象文件,可以通过多种渠道和多种方式获得该文件。
  D.tftp server的地址可以随意定义,但必须与路由器定义的地址在同一网段上。

可以看到,以上两种方法都需要有IOS文件,如果没有备份原文件的话,可以找个同一版本的IOS来替代。

Cisco设备IOS的恢复方法 两种方法的更多相关文章

  1. iOS 关于退出键盘两种方法和避免遮挡

    退出键盘: 方法1:不使用代理,直接使用: -(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event { [self.textFi ...

  2. IOS发送Email的两种方法

    IOS系统框架提供的两种发送Email的方法:openURL 和 MFMailComposeViewController.借助这两个方法,我们可以轻松的在应用里加入如用户反馈这类需要发送邮件的功能. ...

  3. yii2.0高级框架配置时打开init.bat秒退的解决方法 (两种方法)

    第一种: 这几天刚接触到yii2.0框架,在配置advanced版本时运行init.bat初始化文件时老是闪退: 用cmd运行该文件时显示:The OpenSSL PHP extension is r ...

  4. IOS发送Email的两种方法-备

    1.openURL 使用openURL调用系统邮箱客户端是我们在IOS3.0以下实现发邮件功能的主要手段.我们可以通过设置url里的相关参数来指定邮件的内容,不过其缺点很明显,这样的过程会导致程序暂时 ...

  5. ios实现倒计时的两种方法

    方法1:使用NSTimer来实现 主要使用的是NSTimer的scheduledTimerWithTimeInterval方法来每1秒执行一次timeFireMethod函数,timeFireMeth ...

  6. Oracle导出/导入数据方法--两种方法(pde格式/dmp格式)

    转至:https://www.cnblogs.com/houbxblogs/articles/13365557.html?ivk_sa=1024320u 1.导出数据方法一(pde格式) 工具→ 导出 ...

  7. 用easyui从servlet传递json数据到前端页面的两种方法

    用easyui从servlet传递json数据到前端页面的两种方法 两种方法获取的数据在servlet层传递的方法相同,下面为Servlet中代码,以查询表中所有信息为例. //重写doGet方法 p ...

  8. Git恢复之前版本的两种方法reset、revert

    实战 回退 1.删除之前的提交 git reset --hard id 推送到远程 git push -f [git log中确实删除了,但是拿到可以恢复] 2.不删除之前的提交 git revert ...

  9. ios开发——实用技术OC篇》倒计时实现的两种方法

    倒计时实现的两种方法 timeFireMethod函数,timeFireMethod进行倒计时的一些操作,完成时把timer给invalidate掉就ok了,代码如下: secondsCountDow ...

随机推荐

  1. Oracle Day3 多行函数、多表查询

    1.多行函数 Sum avg max min count 组函数具有滤空的作用(添加nvl屏蔽该功能) 分组group by 多行分组 分组过滤 where 和分组过滤的区别(having) 分组的增 ...

  2. SVN的学习以及使用!

    什么是版本控制? 版本控制是记录一个或若干文件内容变化的系统.以便将来查阅特定版本修订情况. 版本控制,就像是一本历史书,记录了软件版本的迭代过程. 为什么需要"版本控制" 需要清 ...

  3. MFC中MessageBeep与sndPlaySound播放声音函数使用

    MessageBeep(0x00000000L);    //用来播放系统默认音频文件,如0x00000000L为系统提示音,具体音频对应规则,请参照MSDN. sndPlaySound函数用来播放指 ...

  4. HDU2629:Identity Card

    Problem Description Do you own an ID card?You must have a identity card number in your family's Hous ...

  5. MQL5 获取最后一单 利润

    ///x 最后几单 double getLastProfit(int x) { HistorySelect(,TimeCurrent()); double profit ; long ticket ; ...

  6. IBM Mq Spring JMS 的xml配置

    <?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www.spr ...

  7. 状态转移的最短路 隐式图搜索 UVA 658

    紫书365 题目大意:给你n个全都是bug的东西,然后每次可以修复,给你修复前后的状态,问最后如果能把bug全都修复,最少需要多少时间. 思路:从最初状态开始,然后枚举bug即可. 表示priorit ...

  8. Linux 添加ssh 公钥访问

    登陆被管理的服务器,进入需要远程登陆的用户目录,把公钥放到用户目录的 .ssh 这个目录下(如果目录不存在,需要创建~/.ssh目录,并把目录权限设置为700),把公钥改名为authorized_ke ...

  9. sinaBlog中小知识总结

    1.上拉刷新的时候记得移除老的数据(同样应用于其他地方) if (vc.currentPage == 1) { //上拉加载 记得移除新的 [vc.totalArr removeAllObjects] ...

  10. Linux 配置tomcat遇见的若干问题

    1.提示catalina.sh缺失 原因:未对bin目录下的.sh文件授权 执行:chmod +x bin/*.sh即可 2.正常启动Tomcat 但是外界无法访问 Linux防火墙原因,进入到 et ...