Boot system flash: does not appear on 2960 running config

Answered Question
Jan 2nd, 2010

Dear friends,

On the 2960, i have two .bin images and i am pointing to the latest one.

However, the boot system flash: command along with the new image does not appear in the running config but it appears in the

show boot command.

t3a.sidradc.dmz.01#dir flash:
Directory of flash:/

    2  -rwx        2131   Jan 3 2010 07:30:45 +03:00  private-config.text
    4  -rwx     8040418   Mar 1 1993 05:31:51 +03:00  c2960-lanbasek9-mz.122-50.SE3.bin
    5  -rwx         676   Jan 3 2010 07:28:50 +03:00  vlan.dat
    6  drwx         128   Mar 1 1993 03:02:32 +03:00  c2960-lanbasek9-mz.122-44.SE6
  546  -rwx        4120   Jan 3 2010 07:30:45 +03:00  multiple-fs
  548  -rwx        9001   Jan 3 2010 07:30:45 +03:00  config.text

32514048 bytes total (21123072 bytes free)

t3a.sidradc.dmz.01(config)#boot system flash:c2960-lanbasek9-mz.122-50.SE3.bin
t3a.sidradc.dmz.01(config)#exit
t3a.sidradc.dmz.01#wr
Building configuration...
[OK]
t3a.sidradc.dmz.01#sh boot
BOOT path-list      : flash:c2960-lanbasek9-mz.122-50.SE3.bin
Config file         : flash:/config.text
Private Config file : flash:/private-config.text
Enable Break        : no
Manual Boot         : no
HELPER path-list    :
Auto upgrade        : yes
Auto upgrade path   :
NVRAM/Config file
      buffer size:   65536
Timeout for Config
          Download:    0 seconds
Config Download
       via DHCP:       disabled (next boot: disabled)

t3a.sidradc.dmz.01#sh run | inc boot
boot-start-marker
boot-end-marker

Are you aware of any reasons for this?

Thanks a lot

Gautam

I have this problem too.
0 votes
Correct Answer by glen.grant about 5 years 6 months ago

   Thats normal behavior on smaller non chassis based switches like 2950,2960 ,3560 etc...   Don't know what the reasoning was behind that .  On some of ealier models like the 2950 it would only hold 1 image so it didn't matter.

  • 1
  • 2
  • 3
  • 4
  • 5
Overall Rating: 5 (2 ratings)
Correct Answer
glen.grant Sun, 01/03/2010 - 04:48

   Thats normal behavior on smaller non chassis based switches like 2950,2960 ,3560 etc...   Don't know what the reasoning was behind that .  On some of ealier models like the 2950 it would only hold 1 image so it didn't matter.

gautamzone Sun, 01/03/2010 - 17:39

Thanks a lot for the clarification Glen. I guess that should be the same with the 3750 too.

However, the 4948 switch shows the boot system flash: command in the running config too. Probably its because it uses a 4500 image.

Thanks a lot again

Gautam

vvasisth Mon, 01/04/2010 - 01:28

as suggested earlier its not been seen in small switches incase you would like to know the boot variable and things like that try "show boot "

this will tell you the boot variable, boot loader and configration registor.

Pretty usefull command

Hope that helps.


Varun

brichter Tue, 12/23/2014 - 13:32

So, viewing the boot variables is fine, but how can one control the boot variable from the CLI? We are needing to download an image and configure the switch to boot the new image via a telnet script.

Leo Laohoo Tue, 12/23/2014 - 16:13
So, viewing the boot variables is fine, but how can one control the boot variable from the CLI? 

Depends on the hardware.  4K and 6K boot variable statement will show up in the config but 2K and 3K doesn't.  

 

 

brichter Tue, 12/23/2014 - 16:27

Hi, Leo, and thanks for the response!

