自宅にProxmox仮想環境を2基構築しているのですが、検証構築などをしているとスイッチAruba 2530-8PSではポートが足らなくなってきたため、新たにCisco C2690L-16PSを入手しました。
Ciscoスイッチは職場では触れる機会はありますが、個人で導入するのは初めてです。
今回はUSBメモリを使ったファームウェアアップデートをやってみましたので備忘録として記事にします。
スイッチ外観
C2960Lはファンレス機のため、リアに大きな放熱フィンがついています。

電源ケーブルのコンセント形状はC13で、一般の3P電源ケーブルが使用できます。
Arubaは突起があるC15だったので、電源ケーブルが特殊でした。

ファンレス機で静音ですので、一般家庭での使用にも適すると思います。
必要機材
Ciscoスイッチはシリアルコンソールケーブルが必須になります。
私はサンワサプライのUC-SGT1をLANコネクタ変換器を接続して使っています。

初期設定
Ciscoスイッチは何も設定しない場合は、単なるノンインテリジェントHUBとして動作しますので、ファームをアップデートするための最低限の設定を投入します。
スイッチに電源を入れ、シリアルケーブルを接続して、起動すると対話形式の設定を聞かれるので[no]を入力して抜けます。
Would you like to enter the initial configuration dialog? [yes/no]: no Would you like to terminate autoinstall? [yes]:
コンフィグモードに入り、適当なホスト名をつけます。
Switch#configure terminal Enter configuration commands, one per line. End with CNTL/Z. Switch(config)#hostname Switch-2960L
Vlan1(no Vlan)にIPアドレスを設定します。
Switch-2960L(config)# Switch-2960L(config)#interface vlan 1 Switch-2960L(config-if)#ip address 192.168.10.3 255.255.255.0 Switch-2960L(config-if)#no shutdown
一度、全I/Fを起動します。
Switch-2960L(config)#interface range gigabitEthernet 0/1-16 Switch-2960L(config-if-range)#no shutdown
LAN経由のSSHでログインするため、各種設定を投入します。
Switch-2960L(config)#ip default-gateway 192.168.10.1 Switch-2960L(config)#ip domain-name falconblog.org Switch-2960L(config)#crypto key generate rsa modulus 2048 Switch-2960L(config)#username root privilege 15 secret XXXXXXXXXXX Switch-2960L(config)#line vty 0 4 Switch-2960L(config-line)#transport input ssh Switch-2960L(config-line)#login local Switch-2960L(config-line)#end
Webコンソールを起動するため、Webコンソール用パスワードとhttpサーバー起動をします。
Switch(config)# enable password YYYYYYYY Switch(config)# ip http server
pingを発行して、系内のIPアドレスにアクセスできることを確かめます。
witch-2960L#ping 192.168.10.1 Type escape sequence to abort. Sending 5, 100-byte ICMP Echos to 192.168.10.1, timeout is 2 seconds: !!!!! Success rate is 100 percent (5/5), round-trip min/avg/max = 2/3/6 ms
以上の設定でteratermのSSHでアクセスできるようになります。
webコンソールは[http://(スイッチのIPアドレス)]で入れるようになります。
Web GUIソフトがインストールされていない時代の機器の場合、CLIでソフトをインストールする必要があります。(後述します)
ファームウェアバージョン確認
Switch-2960L#show version Cisco IOS Software, C2960L Software (C2960L-UNIVERSALK9-M), Version 15.2(5c)E, RELEASE SOFTWARE (fc1)
Version 15.2(5c)Eでした。購入時から一度もバージョンアップされていないと思います。
シスコのサイトを見ると、Criticalな脆弱性が発見されていますので、速やかにupdateしたほうが良さそうです。

ファームウェア入手
C2960Lのファームウェアは、Cisco HPでアカウントを作成することで入手することができます。
執筆時点ではアカウント作成は無料でした。
※注記:Ciscoファームウェアは保守契約を締結している顧客にしか提供されませんでしたが、最近はL2スイッチに限って無償で公開されるようになり、中古でも選びやすくなりました。

ファームウェアはIOSとWEBコンソールの2つがあります。
WEBコンソールも動作状況を確認する上では便利ですので、2つともダウンロードしておけば良いでしょう。
最新(latest)バージョンの右にある↓をクリックするとダウンロードができます。
今回D/Lしたファイルは次の2つです。
- c2960l-universalk9-mz.152-7.E13.bin
- c2960l-universalk9-tar.152-7.E13.tar
ファーム転送にはUSBメモリが便利
スイッチのファームウェアの転送方法と言えば、一昔前はFTPでしたが、現在の主流はUSBやWebブラウザに移行していますので、今回はUSBメモリを使いました。
FAT32にフォーマットしたUSBメモリにD/Lしたファイルをコピーし、スイッチのUSBポートに差すだけです。

シリアルコンソールを差していると、メモリ本体が物理干渉することがあるので、薄型のメモリを使う必要がありました。
USBを差し込んだら、以下コマンドでファイルが読み取れることを確認します。
Switch-2960L#dir usbflash0:
Directory of usbflash0:/
4 -rw- 16273408 Feb 26 2026 09:51:40 +09:00 c2960l-universalk9-mz.152-7.E13.bin
5 -rw- 31744000 Feb 26 2026 09:51:58 +09:00 c2960l-universalk9-tar.152-7.E13.tar
3955228672 bytes total (3907059712 bytes free)
UHS-Ⅱの高速USBメモリは、なぜか認識できませんでした。
今回はレガシーなUSBメモリで認識してくれました。
IOSアップデート作業
アップデート作業もCLIで行います。
Webでもできますが、この時代のスイッチは、Webコンソールの完成度がイマイチのため、CLIでやる方がいいと思います。
ファームウェアをUSBメモリから本体flashにコピーします。
Switch-2960L#copy usbflash0:c2960l-universalk9-mz.152-7.E13.bin flash: Destination filename [c2960l-universalk9-mz.152-7.E13.bin]? %Warning:There is a file already existing with this name Do you want to over write? [confirm] Copy in progress...CCCCC ~中略~ 16273408 bytes copied in 48.048 secs (338691 bytes/sec)
転送できていることを確認します。
Switch-2960L#dir flash:
Directory of flash:/
773 -rwx 3096 Mar 1 2026 00:15:06 +09:00 multiple-fs
1027 -rwx 5490 Mar 1 2026 00:15:06 +09:00 private-config.text
1025 -rwx 2798 Mar 1 2026 00:15:06 +09:00 config.text
516 drwx 2048 Mar 4 2023 13:09:40 +09:00 c2960l-universalk9-mz.152-5c.E
637 drwx 2048 Mar 4 2023 13:09:40 +09:00 dc_profile_dir
258 -rwx 16273408 Mar 1 2026 18:29:24 +09:00 c2960l-universalk9-mz.152-7.E13.bin
783 drwx 2048 Jan 1 2000 13:28:14 +09:00 c2960l-universalk9-mz.152-7.E13
781 drwx 2048 Jan 1 2000 13:29:39 +09:00 flashupdate
2 drwx 2048 Mar 1 1993 09:00:02 +09:00 lost+found
244711424 bytes total (136474624 bytes free)
ベリファイを行い、HPに記載されているチェックサムと合致することを確認します。

Switch-2960L#verify /md5 flash:c2960l-universalk9-mz.152-7.E13.bin ...................................................................... ~中略~ ........Done! verify /md5 (flash:c2960l-universalk9-mz.152-7.E13.bin) = b62445613a6187536880967fb0938df5
ブートファイルを書き直し、running-configをstartup-configにコピーし、再起動します。
# ブートファイルの変更
Switch-2960L(config)#boot system flash:c2960l-universalk9-mz.152-7.E13.bin
# ブートファイルの確認
Switch-2960L#show boot
BOOT path-list : flash:c2960l-universalk9-mz.152-7.E13.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 :
Boot optimization : disabled
NVRAM/Config file
buffer size: 524288
Timeout for Config
Download: 0 seconds
Config Download
via DHCP: disabled (next boot: disabled)
# startupに変更 →これ忘れると旧ファームでの起動に戻る
Switch-2960L#copy running-config startup-config
Destination filename [startup-config]?
Building configuration...
[OK]
# 再起動
Switch-2960L#reload
Proceed with reload? [confirm]
再起動後にバージョン確認します。
Switch-2960L#show version Cisco IOS Software, C2960L Software (C2960L-UNIVERSALK9-M), Version 15.2(7)E13, RELEASE SOFTWARE (fc3) Technical Support: http://www.cisco.com/techsupport Copyright (c) 1986-2025 by Cisco Systems, Inc. Compiled Mon 15-Sep-25 12:56 by mcpre ROM: Bootstrap program is C2960L boot loader BOOTLDR: C2960L Boot Loader (C2960L-HBOOT-M) Version 15.2(5r)E3, RELEASE SOFTWARE (fc2) Switch-2960L uptime is 14 minutes
以上でIOSファームウェアの書き換えは終了です
Webコンソールアップデート作業
WebコンソールのアップデートをCLIで行うには、USBからFlashへコピーして、[archive download-sw]コマンドを行うだけでした。
# WebファームをUSBからflashへコピー
Switch-2960L#copy usbflash0:c2960l-universalk9-tar.152-7.E13.tar flash; :
Destination filename [c2960l-universalk9-tar.152-7.E13.tar]?
Copy in progress...CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC
~中略~
31744000 bytes copied in 91.953 secs (345220 bytes/sec)
# flashの中身を確認
Switch-2960L#dir flash:
Directory of flash:/
1030 -rwx 31744000 Mar 1 2026 18:32:08 +09:00 c2960l-universalk9-tar.152-7.E13.tar
773 -rwx 3096 Mar 1 2026 00:15:06 +09:00 multiple-fs
1027 -rwx 5490 Mar 1 2026 00:15:06 +09:00 private-config.text
1025 -rwx 2798 Mar 1 2026 00:15:06 +09:00 config.text
516 drwx 2048 Mar 4 2023 13:09:40 +09:00 c2960l-universalk9-mz.152-5c.E
637 drwx 2048 Mar 4 2023 13:09:40 +09:00 dc_profile_dir
258 -rwx 16273408 Mar 1 2026 18:29:24 +09:00 c2960l-universalk9-mz.152-7.E13.bin
783 drwx 2048 Jan 1 2000 13:28:14 +09:00 c2960l-universalk9-mz.152-7.E13
781 drwx 2048 Jan 1 2000 13:29:39 +09:00 flashupdate
2 drwx 2048 Mar 1 1993 09:00:02 +09:00 lost+found
244711424 bytes total (136474624 bytes free)
# archive download-swコマンドでアップデート
Switch-2960L#archive download-sw /overwrite flash:c2960l-universalk9-tar.152-7.E13.tar
extracting info (109 bytes)
examining image...
extracting c2960l-universalk9-mz.152-7.E13/info (612 bytes)
Image info:
Version Suffix: universalk9-152-7.E13
Image Name: c2960l-universalk9-mz.152-7.E13.bin
Version Directory: c2960l-universalk9-mz.152-7.E13
Ios Image Size: 16282112
Total Image Size: 31744512
Image Feature: IP|LAYER_2|SSH|3DES|MIN_DRAM_MEG=128
Image Family: C2960L
Image Minimum DRAM required: 134217728
Extracting files...
~中略~
Deleting existing version...
Deleting c2960l-universalk9-mz.152-7.E13...done.
New software image installed in c2960l-universalk9-mz.152-7.E13
Configuring system to use new image...done.
アップデートが完了すればWebブラウザからログインし、アップデートできたことを確認します。

Webコンソールはドラッグアンドドロップでアップデートできます。
面倒な方はWeb経由でもいいと思います。

以上でアップデート作業は完了です。
Ciscoスイッチは勉強になる
CiscoスイッチはデフォルトでONになっていない機能が多々あるため、初期設定のCLI操作が少々大変です。
ただネットワーク機器業界のリファレンス機ですから、情報も豊富で困ることはまずないです。
次回は一般的な初期設定について記載したいと思います。


