Firstly before upgrading IOS, you need to obtain the latest IOS version by logging on to Cisco Software Central at https://software.cisco.com/ and selecting your device type and version.
Please note that configure, price, and order Cisco products, software, and services. Available to partners and to customers with a direct purchasing agreement.
In my case I will be upgrading IOS image for Cisco Catalyst 2960X-24TS-L Switch. The downloaded c2960x-universalk9-mz.152-6.E2.bin file must be copied to your TFTP server as we will transfer the IOS image and perform our upgrade IOS via TFTP.
login as: admin
Using keyboard-interactive authentication.
Password:
UNAUTHORIZED ACCESS TO THIS DEVICE IS PROHIBITED.
You must have explicit, authorized permission to access or configure this device. Unauthorized attempts and actions to access or use this system may result in civil and/or criminal penalties. All activities performed on this device are logged and monitored.
HO_SW01>en
 Password:
 HO_SW01#dir
 Directory of flash:/
2  -rwx        3828  Dec 17 2018 12:20:59 +00:00  private-config.text
 3  -rwx         616  Nov 24 2018 14:59:06 +00:00  vlan.dat
 4  -rwx        3096  Dec 17 2018 12:20:59 +00:00  multiple-fs
 5  -rwx         624  Nov 16 2018 19:16:47 +00:00  express_setup.debug
 6  drwx         512   Jun 5 2016 20:12:07 +00:00  c2960x-universalk9-mz.152-2.E3
 671  drwx         512   Jun 5 2016 20:12:07 +00:00  dc_profile_dir
    673  -rwx        2688  Nov 17 2018 13:46:40 +00:00  config.text.renamed
    674  -rwx        1915  Nov 17 2018 13:46:40 +00:00  private-config.text.renamed
    675  -rwx        2835  Dec 17 2018 12:20:59 +00:00  config.text
122185728 bytes total (95062016 bytes free) 
HO_SW01#show switch
 Switch/Stack Mac Address : 0056.2b8c.7200
                                            H/W   Current
Switch#  Role   Mac Address     Priority Version  State
*1       Master 0056.2b8c.7200     1      4       Ready
122185728 bytes total (68257280 bytes free)
HO_SW01#show version
Switch Ports Model                     SW Version            SW Image
 —— —– —–                     ———-            ———-
*1 28    WS-C2960X-24TS-L          15.2(2)E3             C2960X-UNIVERSALK9-M
Configuration register is 0xF
HO_SW01#show boot
BOOT path-list      : flash:/c2960x-universalk9-mz.152-2.E3/c2960x-universalk9-mz.152-2.E3.bin
Config file         : flash:/config.text
Private Config file : flash:/private-config.text
Enable Break        : yes
Manual Boot         : no
Allow Dev Key         : yes
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)
HO_SW01#delete /f /r flash:/c2960x-universalk9-mz.152-2.E3
HO_SW01#copy tftp flash1
Address or name of remote host []? 10.11.1.33
Source filename []? c2960x-universalk9-mz.152-6.E2.bin
Destination filename [flash1]? c2960x-universalk9-mz.152-6.E2.bin
Accessing tftp://10.11.1.33/c2960x-universalk9-mz.152-6.E2.bin…
Loading c2960x-universalk9-mz.152-6.E2.bin from 10.11.1.33 (via Vlan1): !!!!!!!!!!!!!O!!O!!O!!!!O!!!!!!!!!!!O!!!!!!!!!!!!!!!!!!!!!!!!!!!!O!OO!!!!!!!!!!!!O!!O!!O!!!!!!!!!!!!!!!!!!!!!!!!!!!
[OK – 26590208 bytes]
26590208 bytes copied in 443.670 secs (59932 bytes/sec)
HO_SW01#verify /md5 flash1:c2960x-universalk9-mz.152-6.E2.bin
…………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………Done!
verify /md5 (flash:c2960x-universalk9-mz.152-6.E2.bin) = 94167367c0a8ebde238177a4b9d9b5c4
HO_SW01#config t
 Enter configuration commands, one per line.  End with CNTL/Z.
 HO_SW01(config)#boot system switch all flash:c2960x-universalk9-mz.152-6.E2.bin
 HO_SW01(config)#end
 HO_SW01#show boot
 BOOT path-list      : flash:c2960x-universalk9-mz.152-6.E2.bin
 Config file         : flash:/config.text
 Private Config file : flash:/private-config.text
 Enable Break        : yes
 Manual Boot         : no
 Allow Dev Key         : yes
 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)
 HO_SW01#write mem
 Building configuration…
 [OK]
 HO_SW01#show switch
 Switch/Stack Mac Address : 0056.2b8c.7200
                                            H/W   Current
Switch#  Role   Mac Address     Priority Version  State
*1       Master 0056.2b8c.7200     1      4       Ready
HO_SW01#reload
Proceed with reload? [confirm]
login as: admin
Using keyboard-interactive authentication.
Password:
UNAUTHORIZED ACCESS TO THIS DEVICE IS PROHIBITED.
You must have explicit, authorized permission to access or configure this device. Unauthorized attempts and actions to access or use this system may result in civil and/or criminal penalties. All activities performed on this device are logged and monitored.
HO_SW01>en
 Password:
 HO_SW01#show boot
 BOOT path-list      : flash:c2960x-universalk9-mz.152-6.E2.bin
 Config file         : flash:/config.text
 Private Config file : flash:/private-config.text
 Enable Break        : yes
 Manual Boot         : no
 Allow Dev Key         : yes
 HELPER path-list    :
 Auto upgrade        : yes
 Auto upgrade path   :
 Boot optimization   : disabled
 NVRAM/Config file
       buffer size:   524288
 Timeout for Config
           Download:    0 seconds
 Config Download
        via DHCP:       disabled (next boot: disabled)
 HO_SW01#show version
Switch Ports Model                     SW Version            SW Image
 —— —– —–                     ———-            ———-
*1 30    WS-C2960X-24TS-L          15.2(6)E2             C2960X-UNIVERSALK9-M
Configuration register is 0xF
HO_SW01#
Warning:
I am not responsible for any damage to your Cisco Catalyst 2960X-24TS-L Switch. If you point the finger at me for messing up your Cisco Catalyst 2960X-24TS-L Switch, I will laugh at you.