<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/"><channel><title>Catalyst on Barash Helvadzhaoglu</title><link>https://barashhelvadzhaoglu.com/en/tags/catalyst/</link><description>Recent content in Catalyst on Barash Helvadzhaoglu</description><generator>Hugo -- 0.168.0</generator><language>en</language><lastBuildDate>Fri, 16 Oct 2026 00:00:00 +0000</lastBuildDate><atom:link href="https://barashhelvadzhaoglu.com/en/tags/catalyst/index.xml" rel="self" type="application/rss+xml"/><item><title>Cisco Catalyst 3560 IOS Upgrade: Two Methods and Verification</title><link>https://barashhelvadzhaoglu.com/en/posts/catalyst-3560-ios-upgrade/</link><pubDate>Fri, 16 Oct 2026 00:00:00 +0000</pubDate><guid>https://barashhelvadzhaoglu.com/en/posts/catalyst-3560-ios-upgrade/</guid><description>Upgrading IOS on a Cisco Catalyst 3560 — archive download-sw versus manual copy and boot system, flash space, MD5 verification and rollback.</description><content:encoded><![CDATA[<p>Upgrading IOS on a Catalyst 3560 is not complicated, but the details matter: which file format you download, how much space is left in flash, and whether the boot variable points to the right image. A mistake in any of these leaves you with a switch that boots into the boot loader instead of IOS.</p>
<p>There are two ways to do it:</p>
<ul>
<li><strong>Method A: <code>archive download-sw</code> with a <code>.tar</code> file.</strong> The switch extracts the image, the web device manager files and sets the boot variable itself.</li>
<li><strong>Method B: manual upgrade with a <code>.bin</code> file.</strong> You copy the image, verify it, set <code>boot system</code> and reload.</li>
</ul>
<blockquote>
<p><strong>Lab note:</strong> I am upgrading my own Catalyst 3560 8-port PoE switch with both methods. Console outputs and timings from that lab will be added to this guide.</p>
</blockquote>
<h2 id="1-before-you-start">1. Before You Start</h2>
<h3 id="back-up-the-configuration">Back Up the Configuration</h3>
<pre tabindex="0"><code>Switch# copy running-config startup-config
Switch# copy startup-config tftp:
</code></pre><p>Keep the backup off the switch: on your laptop, a TFTP or SCP server, or your configuration management tool.</p>
<h3 id="identify-the-model-version-and-feature-set">Identify the Model, Version and Feature Set</h3>
<pre tabindex="0"><code>Switch# show version
Switch# show inventory
</code></pre><p>Write down three things:</p>
<ul>
<li><strong>Exact model</strong>, for example <code>WS-C3560-8PC-S</code>. The image must match the platform.</li>
<li><strong>Current IOS version</strong>.</li>
<li><strong>Feature set</strong>, for example IP Base (<code>ipbasek9</code>) or IP Services (<code>ipservicesk9</code>). Choose the same feature set for the new image unless you deliberately change it.</li>
</ul>
<h3 id="check-the-boot-settings-and-flash-space">Check the Boot Settings and Flash Space</h3>
<pre tabindex="0"><code>Switch# show boot
Switch# dir flash:
</code></pre><p><code>show boot</code> shows which image the switch loads at the next reload. <code>dir flash:</code> shows the files and, at the bottom, the free space. Compact switches like the 8-port 3560 have little flash. Often there is not enough room for two images at the same time.</p>
<h3 id="download-the-image">Download the Image</h3>
<p>Download the image from Cisco Software Download. A service contract is required. You will find two file types:</p>
<table>
	<thead>
			<tr>
					<th>File</th>
					<th>Contents</th>
					<th>Used with</th>
			</tr>
	</thead>
	<tbody>
			<tr>
					<td><code>.tar</code></td>
					<td>IOS image plus web device manager files</td>
					<td><code>archive download-sw</code> (Method A)</td>
			</tr>
			<tr>
					<td><code>.bin</code></td>
					<td>IOS image only</td>
					<td>Manual copy and <code>boot system</code> (Method B)</td>
			</tr>
	</tbody>
