Cisco Catalyst – Upgrading ‘Stacked’ Switches

KB ID 0001002 Dtd 26/09/14

Problem

The following procedure was carried out on two Cisco Catalyst 3750 switches.

switch stack

Solution

1. We can see (above) that we have two switches, but if your connected remotely, best make sure.

Petes-Stack#show switch
Switch/Stack Mac Address : 0018.7347.a000
                                           H/W   Current
Switch#  Role   Mac Address     Priority Version  State
----------------------------------------------------------
*1       Master 0018.7347.a000     1      0       Ready
 2       Member 0024.f79b.9b00     1      0       Ready

2. Lets see what IOS files are in the flash memory on both switches.

Petes-Stack#dir flash1:
Directory of flash:/

    2  -rwx        5514  Sep 25 2014 14:28:06 +01:00  private-config.text
    3  drwx         192   Mar 1 1993 00:10:57 +00:00  c3750-ipservicesk9-mz.122-55.SE8
   84  -rwx         856  Sep 23 2014 13:24:52 +01:00  vlan.dat
   85  -rwx       15354  Sep 25 2014 14:28:06 +01:00  config.text
   87  -rwx        3096  Sep 25 2014 14:28:06 +01:00  multiple-fs

15998976 bytes total (2406400 bytes free)
Petes-Stack#dir flash2:
Directory of flash2:/

    2  -rwx        5514  Sep 25 2014 14:28:06 +01:00  private-config.text
    3  drwx         192   Mar 1 1993 00:23:02 +00:00  c3750-ipservicesk9-mz.122-55.SE8
   84  -rwx       15354  Sep 25 2014 14:28:06 +01:00  config.text
   85  -rwx        3096   Mar 1 1993 00:04:19 +00:00  multiple-fs
   86  -rwx         856  Sep 23 2014 13:24:52 +01:00  vlan.dat

15998976 bytes total (2406400 bytes free)
Petes-Stack#

3. Well there’s only one IOS file in there but let’s make sure anyway, by seeing what version is loaded.

Petes-Stack#show version
----output ommitted for the sake of brevity----
Switch Ports Model              SW Version            SW Image
------ ----- -----              ----------            ----------
*    1 52    WS-C3750-48P       12.2(55)SE8           C3750-IPSERVICESK9-M
     2 52    WS-C3750-48P       12.2(55)SE8           C3750-IPSERVICESK9-M
----output ommitted for the sake of brevity----

4. Lets delete the IOS file from flash1, and make sure it’s gone.

Petes-Stack#delete /f /r flash1:c3750-ipservicesk9-mz.122-55.SE8
Petes-Stack#dir flash1:
Directory of flash:/

    2  -rwx        5514  Sep 25 2014 14:28:06 +01:00  private-config.text
   84  -rwx         856  Sep 23 2014 13:24:52 +01:00  vlan.dat
   85  -rwx       15354  Sep 25 2014 14:28:06 +01:00  config.text
   87  -rwx        3096  Sep 25 2014 14:28:06 +01:00  multiple-fs

15998976 bytes total (15972352 bytes free)
Petes-Stack#

5. Now I’ve setup my TFTP server and downloaded the new IOS file. I need to copy it into the flash1 memory.

Petes-Stack#copy tftp flash1:
Address or name of remote host? 192.168.1.38
Source filename? c3750-ipservicesk9-mz.122-55.SE9.bin
Destination filename? c3750-ipservicesk9-mz.122-55.SE9.bin
Accessing tftp://192.168.1.38/c3750-ipservicesk9-mz.122-55.SE9.bin...
Loading c3750-ipservicesk9-mz.122-55.SE9.bin from 192.168.1.38 (via Vlan1): !!!!!!!!!!!!!!!!!!!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
[OK - 13009047 bytes]

13009047 bytes copied in 214.044 secs (60777 bytes/sec)
Petes-Stack#

6. Repeat the process of deleting the IOS, and copying the new one onto flash2. It will remember your answers from earlier so just hit enter.

Petes-Stack#delete /f /r flash2:c3750-ipservicesk9-mz.122-55.SE8
Petes-Stack#show flash2:

Directory of flash2:/

    2  -rwx        5514  Sep 25 2014 14:28:06 +01:00  private-config.text
   84  -rwx       15354  Sep 25 2014 14:28:06 +01:00  config.text
   85  -rwx        3096   Mar 1 1993 00:04:19 +00:00  multiple-fs
   86  -rwx         856  Sep 23 2014 13:24:52 +01:00  vlan.dat