Ok, but that doesn't answer my question, though? I need to know how to control the boot variable from the CLI, as I need to write a telnet script to upgrade the standalone switch and configure it to boot the new image. The commands to download the new image are not the problem, configuring the boot variable is the problem. I've done this many times, but never on this platform

 

Acceptable answers would be either "It can't be done", or "you need to issue the following commands":

switch(config)#config command a

switch(config)#config command b

switch(config)#config command c

switch(config)#end

switch#wr

 

 

 

 

 

Leo Laohoo Tue, 12/23/2014 - 17:28

Hold on ... exactly HOW is the IOS being upgraded.  


There are exactly three different "methods" to upgrade an IOS on a Cat 2K and 3K (except the newer 3650 & 3850):  

 

1.  Copy the BIN file; 

2.  The "archive tar /x" script using the TAR file; and 

3.  The "archive download-sw" using the TAR file.

 

The best method is to use the third method because this method will automatically set the boot variable string.  

brichter Tue, 12/23/2014 - 22:27

I'm using the "copy the BIN file" (even though there seems to be another minor bug with this method, which we can work around in the script).

After doing some research on the TAR file methods, it would seem that "archive download-sw" would be the second best method, except for a couple of reasons, one being the excess resources used by the tar file for web access which is not needed in our setup, and the other being the issue where IOS can return the prompt before it's done unpacking the files, which in our case could lead to issues where the script reboots the switch before the process is complete, which could in turn brick the switch and lead to RMA issues. The "archive download-sw" script looks to be a big improvement for interactive upgrades where the TAR file is required, but doesn't bring any advantages to our deployment, and has the above disadvantages.

 

 

Leo Laohoo Wed, 12/24/2014 - 16:38
and the other being the issue where IOS can return the prompt before it's done unpacking the files

Ok, now what EXACTLY is the appliance and IOS version?  The only time I know of this bug is the Metro Ethernet (ME) switches and when the current appliance is upgraded FROM an IOS version 15.2(1)S.  

 

But there is a "workaround" which Cisco doesn't want to publish (don't ask me why not):  Use "archive tar /x" and, optionally, delete the old IOS sub-directory.

 

Personally, I wouldn't recommend anyone using the "copy the BIN file" method unless you know what you are doing or you've put extra measures in place.  The "archive /x tar" and/or "archive download-sw" was developed so that it could be automated and the operator can see the result at the end.  The "copy the BIN file" method doesn't give anyone a result whether or not the file was copied or not or was the file copied completely.  

