当前配置信息:
4507-1#show bootvar
BOOT variable =
CONFIG_FILE variable =
BOOTLDR variable =
Configuration register is 0x2101
Standby BOOT variable =
Standby CONFIG_FILE variable =
Standby BOOTLDR variable =
Standby Configuration register is 0x2101
4507-1#dir bootflash:
Directory of bootflash:/
81602 drwx 4096 Feb 8 2019 01:58:01 +08:00 virtual-instance
81604 drwx 4096 Feb 8 2019 01:58:02 +08:00 virtual-instance-stby-sync
81606 -rwx 223045212 Feb 8 2019 02:30:18 +08:00 cat4500es8-universal.SPA.03.09.00.E.152-5.E.bin
81607 -rw- 1145 Aug 14 2019 03:44:14 +08:00 FXS2303Q470_20190813201902215.lic
97921 drwx 4096 Aug 14 2019 03:51:47 +08:00 onep
81608 -rw- 8431 Aug 14 2019 08:04:09 +08:00 startup-config.saved_vs-20190814-000409
4507-1#dir nvram:
Directory of nvram:/
512 -rw- 10423 <no date> startup-config
513 ---- 5 <no date> private-config
514 -rw- 10423 <no date> underlying-config
1 ---- 0 <no date> rf_cold_starts
2 -rw- 1079 <no date> cpu_trap.eci
4 -rw- 1072 <no date> cpu_threshold_trap.eci
6 -rw- 886 <no date> memory_trap.eci
7 -rw- 858 <no date> rf_trap.eci
8 -rw- 89 <no date> ma_trap_keyword
9 ---- 163 <no date> persistent-data
10 -rw- 0 <no date> ifIndex-table.gz
自己查询网上资料关于寄存器值的作用之后,我的理解如下:
0x2101:告诉设备忽略引导变量字符串,并启动在 Bootflash 中找到的第一个有效 IOS
0x2102:则告诉设备使用引导变量字符串进行启动
问题:
1、以我当前配置的0x2101值的话,系统重新启动之后,是通过哪个镜像和配置文件来引导系统?
2、bootflash、nvram中都有startup-config配置文件,系统默认使用哪个文件来引导?
3、我是否需要将寄存器的值改为0x2102,然后再手动设置引导变量(当前通过show bootvar里面是空的),麻烦告知设置命令,感谢!
已解决! 转到解答。
1、以我当前配置的0x2101值的话,系统重新启动之后,是通过哪个镜像和配置文件来引导系统?
你目前的bootflash中,就只有一个镜像,而且看你的配置情况,设备会忽略 BOOT 环境变量,改为自动查找 bootflash: 目录中第一个有效的 IOS 镜像来引导。那么启动的进行只能是cat4500es8-universal.SPA.03.09.00.E.152-5.E.bin
2、bootflash、nvram中都有startup-config配置文件,系统默认使用哪个文件来引导?
默认使用nvram中的启动配置文件来加载。
3、我是否需要将寄存器的值改为0x2102,然后再手动设置引导变量(当前通过show bootvar里面是空的),麻烦告知设置命令,感谢!
configure terminal
!
boot system flash bootflash:cat4500es8-universal.SPA.03.09.00.E.152-5.E.bin
!
end
!
write memory ! 保存配置
!
confreg 0x2102 ! 进入 ROMMON 时可以设置,或重启进入 ROMMON 设置
注意:常规运行模式下不能直接修改 config-register,通常是在 ROMMON 模式下用 confreg 修改。 不过 Catalyst 4500 一般也支持通过 config-register 命令修改:
configure terminal
config-register 0x2102
end
write memory
1、以我当前配置的0x2101值的话,系统重新启动之后,是通过哪个镜像和配置文件来引导系统?
你目前的bootflash中,就只有一个镜像,而且看你的配置情况,设备会忽略 BOOT 环境变量,改为自动查找 bootflash: 目录中第一个有效的 IOS 镜像来引导。那么启动的进行只能是cat4500es8-universal.SPA.03.09.00.E.152-5.E.bin
2、bootflash、nvram中都有startup-config配置文件,系统默认使用哪个文件来引导?
默认使用nvram中的启动配置文件来加载。
3、我是否需要将寄存器的值改为0x2102,然后再手动设置引导变量(当前通过show bootvar里面是空的),麻烦告知设置命令,感谢!
configure terminal
!
boot system flash bootflash:cat4500es8-universal.SPA.03.09.00.E.152-5.E.bin
!
end
!
write memory ! 保存配置
!
confreg 0x2102 ! 进入 ROMMON 时可以设置,或重启进入 ROMMON 设置
注意:常规运行模式下不能直接修改 config-register,通常是在 ROMMON 模式下用 confreg 修改。 不过 Catalyst 4500 一般也支持通过 config-register 命令修改:
configure terminal
config-register 0x2102
end
write memory
感谢答复!看了你的解答之后,再次请教如下:
1、假如bootflash目录仅有一个镜像文件时候,无论寄存器设置0x2101 或 0x2102都行,因为它会自动查找第一个镜像进行启动。
假如bootflash目录有多个镜像,就需要设置寄存器0x2102,并配置‘boot system flash bootflash:xxxxx.bin’(指定某个镜像)我理解正确吗?
2、为什么nvram里面的配置文件没有文件修改日期?显示no date
512 -rw- 10423 <no date> startup-config
1.假如bootflash目录有多个镜像,就需要设置寄存器0x2102,并配置‘boot system flash bootflash:xxxxx.bin’(指定某个镜像)我理解正确吗?
我认为是的,若配置寄存器是 0x2102(出厂默认,表明路由器必须尝试从闪存加载Cisco IOS®软件映像,并加载启动配置),系统会使用 BOOT variable 中你明确设置的镜像文件路径(换句话说,这个设置必须正确,某则会进入ROMMON),如果配置没问题,这样就确保加载的是正确、预期的 IOS 镜像版本。
为了方便理解寄存器的值,也可以进一步参考如下官方文档:
2.为什么nvram里面的配置文件没有文件修改日期?显示no date
我理解这是 Cisco IOS 系统行为的特性,不认为是异常问题。Cisco IOS设备NVRAM 文件系统不支持时间戳。
NVRAM: 是一种非常基础的非易失性内存存储区域,它不像 bootflash那样具备文件元数据功能。所以你看到 <no date> 是正常的行为,它只显示文件大小和权限,系统只记录该文件是否存在、是否可写、大小等基本信息,而不记录文件创建或修改时间,如下也是一个示例。
CoreSW#dir nvram:
Directory of nvram:/
502 -rw- 6647 <no date> startup-config
503 ---- 1933 <no date> private-config
1 ---- 35 <no date> persistent-data
这个问题在社区其他帖子也有人问过,来自Cisco Employee的答复,也可以参考:
https://community.cisco.com/t5/switching/nvram-showed-no-date/td-p/3307158