Cisco设备IOS的恢复方法

IOS恢复的2种方法

    如果不小心把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来替代。

文章录入:csh    责任编辑:csh

(0)

相关推荐

  • asp.net 通过UserAgent判断智能设备(Android,IOS)

    最近一直在升级公司的手机站点,出了个触屏版专用的,做好后,就尝试通过 Agent 来判断相应的智能手机设备,然后跳转到新的手机站点经过不懈的努力,终于搜集了比较全的 智能设备 的 Agent,然后又写了程序,直接上代码吧 ,希望能帮助到你 复制代码 代码如下: /// <summary> /// 根据 Agent 判断是否是智能手机 /// </summary> /// <returns></returns> public static bool Check

  • iOS获取当前设备型号等信息(全)包含iPhone7和iPhone7P

    #include <sys/types.h> #include <sys/sysctl.h> //获得设备型号 + (NSString *)getCurrentDeviceModel { int mib[2]; size_t len; charchar *machine; mib[0] = CTL_HW; mib[1] = HW_MACHINE; sysctl(mib, 2, NULL, &len, NULL, 0); machine = malloc(len); sysc

  • iOS如何获取屏幕宽高、设备型号、系统版本信息

    介绍 在我学习Android开发的时候,觉得设备适配是件很头疼的事情,android的设备太多了,那时就很羡慕iOS开发的人不用操心适配的问题,而当我开始学习iOS开发后,iOS的屏幕也开始多种多样了起来...于是也得做适配了,sad... 之前也研究过,这里把我的方法记录下来,本文介绍三个常用的设备信息获取方式: 获取屏幕的宽高.用于在设置控件位置的时候计算相对屏幕的距离 获取设备的型号.5s和6+的屏幕大小相差很远,相应的控件位置.大小都需要做出调整,不然就会出现在6+上显得很空旷或者在5s

  • IOS获取当前版本号 Bundle ID等信息的方法详解

     IOS获取当前版本号 Bundle ID等信息的方法 1:获取bundle Id信息:[[NSBundle mainBundle]bundleIdentifier]: 2:获取版本号:[[[NSBundle mainBundle]infoDictionary] objectForKey:@"CFBundleShortVersionString"]; 3:获取build号:[[[NSBundle mainBundle]infoDictionary] objectForKey:@&quo

  • 使用Reachability类判断iOS设备的当前网络连接类型

    (1). 下载 https://developer.apple.com/library/ios/samplecode/Reachability/Reachability.zip (2). 拖reachability.h,reachability.m入工程 (库非ARC) ARC:-fno-objc-arc (3) .导入SystemConfiguration.framework (4).用法 复制代码 代码如下: -(NSString*)getNetType   {          NSStr

  • iOS获取当前app的设备名称和版本号等内容

    话不多说,请看代码: NSDictionary *infoDictionary = [[NSBundle mainBundle] infoDictionary]; CFShow(infoDictionary); // app名称 NSString *app_Name = [infoDictionary objectForKey:@"CFBundleDisplayName"]; // app版本 NSString *app_Version = [infoDictionary object

  • iOS获取设备唯一标识的8种方法

    8种iOS获取设备唯一标识的方法,希望对大家有用. UDID UDID(Unique Device Identifier),iOS 设备的唯一识别码,是一个40位十六进制序列(越狱的设备通过某些工具可以改变设备的 UDID),移动网络可以利用 UDID 来识别移动设备. 许多开发者把 UDID 跟用户的真实姓名.密码.住址.其它数据关联起来,网络窥探者会从多个应用收集这些数据,然后顺藤摸瓜得到这个人的许多隐私数据,同时大部分应用确实在频繁传输 UDID 和私人信息. 为了避免集体诉讼,苹果最终决

  • iOS获取当前设备WiFi信息的方法

    前言 最近项目有个需求,获取当前连接的wifi的信息,通过努力终于实现了,现在分享给大家,有需要的可以一起来看. 注意:本文是以Swift代码为例 1.添加模块引用 首先我们在需要获取 WiFi 信息的地方引用需要的模块: import SystemConfiguration.CaptiveNetwork 2.添加获取代码 接下来编写获取 WiFi 信息的代码,如下: //获取 WiFi 信息 func getWifiInfo() -> (ssid: String, mac: String) {

  • Cisco设备IOS的恢复方法

    IOS恢复的2种方法     如果不小心把Router或者Switch的IOS删除了,特别是Flash中的IOS和ROM中的Mini IOS都没有了的话,连启动都不行的话,有什么方法恢复它呢?答案是方法不只一种,而是两种.其实是我只知道两种:) 第一种方法:X-Modem 以前我曾经尝试过一种方法,就是当Flash被删除后,启动无法进入系统,可以用X-Modem来恢复它.当时我不小心删除了一台Cisco2950交换机的Flash IOS,导致系统无法启动,在查过不少资料后得到一个结论:唯一的方法

  • Cisco常见路由器密码和版本恢复方法探讨

    摘要:本文对CISCO公司的一些常见路由器的密码恢复进行了探讨和总结,同时描述了对路由器版本的灾难性恢复的一些方法. 关键字:路由器,密码,版本. 随着互联网规模的不断扩大,网络与我们的生活已经越来越近,许多政府,学校和公司都组建了自己的信息网络,这使得路由器这一网络设备的使用越来越广泛.在使用路由器的过程中经常会出现忘记密码的事情,使维护人员无法登录,影响工作的进一步开展.同时,在操作过程中有时会因为一些意想不到的原因,将路由器内部的版本映象文件损坏,使路由器无法正常工作,路由器退回到监控状态

  • IOS 添加自定义字体方法详解

    1:获取字体文件 从各种渠道下载字体文件ttf, 网站或者从别的ipa里扣出来.(以fzltxh.ttf为例) 2:将fzltxh.ttf文件拷贝到工程中 3:在Info.plist中添加项: Fonts provided by application(UIAppFonts)  可以添加一个或多个item, 如 item0 --  fzltxh.ttf 4:找出真正的字体名称: 因为使用字体时, 要使用字体的真实名称, 而不是文件名, 可以用以下代码来遍历当前设备可用的字体名称, 再从中找出刚才

  • 使用Python脚本来获取Cisco设备信息的示例

    今天发现一个使用python写的管理cisco设备的小框架tratto,可以用来批量执行命令. 下载后主要有3个文件: Systems.py 定义了一些不同设备的操作系统及其常见命令. Connectivity.py 是主要实现功能的代码,其实主要就是使用了python的pexpect模块. Driver.py是一个示例文件. [root@safe tratto-master]# cat driver.py #!/usr/bin/env python import Connectivity im

  • cisco 5000 ATMLANE MOUdle,.Cisco 6000 MAFC口令恢复

    cisco 5000 ATMLANE MOUdle 口令恢复 Password Recovery Procedurefor the Catalyst 5000 ATM LANE Module DescriptionThis document describes the password recovery procedure for the Cisco Catalyst 5000 ATM LAN emulation (LANE) module(WS-X5153/5154/5155/5156/515

  • 服务器断电导致虚拟机数据丢失的恢复方法详解

    本文实例讲述了服务器断电导致虚拟机数据丢失的恢复方法.分享给大家供大家参考,具体如下: 在服务器运行过程中如果出现意外情况突然断电很容易引起服务器故障,服务器中的硬件设备损坏可以修复或者购买,但是服务器中的数据一旦发生故障丢失,对于企业来说将是不可估量的损失.那么服务器数据一旦丢失就除了痛哭之外别无他法了吗?不是的,下面我将引用一个真实案例为大家讲解意外断电导致服务器数据丢失的数据恢复方法和过程.文中若有歧义之处欢迎探讨. 虚拟机数据丢失情况描述 因服务器突然断电原因导致Xen Server服务

  • IOS中UIImageView方法实现简单动画

    IOS中UIImageView方法实现简单动画 查阅UIImageView文档时,发现UIImageView有一组关于动画的方法/参数,可以实现简单的动画.包括: animationImages; highlightedAnimationImages; animationDuration; animationRepeatCount; - startAnimating; - stopAnimating; - isAnimating; 上面的这组方法很简单,一目了然:设置好动画的图片.动画时间.重复

  • iOS 图片旋转方法实例代码

    通过 CGImage 或 CIImage 旋转特定角度 UIImage可通过CGImage或CIImage初始化,初始化方法分别为init(cgImage: CGImage, scale: CGFloat, orientation: UIImageOrientation)和init(ciImage: CIImage, scale: CGFloat, orientation: UIImageOrientation).通过UIImageOrientation的不同取值,可以使图片旋转90.180.2

  • MySQL 自动备份与数据库被破坏后的恢复方法第1/2页

    一.前言: 当数据库服务器建立好以后,我们首先要做的不是考虑要在这个支持数据库的服务器运行哪些受MySQL提携的程序,而是当数据库遭到破坏后,怎样安然恢复到最后一次正常的状态,使得数据的损失达到最小. 或者说,仅仅是数据库服务器的建立,只能说明它能做些什么,并不代表它能稳定的做些什么.灾难恢复的效率及全面性,也是系统的稳定性的一个准因素,尤其对于一个服务器系统. 这一节,介绍数据库自动备份以及数据库被破坏后的恢复的方法.在这里,我们使用mysqlhotcopy,并且定义一段Shell脚本来实现数

  • Mongodb数据库误删后的恢复方法(两种)

    方法一:通过 oplog 恢复 如果部署的是 MongoDB 复制集,这时还有一线希望,可以通过 oplog 来尽可能的恢复数据:MongoDB 复制集的每一条修改操作都会记录一条 oplog,所以当数据库被误删后,可以通过重放现有的oplog来「尽可能的恢复数据」.前不久遇到的一个用户,运气非常好,数据库是最近才创建的,所有的操作都还保留在oplog里,所以用户通过oplog把所有误删的数据都找回了. 通过 oplog 恢复数据的流程非常简单,只需要把oplog集合通过mongodump导出,

随机推荐