</table>
<p>Note the <strong>MD5 checksum</strong> shown on the download page. You will compare it on the switch.</p>
<p>The classic Catalyst 3560 is end of life, so the latest release on the download page is the final one for this platform.</p>
<h2 id="2-method-a-archive-download-sw">2. Method A: archive download-sw</h2>
<p>This is the method Cisco recommends for this switch family. One command transfers the <code>.tar</code> file, extracts it into a new directory in flash, updates the boot variable and optionally reloads.</p>
<pre tabindex="0"><code>Switch# archive download-sw /overwrite /reload tftp://192.0.2.10/c3560-ipservicesk9-tar.&lt;version&gt;.tar
</code></pre><p>The most useful options:</p>
<table>
	<thead>
			<tr>
					<th>Option</th>
					<th>Effect</th>
			</tr>
	</thead>
	<tbody>
			<tr>
					<td><code>/overwrite</code></td>
					<td>Replaces the current image if there is not enough space for both</td>
			</tr>
			<tr>
					<td><code>/leave-old-sw</code></td>
					<td>Keeps the old image (only if flash has room for both)</td>
			</tr>
			<tr>
					<td><code>/reload</code></td>
					<td>Reloads the switch after a successful download</td>
			</tr>
			<tr>
					<td><code>/imageonly</code></td>
					<td>Installs only the IOS image, without the web device manager files</td>
			</tr>
	</tbody>