Regularly, I would upgrade our switches (2960/2960S, ME-3800X, 3560E/3560CG, 3750X) fleet using the "archive download-sw" method and I don't use scripts.  I just copy-and-paste the command.  So far, since 2009, I've "lost" only 6 switches when I upgraded the switch to upgrade the wrong file (another IOS bug on it's own) and I had to physically show up and upgrade using ROMmon.  Every time I would upgrade, about 900 switches (some in a stack), it would take me about 4 days.  Even though I work with three guys who's very good at almost any scripting but we've come to a unanimous conclusion NOT to use scripting.  

 

Moving on, if "copy the BIN file" is still a preferred choice, I would like to know how do you go about verifying the file was copied completely?  Whenever I resort to the "copy the BIN file", I ensure the file copied is complete by verifying the MD5 hash value against the MD5 hash value found in the Cisco website.  Trust me, adding this additional "layer" of security saved me doing ROMmon upgrade so many times.  

brichter Thu, 12/25/2014 - 13:24

The script will be verifying the image after copying to flash via the "verify /md5 <image>" command.

I started here at Cisco over 14 years ago in GSBU, and continue to do lab testbed and network support for my current BU, so I do have plenty of experience with switch/router configuration and maintenance.

 

Leo Laohoo Fri, 12/26/2014 - 00:09
12 port 2960 switch.

Must be a brand new model.  I've never seen a 12-port 2960/2960CG before.  

 

Be careful with IOS 15.X as they are very, very unstable.  If you have to use 15.X then try 15.0(2)SE4.  

brichter Fri, 12/26/2014 - 10:17

Exact model from show version output:

WS-C2960C-12PC-L

 

Leo Laohoo Fri, 12/26/2014 - 19:34
WS-C2960C-12PC-L

Oh.  Those ones.  

I still need to know how to control the boot variable from the CLI.

What I would do is this: 

 

1.  Copy or un-pack the IOS to the remote end; 

2.  Verify the MD5 hash value

2.  Change the boot variable string to remove the old boot variable string.  Catalyst 2K and 3K do not support multiple boot variable string.  

 

config t

no boot system

boot system flash:/IOS_subdirectory/IOS_filename.bin

end

wr

 

Note:  If you don't save the config, the boot variable string won't change.

brichter Wed, 01/07/2015 - 17:27

Ok, After working with the 2960 dev guys, we determined that I can issue the "boot system flash:/<image>" command and save the config, but that config line does not appear in the output of "show run" or "show start". However, it does show up in "show boot". The reason it doesn't show up in "show start" or "show run" is because it's a bug in IOS, and I'll be filing a CDETS on this issue.

Since it does show up in the output of "show boot" (thanks for teaching this old dog a new IOS "show" command), we can validate the configuration after uploading the new image, before rebooting, using "show boot" instead of "show start". Setting the config to boot the new image, as well as verifying the config was correct, was my main concern here as this procedure will be scripted and wrapped up into an admin CLI command for our product, to make it as simple as possible for the customer.

Thanks for your time, Leo, especially for the tutorial on the "archive" commands! They are a definite improvement if one needs the web-based UI.

Leo Laohoo Wed, 01/07/2015 - 22:58
The reason it doesn't show up in "show start" or "show run" is because it's a bug in IOS, and I'll be filing a CDETS on this issue.

LOL.  It's been like this since a long, long time.  

brichter Thu, 01/08/2015 - 00:34

Yup, don't know if they'll actually fix the show command or just change the docs... guess it all depends on how industrious they feel when the bug gets assigned. LOL

 

Kenny Crumsey Thu, 01/29/2015 - 17:00

Thanks Leo,

 

 Worked perfect.

 

config t

no boot system

boot system flash:/c2960c405ex-universalk9-mz.150-2.SE7.bin

end

wr

reload

Loading "flash:/c2960c405ex-universalk9-mz.150-2.SE7.bin"...@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
File "flash:/c2960c405ex-universalk9-mz.150-2.SE7.bin" uncompressed and installed, entry point: 0x3000
executing...

 

 

Leo Laohoo Thu, 01/29/2015 - 17:34

Thanks, Kenny..

 

NOTE:  Be vigilant with the IOS you're trying to use, 15.0(2)SE7.

brichter Fri, 12/26/2014 - 13:49

All info regarding hardware model, ports, age, etc. aside, I still need to know how to control the boot variable from the CLI.

zoltanszasz Wed, 12/24/2014 - 22:37

I hold 2 images just fine :P

 

Directory of flash:/

    2  -rwx     2664051  Mar 01 1993 00:03:54 +00:00  c2950-i6q4l2-mz.121-11.EA1.bin
    3  -rwx        1923  Mar 03 1993 01:05:13 +00:00  private-config.text
    4  -rwx        2084  Mar 03 1993 01:05:10 +00:00  config.text
    5  -rwx     3722814  Mar 01 1993 00:26:08 +00:00  c2950-i6k2l2q4-mz.121-22.EA14.bin
    7  drwx         704  Mar 01 1993 00:04:30 +00:00  html
   19  -rwx         109  Mar 01 1993 00:04:32 +00:00  info
   20  -rwx         109  Mar 01 1993 00:04:32 +00:00  info.ver
   21  -rwx         318  Mar 01 1993 00:31:02 +00:00  env_vars

Actions

This Discussion