15998976 bytes total (15972352 bytes free)
Petes-Stack#copy tftp flash2:
Address or name of remote host [192.168.1.38]? {Enter}
Source filename [c3750-ipservicesk9-mz.122-55.SE9.bin]? {Enter}
Destination filename [c3750-ipservicesk9-mz.122-55.SE9.bin]? {Enter}
Accessing tftp://192.168.1.38/c3750-ipservicesk9-mz.122-55.SE9.bin...
Loading c3750-ipservicesk9-mz.122-55.SE9.bin from 192.168.1.38 (via Vlan1): !!!!!!!!!!!!!!!!!!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
[OK - 13009047 bytes]

13009047 bytes copied in 245.945 secs (52894 bytes/sec)
Petes-Stack#

7. Now let’s make sure the new file is in both switches flash memory.

Petes-Stack#show flash1:

Directory of flash:/

    2  -rwx        5514  Sep 25 2014 14:28:06 +01:00  private-config.text
    3  -rwx    13009047  Sep 26 2014 15:46:10 +01:00  c3750-ipservicesk9-mz.122-55.SE9.bin
   84  -rwx         856  Sep 23 2014 13:24:52 +01:00  vlan.dat
   85  -rwx       15354  Sep 25 2014 14:28:06 +01:00  config.text
   87  -rwx        3096  Sep 25 2014 14:28:06 +01:00  multiple-fs

15998976 bytes total (2962944 bytes free)
Petes-Stack#show flash2:

Directory of flash2:/

    2  -rwx        5514  Sep 25 2014 14:28:06 +01:00  private-config.text
    3  -rwx    13009047  Sep 26 2014 15:52:03 +01:00  c3750-ipservicesk9-mz.122-55.SE9.bin
   84  -rwx       15354  Sep 25 2014 14:28:06 +01:00  config.text
   85  -rwx        3096   Mar 1 1993 00:04:19 +00:00  multiple-fs
   86  -rwx         856  Sep 23 2014 13:24:52 +01:00  vlan.dat

15998976 bytes total (2962944 bytes free)
Petes-Stack#

8. Even though it’s been deleted, the boot variable will be set to the OLD version of the IOS, to demonstrate issue the following command.

Petes-Stack#show boot
BOOT path-list      : flash:/c3750-ipservicesk9-mz.122-55.SE8
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:   524288
Timeout for Config
          Download:    0 seconds
Config Download
       via DHCP:       disabled (next boot: disabled)
-------------------
Switch 2
-------------------
BOOT path-list      : flash:/c3750-ipservicesk9-mz.122-55.SE8
Config file         : flash:/config.text
Private Config file : flash:/private-config.text
Enable Break        : no
Manual Boot         : no
HELPER path-list    :
Auto upgrade        : no
Auto upgrade path   :
Petes-Stack#

9. So change the boot variable to the new one, and check again.

Petes-Stack# configure terminal
Enter configuration commands, one per line.  End with CNTL/Z.
Petes-Stack(config)# boot system switch all flash:c3750-ipservicesk9-mz.122-55.SE9.bin

Petes-Stack#show boot
BOOT path-list      : flash:c3750-ipservicesk9-mz.122-55.SE9.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:   524288
Timeout for Config
          Download:    0 seconds
Config Download
       via DHCP:       disabled (next boot: disabled)
-------------------
Switch 2
-------------------
BOOT path-list      : flash:c3750-ipservicesk9-mz.122-55.SE9.bin
Config file         : flash:/config.text
Private Config file : flash:/private-config.text
Enable Break        : no
Manual Boot         : no
HELPER path-list    :

Auto upgrade        : no
Auto upgrade path   :
Petes-Stack#

10. Save the changes, and reload the switch.

Petes-Stack#write mem
Building configuration...
[OK]
Petes-Stack#reload
Proceed with reload? [confirm] {Enter}
Switch 2 reloading...

11. Post reboot, log in and check that the stack is running the new code.

Petes-Stack#show version
Cisco IOS Software, C3750 Software (C3750-IPSERVICESK9-M), Version 12.2(55)SE9, RELEASE SOFTWARE
Technical Support: http://www.cisco.com/techsupport
Copyright (c) 1986-2014 by Cisco Systems, Inc.
Compiled Mon 03-Mar-14 22:45 by prod_rel_team
Image text-base: 0x01000000, data-base: 0x02F00000

ROM: Bootstrap program is C3750 boot loader
BOOTLDR: C3750 Boot Loader (C3750-HBOOT-M) Version 12.2(44)SE5, RELEASE SOFTWARE (fc1)

Petes-Stack uptime is 5 minutes
System returned to ROM by power-on
System image file is "flash:c3750-ipservicesk9-mz.122-55.SE9.bin"

Option 2

You can also carry out the following procedure on the switch ‘stack master’ that will automate the entire procedure for you. Note: This requires the IOS in .tar format not .bin (as above);

archive download-sw /safe /allow-feature-upgrade /reload tftp:{ip-of-TFTP-Server}/{IOS-File-Name.tar}

Related Articles, References, Credits, or External Links

NA

Author: Migrated

Share This Post On