...
Upgrade from Fabric OS 8.1.0a to Fabric OS 8.1.2f.Impact:Switch not able to upgrade to new firmware.Environment:EMC Hardware: Connectrix DS-6620BBrocade Software: Fabric OS 8.1.0aBrocade Software: Fabric OS 8.1.2fProblem:Firmware upgrade not successful.The firmwareupgrade was initiated using the defaults firmwaredownload procedure.During the firmwaredownload the new code will be uploaded on the secondary partition, but when the auto hareboot happens, to swap partitions, the switch boots with the old firmware version instead.Example:Firmwareshow output:DS6620B:root> firmwareshowAppl Primary/Secondary Versions------------------------------------------FOS v8.1.0a v8.1.2fWARNING: Firmwaredownload is in progress.DS6620B:FID1:root> The command firmwaredownloadstatus indicates firmware has been downloaded to the secondary partition of the switch but nothing further.Example:DS6620B:FID1:root> firmwaredownloadstatus[1]: Fri Nov 30 18:18:26 2018Firmware is being downloaded to the switch. This step may take up to 30 minutes.[2]: Fri Nov 30 18:30:25 2018Firmware has been downloaded to the secondary partition of the switch.DS6620B:FID1:root>And if command firmwarecommit is run while in this state, it returns the error Cannot start firmwarecommit because the downloaded firmware is not activated. and the command firmwaredownloadstatus shows Firmwarecommit failed. (0x1a).Example:DS6620B:FID1:root> firmwarecommitCannot start firmwarecommit because the downloaded firmware is not activated.DS6620B:FID1:root>DS6620B:FID1:root> firmwaredownloadstatus[1]: Fri Nov 30 18:18:26 2018Firmware is being downloaded to the switch. This step may take up to 30 minutes.[2]: Fri Nov 30 18:30:25 2018Firmware has been downloaded to the secondary partition of the switch.[3]: Fri Nov 30 19:44:40 2018The firmware commit operation has started. This may take up to 10 minutes.[4]: Fri Nov 30 19:44:40 2018Firmware commit failed - Firmwarecommit failed. (0x1a)DS6620B:FID1:root>
On this switch where the upgrade did not boot to new firmware version after firmwaredownload, a bootloader parameter (bootargs) was found to have been modified to boot to specific partition.(root=/dev/sda1) instead of (root=/dev/sda$prt)Example:bootargs=root=/dev/sda1 rootfstype=ext4 quiet console=ttyS0,9600Normally during upgrade process, the firmware is initially downloaded to the Secondary partition while the Primary partition firmware is unchanged until after reboot.The Primary and Secondary partitions are swapped and switch would normally boot to the partition with the new firmware.But because the bootargs parameter was previously modified to boot to specific partition (root=/dev/sda1) instead of (root=/dev/sda$prt), the switch continued to boot to the partition with the old firmware.As a result, active firmware version remained v8.1.0a instead of expected v8.1.2f on the boot after the upgrade.The cause of the incorrect bootargs value in the bootloader configuration was due to a password recovery procedure where the value was inadvertently set.Notice the result of bootargs parameter shows /dev/sda1 instead of /dev/sda$prt after the above command was run.Example taken from the serial port:=> setenv bootargs "root=/dev/sda$prt rootfstype=ext4 console=ttyS0,9600 quiet"=> saveenvSaving Environment to NVRAM...=>=> printenvbootargs=root=/dev/sda1 rootfstype=ext4 console=ttyS0,9600 quiet=>
Fix: To recover, modify the bootargs setting back to defaults.Method #1:- Login to switch as root and use the bootenv command.bootenv bootargs 'root=/dev/sda$prt rootfstype=ext4 console=ttyS0,9600 quiet'harebootMethod #2:- Connect via serial console and enter bootloader command shell.setenv bootargs 'root=/dev/sda$prt rootfstype=ext4 console=ttyS0,9600 quiet'saveenvbootAfter either Method #1 or #2 has been followed, the switch should boot with the new firmware and complete the firmwaredownload process.