Восстановление коммутатора Cisco Catalyst 2960S-F48LPS-L

Данный метод восстановления подходит для каталистов 2960S и я не знаю подойдёт ли этот метод для других моделей.
Так получилось, что пришлось изучать сетевое оборудование Cisco. В рамках обслуживания, было решено обновить версию прошивки. На официальном сайте Cisco нашел последнюю версию, но по случайности поставил версию не 15.0.2SE11, а версию 15.2.2aE1. В запарке рабочего дня, не обратил внимания на дату релиза, а ориентировался на старшинство цифр стоящих в обозначении версии.
После перезагрузки всё было в рабочем состоянии и я спокойно пошел домой.
На следующий день телефон просто раскалился от звонков, пока я доехал до места работы.
Т.к. коммутаторы стоят в стеке по 4шт. и именно в "мастер" была подключена оптика, то все 192 порта не имели связи с файловым сервером, работа стала.
Коммутатор выдавал такое:
Using driver version 3 for media type 1
Base ethernet MAC Address: хх:хх:хх:хх:хх:хх
Xmodem file system is available.
The password-recovery mechanism is enabled.
Initializing Flash…
mifs[2]: 12 files, 1 directories
mifs[2]: Total bytes : 1806336
mifs[2]: Bytes used : 830464
mifs[2]: Bytes available : 975872
mifs[2]: mifs fsck took 1 seconds.
mifs[3]: 0 files, 1 directories
mifs[3]: Total bytes : 3870720
mifs[3]: Bytes used : 1024
mifs[3]: Bytes available : 3869696
mifs[3]: mifs fsck took 0 seconds.
mifs[4]: 5 files, 1 directories
mifs[4]: Total bytes : 258048
mifs[4]: Bytes used : 9216
mifs[4]: Bytes available : 248832
mifs[4]: mifs fsck took 0 seconds.
mifs[5]: 5 files, 1 directories
mifs[5]: Total bytes : 258048
mifs[5]: Bytes used : 9216
mifs[5]: Bytes available : 248832
mifs[5]: mifs fsck took 0 seconds.
mifs[6]: Invalid dir sctr=1
mifs[6]: directory[1] is corrupted! Attempting to restore it
mifs[6]: 0 files, 1 directories
mifs[6]: Total bytes : 57931776
mifs[6]: Bytes used : 1024
mifs[6]: Bytes available : 57930752
mifs[6]: mifs fsck took 1 seconds.
…done Initializing Flash.
done.
Loading "flash:/c2960s-universalk9-mz.152-2a.E1/c2960s-universalk9-mz.152-2a.E1.bin"…flash:/c2960s-universalk9-mz.152-2a.E1/c2960s-universalk9-mz.152-2a.E1.bin: no such file or directory
Error loading "flash:/c2960s-universalk9-mz.152-2a.E1/c2960s-universalk9-mz.152-2a.E1.bin"
Interrupt within 5 seconds to abort boot process.
Boot process failed…
The system is unable to boot automatically. The BOOT
environment variable needs to be set to a bootable
image.
switch:
Загрузился бутлоадер.
Искушенный админ заметит вот эту строчку mifs[6]: directory[1] is corrupted! Attempting to restore it, которая означает, что пушистый зверек уже тут.
Отключаем питание, зажимаем кнопочку MODE и держим пока на экране не появится текст, далее отпускаем. На экране такое:
Using driver version 3 for media type 1
Base ethernet MAC Address: хх:хх:хх:хх:хх:хх
Xmodem file system is available.
The password-recovery mechanism is enabled.
The system has been interrupted prior to initializing the
flash filesystem. The following commands will initialize
the flash filesystem, and finish loading the operating
system software:
flash_init
boot
Вводим команду flash_init. Далее пробуем отформатировать флеш память.
switch: format flash:
Are you sure you want to format "flash:" (all data will be lost) (y/n)?y
mifs[6]: Failed to create superblock
Filesystem "flash:" not formatted — I/O error
Форматирование не удаётся. Попробуем проверку файловой системы флеш памяти:
switch: fsck -test flash:
Are you sure you want to fsck "flash:" (could take some time) (y/n)?
mifs[6]: 0 files, 1 directories
mifs[6]: Total bytes : 57931776
mifs[6]: Bytes used : 1024
mifs[6]: Bytes available : 57930752
mifs[6]: mifs fsck took 2 seconds.
switch: fsck -f flash:
Are you sure you want to fsck "flash:" (could take some time) (y/n)?
mifs[6]: 0 files, 1 directories
mifs[6]: Total bytes : 57931776
mifs[6]: Bytes used : 1024
mifs[6]: Bytes available : 57930752
mifs[6]: mifs fsck took 0 seconds.
Далее перезагрузка командой
switch: reset
Можно и не инициализировать память и пробывать форматировать и делать проверку без инициализации. Я делал по всякому, во всех возможных комбинациях и много раз. По началу была повреждена только одна директория со старой версией ios и сам новый ios. В графе Bytes used было значение близкое к ёмкости флеш памяти. На какую-то из попыток форматирование и проверок, в графе Bytes used появилось значение 1024 т.е. флеш стёрлась. Форматирование по прежнему заканчивалось ошибкой Failed to create superblock.
Далее замечаю, что ошибки во флеш памяти нет:
Using driver version 3 for media type 1
Base ethernet MAC Address: хх:хх:хх:хх:хх:хх
Xmodem file system is available.
The password-recovery mechanism is enabled.
Initializing Flash…
mifs[2]: 12 files, 1 directories
mifs[2]: Total bytes : 1806336
mifs[2]: Bytes used : 830464
mifs[2]: Bytes available : 975872
mifs[2]: mifs fsck took 1 seconds.
mifs[3]: 0 files, 1 directories
mifs[3]: Total bytes : 3870720
mifs[3]: Bytes used : 1024
mifs[3]: Bytes available : 3869696
mifs[3]: mifs fsck took 0 seconds.
mifs[4]: 5 files, 1 directories
mifs[4]: Total bytes : 258048
mifs[4]: Bytes used : 9216
mifs[4]: Bytes available : 248832
mifs[4]: mifs fsck took 0 seconds.
mifs[5]: 5 files, 1 directories
mifs[5]: Total bytes : 258048
mifs[5]: Bytes used : 9216
mifs[5]: Bytes available : 248832
mifs[5]: mifs fsck took 0 seconds.
mifs[6]: 0 files, 1 directories
mifs[6]: Total bytes : 57931776
mifs[6]: Bytes used : 1024
mifs[6]: Bytes available : 57930752
mifs[6]: mifs fsck took 1 seconds.
…done Initializing Flash.
done.
Loading "flash:c2960s-universalk9-mz.150-2.SE4/c2960s-universalk9-mz.150-2.SE4.bin"…flash:c2960s-universalk9-mz.150-2.SE4/c2960s-universalk9-mz.150-2.SE4.bin: no such file or directory
Error loading "flash:c2960s-universalk9-mz.150-2.SE4/c2960s-universalk9-mz.150-2.SE4.bin"
Interrupt within 5 seconds to abort boot process.
Boot process failed…
The system is unable to boot automatically. The BOOT
environment variable needs to be set to a bootable
image.
Хоть ошибки и не было, но коммутатор жил своё жизнью:
switch: format flash:
Are you sure you want to format "flash:" (all data will be lost) (y/n)?y
mifs[6]: Failed to create superblock
Filesystem "flash:" not formatted — I/O error
switch:
Далее смотрим какие есть директории:
switch: dir
List of filesystems currently registered:
bs[0]: (read-only)
flash[6]: (read-write)
xmodem[7]: (read-only)
null[8]: (read-write)
tftp[9]: (read-only)
Вроде реагирует, перезагружаемся:
switch: reset
Are you sure you want to reset the system (y/n)?
System resetting…
Using driver version 3 for media type 1
Base ethernet MAC Address: хх:хх:хх:хх:хх:хх
Xmodem file system is available.
The password-recovery mechanism is enabled.
Initializing Flash…
mifs[2]: 12 files, 1 directories
mifs[2]: Total bytes : 1806336
mifs[2]: Bytes used : 830464
mifs[2]: Bytes available : 975872
mifs[2]: mifs fsck took 1 seconds.
mifs[3]: 0 files, 1 directories
mifs[3]: Total bytes : 3870720
mifs[3]: Bytes used : 1024
mifs[3]: Bytes available : 3869696
mifs[3]: mifs fsck took 0 seconds.
mifs[4]: 5 files, 1 directories
mifs[4]: Total bytes : 258048
mifs[4]: Bytes used : 9216
mifs[4]: Bytes available : 248832
mifs[4]: mifs fsck took 0 seconds.
mifs[5]: 5 files, 1 directories
mifs[5]: Total bytes : 258048
mifs[5]: Bytes used : 9216
mifs[5]: Bytes available : 248832
mifs[5]: mifs fsck took 0 seconds.
mifs[6]: Invalid dir sctr=1
mifs[6]: directory[1] is corrupted! Attempting to restore it
mifs[6]: 0 files, 1 directories
mifs[6]: Total bytes : 57931776
mifs[6]: Bytes used : 1024
mifs[6]: Bytes available : 57930752
mifs[6]: mifs fsck took 1 seconds.
…done Initializing Flash.
done.
Снова ошибка во флеш памяти, еще раз перезагрузка:
switch: reset
Are you sure you want to reset the system (y/n)?
System resetting…
Using driver version 3 for media type 1
Base ethernet MAC Address: хх:хх:хх:хх:хх:хх
Xmodem file system is available.
The password-recovery mechanism is enabled.
Initializing Flash…
mifs[2]: 12 files, 1 directories
mifs[2]: Total bytes : 1806336
mifs[2]: Bytes used : 830464
mifs[2]: Bytes available : 975872
mifs[2]: mifs fsck took 1 seconds.
mifs[3]: 0 files, 1 directories
mifs[3]: Total bytes : 3870720
mifs[3]: Bytes used : 1024
mifs[3]: Bytes available : 3869696
mifs[3]: mifs fsck took 0 seconds.
mifs[4]: 5 files, 1 directories
mifs[4]: Total bytes : 258048
mifs[4]: Bytes used : 9216
mifs[4]: Bytes available : 248832
mifs[4]: mifs fsck took 0 seconds.
mifs[5]: 5 files, 1 directories
mifs[5]: Total bytes : 258048
mifs[5]: Bytes used : 9216
mifs[5]: Bytes available : 248832
mifs[5]: mifs fsck took 0 seconds.
mifs[6]: 0 files, 1 directories
mifs[6]: Total bytes : 57931776
mifs[6]: Bytes used : 1024
mifs[6]: Bytes available : 57930752
mifs[6]: mifs fsck took 1 seconds.
…done Initializing Flash.
done.
Ошибки нет
Можно посмотреть содержимое флеш памяти:
switch: dir flash:
Другие команды бутлоадера тут
Цель всех этих манипуляций, получить память без ошибок и после перезагрузки перейти к установке правильного образа.
Кто не знает где взять последний образ, могу подкинуть пару ссылок.
Т.к. флеш память распаяна внутри коммутатора и не съёмная, то заливать прошивку надо через порт обведенный желтым квадратиком (видно на первом фото в посте). Подключаем патчкорд в этот порт одним концом, а вторым в рабочий коммутатор. Подключая напрямую к ПК у меня ничего не получилось, возможно нужен роутер (но это не точно).
Вводим такую команду:
switch: set
BOARD_CONFIG_REV=0
CLEI_CODE_NUMBER=CMMхххххххх
DAUGHTERBOARD_ASSEMBLY_NUM=73-14972-02
DAUGHTERBOARD_REVISION_NUM=B0
DAUGHTERBOARD_SERIAL_NUM=FOCхххххххх
MAC_ADDR=хх:хх:хх:хх:хх:хх
MODEL_NUM=WS-C2960S-F48LPS-L
MODEL_REVISION_NUM=A0
MOTHERBOARD_ASSEMBLY_NUM=73-14895-02
MOTHERBOARD_REVISION_NUM=A0
MOTHERBOARD_SERIAL_NUM=FOCхххххххх
POWER_SUPPLY_PART_NUM=341-0528-01
POWER_SUPPLY_SERIAL_NUM=LITхххххххх
SDM_TEMPLATE_ID=0
SWITCH_NUMBER=1
SWITCH_PRIORITY=15
SYSTEM_JUMBO_SIZE=1600
SYSTEM_MTU=1600
SYSTEM_SERIAL_NUM=FOCхххххххх
— MORE —
TAN_NUM=800-38482-01
TAN_REVISION_NUMBER=C0
VERSION_ID=V01
Видим, что нет ip адреса порта.
Инициализируем порт switch: mgmt_init
Устанавливаем ip адрес порта switch: set IP_ADDR 192.168.0.11/255.255.255.0
Устанавливаем ip адрес роутера switch: set DEFAULT_ROUTER 192.168.0.1
БОЛЬШИЕ БУКВЫ ОБЯЗАТЕЛЬНЫ! иначе не сработает.
Если ошиблись, то отменить команду можно так switch: unset и вводим то, что хотим отменить.
Проверяем:
switch: set
BOARD_CONFIG_REV=0
CLEI_CODE_NUMBER=CMMхххххххх
DAUGHTERBOARD_ASSEMBLY_NUM=73-14972-02
DAUGHTERBOARD_REVISION_NUM=B0
DAUGHTERBOARD_SERIAL_NUM=FOCхххххххх
DEFAULT_ROUTER=192.168.0.1
IP_ADDR=192.168.0.11/255.255.255.0
MAC_ADDR=хх:хх:хх:хх:хх:хх
MODEL_NUM=WS-C2960S-F48LPS-L
MODEL_REVISION_NUM=A0
MOTHERBOARD_ASSEMBLY_NUM=73-14895-02
MOTHERBOARD_REVISION_NUM=A0
MOTHERBOARD_SERIAL_NUM=FOCхххххххх
POWER_SUPPLY_PART_NUM=341-0528-01
POWER_SUPPLY_SERIAL_NUM=LITхххххххх
SDM_TEMPLATE_ID=0
SWITCH_NUMBER=1
SWITCH_PRIORITY=15
SYSTEM_JUMBO_SIZE=1600
SYSTEM_MTU=1600
SYSTEM_SERIAL_NUM=FOCхххххххх
— MORE —
TAN_NUM=800-38482-01
TAN_REVISION_NUMBER=C0
VERSION_ID=V01
Попробывал пропинговать tftp и шлюз, но ничего не пинговалось. Кстати, TFTP уже должен быть настроен, нужные файлы уже должны быть на месте.
switch: copy tftp://192.168.0.19/c2960s-universalk9-mz.150-2.SE4.bin flash:c2960s-universalk9-mz.150-2.SE4.bin
tftp://192.168.0.19/c2960s-universalk9-mz.150-2.SE4.bin: connection timed out
switch: ping 192.168.0.19
ping 192.168.0.19 with 32 bytes of data …
Request timed out.
Request timed out.
Request timed out.
Timed out, no answer from 192.168.0.19.
switch: ping 192.168.0.1
ping 192.168.0.1 with 32 bytes of data …
Request timed out.
Request timed out.
Request timed out.
Timed out, no answer from 192.168.0.1.
switch: set
Unknown cmd: set
switch: set
BOARD_CONFIG_REV=0
CLEI_CODE_NUMBER=CMMхххххххх
DAUGHTERBOARD_ASSEMBLY_NUM=73-14972-02
DAUGHTERBOARD_REVISION_NUM=B0
DAUGHTERBOARD_SERIAL_NUM=FOCхххххххх
DEFAULT_ROUTER=192.168.0.1
IP_ADDR=192.168.0.11/255.255.255.0
MAC_ADDR=хх:хх:хх:хх:хх:хх
MODEL_NUM=WS-C2960S-F48LPS-L
MODEL_REVISION_NUM=A0
MOTHERBOARD_ASSEMBLY_NUM=73-14895-02
MOTHERBOARD_REVISION_NUM=A0
MOTHERBOARD_SERIAL_NUM=FOCхххххххх
POWER_SUPPLY_PART_NUM=341-0528-01
POWER_SUPPLY_SERIAL_NUM=LITхххххххх
SDM_TEMPLATE_ID=0
SWITCH_NUMBER=1
SWITCH_PRIORITY=15
SYSTEM_JUMBO_SIZE=1600
SYSTEM_MTU=1600
SYSTEM_SERIAL_NUM=FOCхххххххх
— MORE —
TAN_NUM=800-38482-01
TAN_REVISION_NUMBER=C0
VERSION_ID=V01
Только со второго раза всё пошло как надо:
switch: copy tftp://192.168.0.19/c2960s-universalk9-mz.150-2.SE4.bin flash:c2960s-universalk9-mz.150-2.SE4.bin
…[часть точек удалено]…
switch: reset
Are you sure you want to reset the system (y/n)?
System resetting…
Вот и всё, потрачено времени около 4 часов, проблема решена.
Using driver version 3 for media type 1
Base ethernet MAC Address: хх:хх:хх:хх:хх:хх
Xmodem file system is available.
The password-recovery mechanism is enabled.
Initializing Flash…
mifs[2]: 12 files, 1 directories
mifs[2]: Total bytes : 1806336
mifs[2]: Bytes used : 830464
mifs[2]: Bytes available : 975872
mifs[2]: mifs fsck took 0 seconds.
mifs[3]: 0 files, 1 directories
mifs[3]: Total bytes : 3870720
mifs[3]: Bytes used : 1024
mifs[3]: Bytes available : 3869696
mifs[3]: mifs fsck took 0 seconds.
mifs[4]: 5 files, 1 directories
mifs[4]: Total bytes : 258048
mifs[4]: Bytes used : 9216
mifs[4]: Bytes available : 248832
mifs[4]: mifs fsck took 0 seconds.
mifs[5]: 5 files, 1 directories
mifs[5]: Total bytes : 258048
mifs[5]: Bytes used : 9216
mifs[5]: Bytes available : 248832
mifs[5]: mifs fsck took 0 seconds.
mifs[6]: 4 files, 1 directories
mifs[6]: Total bytes : 57931776
mifs[6]: Bytes used : 15039488
mifs[6]: Bytes available : 42892288
mifs[6]: mifs fsck took 8 seconds.
…done Initializing Flash.
done.
Loading "flash:/c2960s-universalk9-mz.150-2.SE4.bin"…@@@@@@@@@@@@@[часть символов удалена]@@@@@@@@@@@@@@@@@
File "flash:/c2960s-universalk9-mz.150-2.SE4.bin" uncompressed and installed, entry point: 0x3000
executing…
Подключиться по USB у меня не получилось, есть такая инструкция:
Method 2: Transferring IOS image using USB Flash drive.
Before creating this post I didn’t know the Boot Loader (Rommon) mode supports USB flash drive, until a gentle man (Leo) on Cisco forum share this little secret that’s not mention in Cisco docs. The steps as as below. (Thanks to Leo L. & Muhammad Y. for these instructions on Cisco Forum: Source, I haven’t tested this method yet so I am not 100% if this works.)
Step 1: Take a USB of any size, format it using FAT16.
Step 2: Copy a valid IOS to the USB drive.
Step 3: Insert USB to your Router/Switch.
Step 4: Reset you Router/Switch.
Step 5: Enter following comman
switch: dir usbflash0:
Step 6: Once you verify that it has detected the flash you can boot router/Switch using the following command
switch: boot usbflash0:IOS_name.bin
Note: In case it’s not accepting the USB drive, try formatting it to 256 MB. Also “boot usbflash0:” is not only hidden but you might need to upgrade the router’s Bootstrap before you can use the command. Newer switches, like the 2960X/X, 3650 and 3850, and ISR G2s now support this command.
I hope I have covered every step here. Please leave a comment and let me know if there is anything you feel is incorrect and if this have helped you or not.