思科设备,包括路由器和交换机都运行着一个特殊的操作系统――IOS(互联网操作系统 Internetwork Operating System),与windows这样的电脑操作系统不同,思科的IOS是一个专门为思科设备提供路由、交换、网络互连以及远程通信功能专有内核的操作系统。第一版IOS是由William Yeager 在1986年编写的。
思科的IOS一般都是以映象文件形式保存在路由器或者交换机的flash中,所以一般启动一台路由器或交换机,在通过开机自检(post)后,会从flash中查找IOS,如果有IOS存在则会加载这个IOS并进行解压缩到内存中,如果flash中没有IOS则会尝试从网络上(如TFTP服务器上)去加载一个可用IOS,成功调用到IOS后就会去读取的配置文件并加载,最后完成启动。
如同象电脑操作系统一样,我们也可以对路由器或交换机的IOS进行备份和升级,并且在flash空间足够的情况下可以上传多个IOS印象文件到flash中,这样我们还可以对设备进行设置,决定设备到底从哪个IOS启动。
对于IOS的文件管理,思科有一套专有的文件系统(简写为IFS),在这个文件系统下允许我们像在windows 中的命令行提示符一样操作文件和目录。IFS提供的了各种目录和目录下文件管理功能。但注意,如果要在闪存存储器中建立子目录的话那只有比较新的平台才能进行此操作。
一般来说,对于一个思科设置常用的三类存储设备
Flash:用于存放IOS文件
Nvram:在路由器上用于存放配置文件(交换机的配置文件也存于flash上后面会讲到)
System:即内存,只有设备运行过程中才有内容,断电后就消失。
这三个存储设备,就象是以交换机或路由器为根目录的三个子目录,我们都可以通过cd命令来进入并可以用dir来查看目录中的具体内容。
下面介绍一下IFS中常用的一些命令:
dir 与windows中功能相同,可以查看目录下的文件,默认情况是看到flash:/目录下的内容
Copy 可用于升级、备份IOS
delete 删除文件,
erase或format 这两个命令都可以将特定的存储器,如flash内容完全清除
cd和pwd、 cd用于改变当前目录,而pwd用于显示当前目录
mkdir和rmdir mkdir用于创建目录,rmdir则用于删除目录。
最新的文件系统使用URL表示文件,所以有些管理员在以传统方式备份IOS时会发现明明自己有正确的IOS文件,却始终无法备份,其原因就可能是需要用带目录路径的方式来精确确定IOS文件的位置,下面我们就来看一个用IFS来备份交换机的一个例子。
一、 用IFS备份IOS
我们以一台3550-48的交换机为例。首先我们运用dir命令来查看一下这台3550-48的交换机的flash中有些什么内容。
3550_48#dir
Directory of flash:/
2 -rwx 0 Jan 01 1970 00:01:28 env_vars
3 -rwx 342 Jan 01 1970 00:01:28 system_env_vars
4 -rwx 1696 May 08 1993 01:18:52 vlan.dat
5 -rwx 4194 Mar 13 1993 07:31:32 satrt
7 -rwx 4695 May 06 1993 23:05:35 config.text
9 drwx 192 Mar 01 1993 00:03:13 c3550-i9q3l2-mz.121-8.EA1c
15998976 bytes total (11707392 bytes free)
这里哪一个文件是我们要备份的IOS映象文件呢,c3550-i9q3l2-mz.121-8.EA1c有点像,不过这个其实也不是。让我们这个“文件”的属性,其为drwx,这一个“文件”其实是一个目录,那么IOS文件在哪儿呢。让我们用cd命令再进这个目录看一下
3550_48# 3550_48#cd c3550-i9q3l2-mz.121-8.EA1c
3550_48#dir
Directory of flash:/c3550-i9q3l2-mz.121-8.EA1c/
10 drwx 640 Mar 01 1993 00:02:26 html
21 -rwx 2464274 Mar 01 1993 00:03:13 c3550-i9q3l2-mz.121-8.EA1c.bin
22 -rwx 252 Mar 01 1993 00:03:13 info
15998976 bytes total (11707392 bytes free)
大家看,我们的IOS印象文件c3550-i9q3l2-mz.121-8.EA1c.bin其实在flash:/c3550-i9q3l2-mz.121-8.EA1c/这个位置藏着呢,大小为2464274bytes,也就是大约为2.4M左右,而目前flash上还有11707392 bytes 剩余空间。
知道了IOS文件的位置了,下面我们就来备份这个IOS文件
3550_48# copy flash:/c3550-i9q3l2-mz.121-8.EA1c/c3550-i9q3l2-mz.121-8.EA1c.bin tftp
Address or name of remote host []? 192.168.8.26
Destination filename [c3550-i9q3l2-mz.121-8.EA1c.bin]?
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
2464274 bytes copied in 44.276 secs (56006 bytes/sec)
这样,我们通过IFS的目录结构精确定位了IOS文件的位置,就可以将这个IOS文件备份下来了。
二、 升级IOS和设置启动方式
跟电脑操作系统一样,我们一样可以对思科的交换机和路由器进行重装系统和升级系统。比如我们在设备运行正常的情况下备份了IOS,当系统出现问题时我们就可以尝试将备份的IOS文件再复制回设备的FLASH中,或者我们得到一个比现有IOS功能更多同时又适合我们设备硬件要求的IOS,我们也可以将这个IOS复制到flash中达到升级操作系统的效果。如果我们的flash容量够大的话,我们可以在flash中上传进多个IOS,并象电脑操作系统一样,设置从其中的一个操作系统启动,是不是有点象电脑多操作系统啊。
下面就路由器和交换机分别来看看。
(一)路由器
首先我们通过IFS的方式将一个新IOS上传到路由器的flash中
Router#Copy tftp://192.168.8.26/ c2600-ipbasek9-mz.124-8.bin/ flash:/ c2600-ipbasek9-mz.124-8.bin
然后让我们来查看一下
Router#dir
System flash directory:
File Length Name/status
1 5571584 c2600-i-mz.122-28.bin
2 13169700 c2600-ipbasek9-mz.124-8.bin
[18741284 bytes used, 13772764 available, 32514048 total]
32768K bytes of processor board System flash (Read/Write)
我们发现目前flash中两个IOS文件。如果我们现在直接重启路由器,我们用show version命令可以发现路由器还是原来的IOS启动的。
Router#show version
……
System returned to ROM by power-on
System p_w_picpath file is "flash: c2600-i-mz.122-28.bin "
……
就象电脑操作系统一样,就算我们同时安装了XP和2003两个操作系统,电脑还是会有一个默认选项选择到底是从哪个操作系统启动。那让我们来查看一下思科路由器的启动设置。默认情况下,思科路由器会从flash中的第一文件启动,所以如果我们想从其他的IOS文件启动系统的话我们就可以用下面的boot system命令指定。
Router(config)#boot system flash C2800-ipbasek9-mz.128-8.bin
//指定设备从flash中的C2800-ipbasek9-mz.128-8.bin IOS 映象包启动,即第二文件启动
Router(config)#exit
Router#wr
//保存配置
Router#reload
//重启
重启后,我们用执行下面的show version命令就可以发现我们的路由是从第二个映象包启动的。
Router#show version
……
System returned to ROM by power-on
System p_w_picpath file is "flash:c2600-ipbasek9-mz.124-8.bin"
……
这种方式对于当我们将一个新的IOS上传到flash并想进行一下测试时是很有用的。或者我们想完全改变默认的IOS启动也是很有用的。
除以外我们还可以指定让路由器从tftp服务器上启动,而不管路由器的flash是否有可用的IOS,但笔记不建议大家这么做,因为一旦出现你的路由与tftp服务器无法连接的情况,你的路由器将无法启动。
Router(config)#boot system tftp C2800-ipbasek9-mz.128-8.bin 192.168.0.1
//设置设备tftp服务器上的C2800-ipbasek9-mz.128-8.bin IOS 映象包启动,tftp服务器的IP地址为192.168.0.1
当然,当新IOS已经能够正常运行在我们的思科设备上的时候,那么我们可用delete命令来删除不需要的文件。例如:
Router(config)#delete flash: c2600-i-mz.122-28.bin
Delete filename[flash: c2600-i-mz.122-28.bin]?[enter]
Delete flash: c2600-i-mz.122-28.bin?[confirm][enter]
(二)交换机
对于交换机上传IOS文件到flash与路由相同,下面这条命令就是将交换机的IOS文件上传到flash:/c3550-i9q3l2-mz.121-8.EA1c/这个目录中,当然我们还可以将IOS文件上传到其他位置。
Switch3550#Copy tftp://192.168.8.26/c3550-i9q3l2-mz.121-8.EA1c.bin flash:/c3550-i9q3l2-mz.121-8.EA1c/ c3550-i9q3l2-mz.121-8.EA1c.bin
对于交换机启动到底用哪一个IOS,我们还有一条更为细致的显示命令:
3550_48#show boot
BOOT path-list: flash:c3550-i9q3l2-mz.121-8.EA1c/c3550-i9q3l2-mz.121-8.EA1c.bin
Config file: flash:config.text
……..
……..
从显示结果中我们发现BOOT path-list:就是指明到底是从哪个IOS文件启动的,当前交换机的启动用的IOS位于flash:c3550-i9q3l2-mz.121-8.EA1c/c3550-i9q3l2-mz.121-8.EA1c.bin这个位置。而Config file:这一行显示的是启动IOS后从哪个文件调动配置文件,当前交换机的配置文件位于flash:config.text。
所以我们可以分别对这两个参数进行修改
(1)修改交换机启动IOS的路径:
3550_48(config)#boot system flash:c3550-i9q3l2-mz.121-8.EA1c/c3550-i9q3l2-mz.121-8.EA1c.bin
现在我们将同设置为从flash:c3550-i9q3l2-mz.121-8.EA1c/c3550-i9q3l2-mz.121-8.EA1c.bin调用IOS启动系统,如果我们的IOS上传的是其他位置,那么修改其他路径就可以了。
(2)修改交换机配置文件的路径
首先我们将交换机的配置文件用copy命令另存为myconfig.text
3550_48#copy flash:config.text flash:myconfig.text
Destination filename [myconfig.text]?
CC
4695 bytes copied in 0.64 secs
再次显示flash中的文件,我们会发现多了一个myconfig.text文件
3550_48#dir
Directory of flash:/
2 -rwx 0 Jan 01 1970 00:01:28 env_vars
3 -rwx 342 Jan 01 1970 00:01:28 system_env_vars
4 -rwx 1696 May 08 1993 01:18:52 vlan.dat
5 -rwx 4194 Mar 13 1993 07:31:32 satrt
6 -rwx 4695 Jul 18 1993 00:00:11 myconfig.text
7 -rwx 4695 May 06 1993 23:05:35 config.text
9 drwx 192 Mar 01 1993 00:03:13 c3550-i9q3l2-mz.121-8.EA1c
15998976 bytes total (11702272 bytes free)
下面我们将启动后读取的配置文件改为myconfig.text文件
3550_48#config t
3550_48(config)#boot config-file flash:myconfig.text
保存一下配置然后,重启交换机,你会发现启动所用的IOS和配置全部换成新的了。
思科IOS文件系统提供更为丰富的文件管理方式,灵活掌握IFS的使用可以在路由的设置、备份和升级操作等管理工作中达到事半功倍的效果。
文章如转载,请注明转载自【网管小王的独立博客】:http://www.5iadmin.com/