</table>
<p>If you have room for both images, use <code>/leave-old-sw</code> instead of <code>/overwrite</code>. Rollback is then just a boot variable change.</p>
<p>Without <code>/reload</code>, check the result before reloading:</p>
<pre tabindex="0"><code>Switch# show boot
Switch# dir flash:
Switch# reload
</code></pre><h2 id="3-method-b-manual-upgrade-with-a-bin-file">3. Method B: Manual Upgrade with a .bin File</h2>
<p>The manual method gives you full control over each step. It is useful when you only have a <code>.bin</code> file, or when you want to verify the image before touching the boot variable.</p>
<h3 id="copy-the-image">Copy the Image</h3>
<pre tabindex="0"><code>Switch# copy tftp://192.0.2.10/c3560-ipservicesk9-mz.&lt;version&gt;.bin flash:
</code></pre><p>If there is not enough space, you must delete the old image first. That removes your rollback option on the switch, so make sure you have the old image on your TFTP server and a console connection ready.</p>
<p>TFTP works for small files but is slow and unreliable over long distances. If your IOS version supports it, SCP or FTP is faster.</p>
<h3 id="verify-the-checksum">Verify the Checksum</h3>
<pre tabindex="0"><code>Switch# verify /md5 flash:c3560-ipservicesk9-mz.&lt;version&gt;.bin
</code></pre><p>Compare the result with the MD5 value from the Cisco download page. If they differ, delete the file and copy it again. Never boot an image that failed verification.</p>
<h3 id="set-the-boot-variable-and-reload">Set the Boot Variable and Reload</h3>
<pre tabindex="0"><code>Switch# configure terminal
Switch(config)# boot system flash:c3560-ipservicesk9-mz.&lt;version&gt;.bin
Switch(config)# end
Switch# copy running-config startup-config
Switch# show boot
Switch# reload
</code></pre><p>Check <code>show boot</code> before the reload. The <code>BOOT path-list</code> must point to the new image, with the correct file name and path.</p>
<h2 id="4-after-the-upgrade">4. After the Upgrade</h2>
<pre tabindex="0"><code>Switch# show version
Switch# show interfaces status
Switch# show power inline
Switch# show logging
</code></pre><ul>
<li><code>show version</code>: the new IOS version is running.</li>
<li><code>show interfaces status</code>: all expected ports are up.</li>
<li><code>show power inline</code>: PoE devices are powered again.</li>
<li><code>show logging</code>: no errors during boot.</li>
</ul>
<p>When you are sure the new version works, remove the old image to free up space, unless you want to keep it for rollback.</p>
<h2 id="5-rollback">5. Rollback</h2>
<ul>
<li><strong>Old image still in flash:</strong> point the boot variable back to it with <code>boot system flash:&lt;old-image&gt;</code>, save and reload.</li>
<li><strong>Old image deleted:</strong> copy it back from your TFTP server, verify the MD5 and set the boot variable.</li>
<li><strong>Switch does not boot IOS at all:</strong> it stops at the <code>switch:</code> prompt. This is covered in <a href="/en/posts/catalyst-3560-boot-loader-recovery/">When a Catalyst 3560 Won&rsquo;t Boot: Recovery from the Boot Loader</a>.</li>
</ul>
<h2 id="common-mistakes">Common Mistakes</h2>
<ul>
<li><strong>Wrong platform or feature set.</strong> An image for another model does not boot.</li>
<li><strong>Deleting the old image before the new one is verified.</strong> If the copy is corrupted, you have nothing to boot.</li>
<li><strong>A typo in <code>boot system</code>.</strong> The switch cannot find the image and stops at the boot loader.</li>
<li><strong>No console connection during the reload.</strong> If something goes wrong, you can only see it from the console.</li>
</ul>
<h2 id="related-articles">Related Articles</h2>
<ul>
<li><a href="/en/posts/catalyst-3560-password-recovery/">Cisco Catalyst 3560 Password Recovery: Two Methods</a></li>
<li><a href="/en/posts/catalyst-3560-boot-loader-recovery/">When a Catalyst 3560 Won&rsquo;t Boot: Recovery from the Boot Loader</a></li>
<li><a href="/en/posts/cisco-nexus-nxos-upgrade-guide/">Cisco Nexus NX-OS Software Upgrade Guide</a></li>
<li><a href="/en/technology/securecrt-superputty/">SecureCRT and SuperPuTTY for Network Engineers</a></li>
</ul>
]]></content:encoded></item><item><title>Cisco Catalyst 3560 Password Recovery: Two Methods, Step by Step</title><link>https://barashhelvadzhaoglu.com/en/posts/catalyst-3560-password-recovery/</link><pubDate>Fri, 16 Oct 2026 00:00:00 +0000</pubDate><guid>https://barashhelvadzhaoglu.com/en/posts/catalyst-3560-password-recovery/</guid><description>How to recover a lost enable or console password on a Cisco Catalyst 3560 — keep the configuration with the boot loader method, or reset when password recovery is disabled.</description><content:encoded><![CDATA[<p>You inherit a switch, the documentation is gone, and nobody knows the enable password. Or a lab switch comes back from storage and the console asks for a password you never set. On a Cisco Catalyst 3560 you can recover from both without losing the configuration, as long as you have physical access and a console cable.</p>
<p>This guide covers the two situations you will meet in practice:</p>
<ul>
<li><strong>Method 1: keep the configuration.</strong> The switch boots without loading its startup configuration, you reset the passwords, and you put the original configuration back.</li>
<li><strong>Method 2: password recovery is disabled.</strong> Someone configured <code>no service password-recovery</code>. You can still get the switch back, but only by resetting it to factory defaults.</li>
</ul>
<blockquote>
<p><strong>Lab note:</strong> I am running these procedures on my own Catalyst 3560 8-port PoE switch. Console outputs from that lab will be added to this guide.</p>
</blockquote>
<h2 id="what-you-need">What You Need</h2>
<ul>
<li>Physical access to the switch. Password recovery is deliberately impossible remotely.</li>
<li>A console cable (RJ-45 rollover or USB-to-serial) and a terminal program such as SecureCRT, PuTTY or <code>screen</code>.</li>
<li>Terminal settings: <strong>9600 baud, 8 data bits, no parity, 1 stop bit, no flow control</strong>.</li>
<li>A maintenance window. The switch reboots twice and does not forward traffic during the procedure.</li>
</ul>
<p>For console access from a distance, a console server is the professional answer. See <a href="/en/posts/next-gen-console-server-architecture/">Next-Gen Console Server Architecture</a>.</p>
<h2 id="how-the-recovery-works">How the Recovery Works</h2>
<p>The Catalyst 3560 stores its startup configuration as a file called <code>config.text</code> in flash. When the switch boots normally, IOS loads that file. Password recovery interrupts the boot process before IOS starts and gives you the <strong>boot loader</strong>, a small environment with the <code>switch:</code> prompt.</p>
<p>In the boot loader you can access the flash file system. If <code>config.text</code> is renamed, IOS boots without a configuration, which means without passwords. You then log in, restore the configuration manually and set new passwords.</p>
<h2 id="method-1-recover-the-password-and-keep-the-configuration">Method 1: Recover the Password and Keep the Configuration</h2>
<h3 id="step-1-interrupt-the-boot-process">Step 1: Interrupt the Boot Process</h3>
<ol>
<li>Connect the console cable and open your terminal session.</li>
<li>Unplug the power cable.</li>
<li>Press and hold the <strong>Mode</strong> button on the front panel.</li>
<li>Reconnect the power while still holding Mode.</li>
<li>Release the button after about 15 seconds, when the console shows that the system was interrupted before the flash file system was initialized.</li>
</ol>
<p>You should now see the <code>switch:</code> prompt. If the switch boots normally instead, power off and try again, holding the button a little longer.</p>
<h3 id="step-2-initialize-flash">Step 2: Initialize Flash</h3>
<p>The flash file system is not mounted yet. Initialize it:</p>
<pre tabindex="0"><code>switch: flash_init
</code></pre><p>On some older boot loader versions you also need to load helper files:</p>
<pre tabindex="0"><code>switch: load_helper
</code></pre><p>Then list the contents of flash:</p>
<pre tabindex="0"><code>switch: dir flash:
</code></pre><p>You should see the IOS image (or a directory containing it), <code>config.text</code>, <code>vlan.dat</code> and possibly <code>private-config.text</code>.</p>
<h3 id="step-3-rename-the-configuration-file">Step 3: Rename the Configuration File</h3>
<pre tabindex="0"><code>switch: rename flash:config.text flash:config.text.old
</code></pre><p>Do <strong>not</strong> delete <code>config.text</code>. Renaming it is enough to stop IOS from loading it, and you still need its contents later.</p>
<h3 id="step-4-boot-ios-without-the-configuration">Step 4: Boot IOS Without the Configuration</h3>
<pre tabindex="0"><code>switch: boot
</code></pre><p>The switch boots with an empty configuration. When it asks whether you want to enter the initial configuration dialog, answer <strong>no</strong>.</p>
<h3 id="step-5-restore-the-original-configuration">Step 5: Restore the Original Configuration</h3>
<pre tabindex="0"><code>Switch&gt; enable
Switch# rename flash:config.text.old flash:config.text
Switch# copy flash:config.text system:running-config
</code></pre><p>The switch now runs your original configuration, including the hostname, VLANs, interfaces and the old passwords. You are still in privileged mode because you entered it before the configuration was loaded.</p>
<h3 id="step-6-set-new-passwords">Step 6: Set New Passwords</h3>
<pre tabindex="0"><code>Switch# configure terminal
Switch(config)# enable secret &lt;new-enable-secret&gt;
Switch(config)# username admin privilege 15 secret &lt;new-password&gt;
Switch(config)# line con 0
Switch(config-line)# login local
Switch(config-line)# line vty 0 15
Switch(config-line)# login local
Switch(config-line)# end
</code></pre><p>Adjust this to how authentication was set up before. If the switch used TACACS+ or RADIUS, check that the local fallback account still works.</p>
<h3 id="step-7-check-interfaces-and-save">Step 7: Check Interfaces and Save</h3>
<p>Copying a configuration into the running configuration merges it. It does not reproduce every interface state. Check for interfaces that are administratively down, especially VLAN interfaces (SVIs):</p>
<pre tabindex="0"><code>Switch# show ip interface brief
</code></pre><p>Bring up any interface that should be up with <code>no shutdown</code>. Then save:</p>
<pre tabindex="0"><code>Switch# copy running-config startup-config
</code></pre><p>Reload once and log in with the new credentials to confirm that everything survives a reboot.</p>
<h2 id="method-2-when-password-recovery-is-disabled">Method 2: When Password Recovery Is Disabled</h2>
<p>If the switch was configured with <code>no service password-recovery</code>, the Mode button procedure behaves differently. You cannot access the flash file system from the boot loader. Instead, the switch tells you that password recovery has been disabled and asks whether you want to reset the system to its default configuration.</p>
<ul>
<li>If you answer <strong>yes</strong>, the switch deletes the configuration file and the VLAN database and boots with factory defaults. The IOS image stays in flash.</li>
<li>If you answer <strong>no</strong>, the switch boots normally with its current configuration, and you are back at the password prompt.</li>
</ul>
<p>This is the intended trade-off of the feature. An attacker with physical access cannot read the configuration, but you lose it too.</p>
<p>Before you reset, make sure you have a recent backup of the configuration from another source, for example a configuration management tool, a TFTP server or an archived <code>show running-config</code>. After the reset:</p>
<ol>
<li>Log in without a password and set new credentials.</li>
<li>Restore the configuration from your backup.</li>
<li>Recreate the VLANs if your backup does not include them. The VLAN database (<code>vlan.dat</code>) is deleted too.</li>
<li>Decide whether <code>no service password-recovery</code> should be enabled again. It makes sense for switches in public or unlocked locations, as long as the configuration is backed up somewhere else.</li>
</ol>
<h2 id="newer-boot-loaders-ignoring-the-startup-configuration">Newer Boot Loaders: Ignoring the Startup Configuration</h2>
<p>Newer Catalyst models and boot loader versions offer a cleaner alternative to renaming <code>config.text</code>: a boot loader variable that tells IOS to ignore the startup configuration for one boot. Whether your switch supports it depends on the model and boot loader version. Run <code>set</code> at the <code>switch:</code> prompt to see the variables your boot loader knows.</p>
<p>I will document what the 3560 boot loader offers once I have the lab outputs.</p>
<h2 id="common-mistakes">Common Mistakes</h2>
<ul>
<li><strong>Deleting <code>config.text</code> instead of renaming it.</strong> The configuration is gone, and your only option is a backup.</li>
<li><strong>Forgetting to rename the file back.</strong> The switch boots without configuration at the next reload.</li>
<li><strong>Using <code>copy startup-config running-config</code> before renaming.</strong> The startup configuration does not exist under its normal name at that point.</li>
<li><strong>Not saving after changing the passwords.</strong> The old passwords come back at the next reload.</li>
<li><strong>Shut down SVIs after the merge.</strong> Management access over the network fails even though the configuration looks correct.</li>
</ul>
<h2 id="related-articles">Related Articles</h2>
<ul>
<li><a href="/en/posts/catalyst-3560-ios-upgrade/">Catalyst 3560 IOS Upgrade: Two Methods and Verification</a></li>
<li><a href="/en/posts/catalyst-3560-boot-loader-recovery/">When a Catalyst 3560 Won&rsquo;t Boot: Recovery from the Boot Loader</a></li>
<li><a href="/en/posts/cisco-nexus-nxos-upgrade-guide/">Cisco Nexus NX-OS Software Upgrade Guide</a></li>
<li><a href="/en/posts/next-gen-console-server-architecture/">Next-Gen Console Server Architecture</a></li>
</ul>
]]></content:encoded></item><item><title>When a Catalyst 3560 Won't Boot: Recovery from the Boot Loader</title><link>https://barashhelvadzhaoglu.com/en/posts/catalyst-3560-boot-loader-recovery/</link><pubDate>Fri, 16 Oct 2026 00:00:00 +0000</pubDate><guid>https://barashhelvadzhaoglu.com/en/posts/catalyst-3560-boot-loader-recovery/</guid><description>Recovering a Cisco Catalyst 3560 stuck at the switch: prompt — boot loader variables, booting a different image, and transferring a new IOS image over the console with Xmodem.</description><content:encoded><![CDATA[<p>Sooner or later every network engineer sees it: after a reload, the switch does not come back. On the console there is only a <code>switch:</code> prompt. The IOS image is missing, corrupted, or the boot variable points to a file that does not exist.</p>
<p>This is not a reason to replace the switch. The Catalyst 3560 boot loader has everything you need to get IOS running again, even when the image in flash is gone. This guide covers:</p>
<ul>
<li>How to read the boot loader environment and why the switch stopped there</li>
<li>How to boot an image that is already in flash</li>
<li>How to transfer a new image over the console with <strong>Xmodem</strong> when flash is empty</li>
<li>How to make the fix permanent</li>
</ul>
<blockquote>
<p><strong>Lab note:</strong> I am testing these scenarios on my own Catalyst 3560 8-port PoE switch. Console outputs and transfer times from that lab will be added to this guide.</p>
</blockquote>
<h2 id="why-the-switch-stops-at-the-boot-loader">Why the Switch Stops at the Boot Loader</h2>
<p>The boot loader starts IOS from the image listed in the <code>BOOT</code> variable. If that fails, or if no <code>BOOT</code> variable is set and the boot loader cannot find a bootable image itself, the switch stops at the <code>switch:</code> prompt. Typical causes:</p>
<ul>
<li>The upgrade went wrong: a typo in <code>boot system</code>, or the image was deleted before the new one was in place.</li>
<li>The image file is corrupted, for example after an interrupted copy.</li>
<li>The <code>MANUAL_BOOT</code> variable is set to <code>yes</code>, so the switch always waits at the prompt.</li>
<li>The flash file system is damaged.</li>
</ul>
<p>Another symptom is a <strong>boot loop</strong>: the switch starts loading IOS, crashes and reboots again and again. To break the loop, interrupt the boot process with the Mode button. The procedure is described in the <a href="/en/posts/catalyst-3560-password-recovery/">password recovery guide</a>.</p>
<h2 id="step-1-look-around">Step 1: Look Around</h2>
<p>Initialize flash and look at what is there:</p>
<pre tabindex="0"><code>switch: flash_init
switch: dir flash:
</code></pre><p>Then show the boot loader environment variables:</p>
<pre tabindex="0"><code>switch: set
</code></pre><p>The most important variables:</p>
<table>
	<thead>
			<tr>
					<th>Variable</th>
					<th>Meaning</th>
			</tr>
	</thead>
	<tbody>
			<tr>
					<td><code>BOOT</code></td>
					<td>Image(s) the switch tries to boot, separated by semicolons</td>
			</tr>
			<tr>
					<td><code>MANUAL_BOOT</code></td>
					<td><code>yes</code> = always stop at the boot loader prompt</td>
			</tr>
			<tr>
					<td><code>BAUD</code></td>
					<td>Console speed. Default is 9600 when the variable is not set</td>
			</tr>
			<tr>
					<td><code>CONFIG_FILE</code></td>
					<td>Configuration file name, default <code>config.text</code></td>
			</tr>
	</tbody>
