How to upgrade Cisco IOS Image

Is this copying from Cisco device to PC ?.I am looking for copying from PC to Cisco devices

Hello Ajimal

The copy command can be used for copying in both directions. It depends on the syntax of the command. For example, the following command will copy a file named c4500-ik2s-mz.scp from the flash to host1 using SCP:

copy flash:c4500-ik2s-mz.scp scp://user1@host1/

While this command will copy the file from host1 to the local flash:

copy scp://user1@host1/c4500-ik2s-mz.scp flash:

Simply put, the first is the source and the second is the destination.

I hope this has been helpful!


in the below picture its saying that the DRAM 512MB and FLASH 128MB.

DRAM is indicating which memory here, is it indicating to NVRAM ??, if yes then why its indicating NVRAM bcz the IOS stays in flash ??

Hello Narad

When viewing the requirements for an IOS file, the DRAM is the size of the RAM. The flash size is obviously the size of the flash. The size of the NVRAM is never indicated as a requirement. NVRAM is something that is not configurable, nor can it be upgraded or increased. Typically, NVRAM sizes are very small compared to the flash or DRAM and are on the order of several dozen KB. 32KB and 64KB are typical NVRAM sizes. Whatever is made available on any platform is typically enough for the IOS requirements.

NVRAM’s purpose is primarily to contain the startup-config file, and that’s the reason why it is small in comparison.

I hope this has been helpful!


1 Like

Thanks Sir for Your Explanation, It is Clear Now…!! :pray: :pray:

just to add on, check if the device is on bundle mode or install mode.
read the release notes, some requires to upgrade the rommon. From really old ios to newer.
Andy K from comment has good tips.

1 Like

Hi Team,

Please advise. On Install Mode, I take it we just need the image (.bin file) only on the main switch and then from below commands, rest of members in the switch stack should have it copied over?:

e.g. (using example from a Cisco reference):

Switch#request platform software package install switch all file flash:cat3k_caa-universalk9.BLD_V161_0_THROTTLE_LATEST_20151116_230450.SSA.bin auto-copy
[Device Output]

Hello Samad

If you are using install mode, then yes you are correct. This Cisco documentation states:

When you copy the .bin file to a single switch, the install process replicates the file to the other switches in the stack.

The link to the Cisco documentation details the procedure that you should follow for a Cat3850 device. If you are using a Cat3650 take a look at this Cisco Documentation.

Let us know how you get along in your upgrade.

I hope this has been helpful!



Can you please break down how we can use SCP using our laptop? I found some videos breaking it down but would like for you to make a step by step using windows / mac laptop.

Hello Sahakt

In order to use SCP to transfer an IOS image to your Cisco device using a laptop, you will need to prepare your laptop accordingly. There are many different options to choose from for both MAC and Windows. Typically you can use a command line interface or you can use a GUI-based utility.

The two options that I would recommend is to either use Microsoft Windows built-in utility called openssh or to use PuTTY. For the first one, take a look at this documentation:

For the second, take a look at this:

I hope this has been helpful!


Hello, everyone.

I am using the Cisco CML emulator for my CCNP studies. Is it possible to upgrade the Cisco IOS image in it somehow?

Thank you.


Hello David

Cisco Modeling Labs (CML) uses what are called “virtual machine images” to simulate network devices. These are specially designed VMs for use within CML, and are provided by Cisco. the CML platform is not capable of directly using IOS images in the way that GNS3 does. Cisco has a whole series of VM images for CML labs that can be found here:

Cisco has some standard VM images bundled with CML, but also provides a CML community GIT repository to provide other VM images not included in the bundle. Access to these are dependant on your entitlements based on the purchased license for CML. There’s also the possibility of creating customer node images which are available with the help of CIsco TAC, again, if you have the appropriate licensing. All the info is found in the above link.

I hope this has been helpful!


Hello, everyone!

When it comes to FTP, I often hear that it’s a protocol used on the internet but this isn’t really true, or is it? Because anything that you upload or download from the internet is done using HTTPs.

So where exactly would FTP be used, then? Except for upgrading Cisco IOS images.
It would most likely be used if I decided to set up a file server, right?

Thank you in advance :slight_smile:


Hello David

FTP or File Transfer Protocol is a very old protocol, and actually predates TCP/IP networks by about 10 years! The first specification of the protocol was published in 1971 in RFC 114. Over its 50+ year history, the protocol was used extensively in the past to transfer large files over IP networks. As a client-server model, users would log in to the server and issue commands that would send and/or receive files.

Today, FTP is used less often. Indeed HTTP/HTTPS is used to transfer relatively small files over a web interface (depending upon the application in question), but FTP is still often used in website maintenance, backup, and data transfer tasks, especially in environments where its vulnerabilities are not a primary concern. You’ll also find it extensively used in universities, and research organizations as well.

For more info, take a look at this NetworkLessons note on FTP.

I hope this has been helpful!


Thank you Laz!

I have one more question. What is the purpose of the ip tftp/ftp source-interface int command? If we wanted to copy a file from a TFTP server and if instead of relying on a physical interface, we wanted to use its loopback instead, we could just specify that in the copy command like this:

copy tftp://l0/ios-file flash:

So what purpose does ip tftp/ftp source-interface int really serve here?



Hello David

The syntax for the copy command when using tftp is the following:

copy tftp:[[//location]/directory]/filename.

The “location” portion of the alias according to Cisco documentation is either a domain name or an IP address. I tried labbing this up and found that you cannot use “l0” for example to refer to the loopback interface in such an interaction. I was using the CSR1000v version 17.03.06 in Cisco’s CML.

You can however use an IP address, and in that way specify the address of the loopback interface you want to use. That assumes however that a TFTP server is running on the local device. In such a case, you would use a command similar to the following:

tftp://[TFTP_SERVER_IP]/ios-file flash:

Now what the ip tftp source-interface command does is it sets the source IP address of TFTP requests to be the IP address of the specified interface. If this command is not issued, then the exit interface based on the routing table to reach the intended destination is used as the source/destination for that interaction. By using this command you can achieve a predictable source address, since it won’t be changing based on destination. Thus, any TFTP interactions will always take place with the same local address.

You can find more info about the copy command and the related TFTP syntax at the following Cisco documentation:

I hope this has been helpful!