</table>
<p>Use <code>help</code> to see which commands your boot loader version supports.</p>
<h2 id="step-2-boot-an-image-that-is-already-in-flash">Step 2: Boot an Image That Is Already in Flash</h2>
<p>If <code>dir flash:</code> shows a valid IOS image, you can boot it directly. Images installed with <code>archive download-sw</code> are in a subdirectory, so check the full path:</p>
<pre tabindex="0"><code>switch: dir flash:c3560-ipservicesk9-mz.&lt;version&gt;
switch: boot flash:c3560-ipservicesk9-mz.&lt;version&gt;/c3560-ipservicesk9-mz.&lt;version&gt;.bin
</code></pre><p>If <code>MANUAL_BOOT</code> was the problem, fix it:</p>
<pre tabindex="0"><code>switch: set MANUAL_BOOT no
</code></pre><p>When IOS is running, fix the boot variable permanently:</p>
<pre tabindex="0"><code>Switch# configure terminal
Switch(config)# boot system flash:&lt;path&gt;/&lt;image&gt;.bin
Switch(config)# end
Switch# copy running-config startup-config
Switch# show boot
</code></pre><h2 id="step-3-flash-is-empty-transfer-an-image-with-xmodem">Step 3: Flash Is Empty: Transfer an Image with Xmodem</h2>
<p>If there is no usable image in flash, you need to bring one in. On the classic Catalyst 3560, the boot loader has no network stack and the switch has no USB storage port, so the console is the way in. The protocol is <strong>Xmodem</strong>, which every serious terminal program supports.</p>
<h3 id="prepare-the-image">Prepare the Image</h3>
<p>Use the <code>.bin</code> file, not the <code>.tar</code> file. Xmodem transfers a single file and the boot loader cannot extract archives. Check the MD5 checksum on your PC before you start, because the transfer is long and you do not want to repeat it.</p>
<h3 id="increase-the-console-speed">Increase the Console Speed</h3>
<p>At 9600 baud, transferring an IOS image of this size takes several hours. Increase the speed first:</p>
<pre tabindex="0"><code>switch: set BAUD 115200
</code></pre><p>The console output becomes unreadable immediately. Change your terminal program to 115200 baud and press Enter until the <code>switch:</code> prompt comes back.</p>
<h3 id="start-the-transfer">Start the Transfer</h3>
<pre tabindex="0"><code>switch: copy xmodem: flash:c3560-ipservicesk9-mz.&lt;version&gt;.bin
</code></pre><p>The switch waits for the file. In your terminal program, start an Xmodem send:</p>
<ul>
<li><strong>SecureCRT:</strong> Transfer &gt; Send Xmodem</li>
<li><strong>Tera Term:</strong> File &gt; Transfer &gt; XMODEM &gt; Send</li>
<li><strong>minicom / screen:</strong> use <code>sx</code> from the <code>lrzsz</code> package</li>
</ul>
<p>At 115200 baud, expect a transfer time in the range of half an hour to an hour, depending on the image size and the terminal program. Do not touch the console session during the transfer.</p>
<h3 id="boot-the-new-image">Boot the New Image</h3>
<pre tabindex="0"><code>switch: dir flash:
switch: boot flash:c3560-ipservicesk9-mz.&lt;version&gt;.bin
</code></pre><h2 id="step-4-clean-up">Step 4: Clean Up</h2>
<p>When IOS is running:</p>
<ol>
<li>Verify the image: <code>verify /md5 flash:&lt;image&gt;.bin</code></li>
<li>Set <code>boot system</code> to the new image and save, as in Step 2.</li>
<li><strong>Reset the console speed.</strong> If you leave the boot loader <code>BAUD</code> at 115200, the console stays at that speed. Anyone who connects at the default 9600 baud later will see only garbage. Set it back in the boot loader (<code>set BAUD 9600</code>) or make sure the console line speed in IOS matches what your team expects.</li>
<li>Reload once to confirm that the switch boots without help.</li>
</ol>
<h2 id="what-about-tftp-and-usb">What About TFTP and USB?</h2>
<p>On newer Catalyst platforms the boot loader can do more. Some models have a USB storage port (<code>usbflash0:</code>) or can boot an image over the network from the management port. That is much faster than Xmodem. On the classic 3560, these options are not available, so Xmodem is the only path when flash is empty. Run <code>help</code> at the <code>switch:</code> prompt to see what your platform supports.</p>
<p>The same idea, booting from TFTP or USB when the device does not start, is covered for data center switches in the <a href="/en/posts/cisco-nexus-nxos-upgrade-guide/">Nexus NX-OS upgrade guide</a>.</p>
<h2 id="prevention">Prevention</h2>
<ul>
<li>Keep a copy of the current and the previous image on a TFTP server you can reach.</li>
<li>Verify the MD5 checksum before every reload after an upgrade.</li>
<li>Check <code>show boot</code> before every planned reload.</li>
<li>Have console access ready for every upgrade. A console server makes this possible remotely: <a href="/en/posts/next-gen-console-server-architecture/">Next-Gen Console Server Architecture</a>.</li>
</ul>
<h2 id="related-articles">Related Articles</h2>
<ul>
<li><a href="/en/posts/catalyst-3560-password-recovery/">Cisco Catalyst 3560 Password Recovery: Two Methods</a></li>
<li><a href="/en/posts/catalyst-3560-ios-upgrade/">Catalyst 3560 IOS Upgrade: Two Methods and Verification</a></li>
<li><a href="/en/posts/cisco-nexus-nxos-upgrade-guide/">Cisco Nexus NX-OS Software Upgrade Guide</a></li>
</ul>
]]></content:encoded></item></channel></rss>