The following article is a tutorial for Nx-OS upgrade and quick guide to troubleshoot some of the common issues which you can face.
In first place, we can check which are the current kickstart and system file, which the device you in the boot process. :
switch# show boot Current Boot Variables: kickstart variable = bootflash:/n3000-uk9-kickstart.6.0.2.U2.9z.bin system variable = bootflash:/n3000-uk9.6.0.2.U2.9z.bin Boot POAP Disabled Boot Variables on next reload: kickstart variable = bootflash:/n3000-uk9-kickstart.6.0.2.U2.9z.bin system variable = bootflash:/n3000-uk9.6.0.2.U2.9z.bin Boot POAP Disabled
From the example above you can see that the current kickstart is located in the bootflash directory along with the system file.
Next thing is to check what other files we have in the bootflash directory:
switch# dir bootflash: 168 Jun 06 08:08:03 2018 20180606_074253_poap_3679_init.log 2864580 Jan 19 22:15:53 2015 lltor-dplug-mzg.6.0.2.U2.9z.bin 49152 Jan 28 20:15:36 2015 lost+found/ 32745984 Jan 16 21:23:11 2015 n3000-uk9-kickstart.6.0.2.U2.9z.bin 32515584 May 06 15:26:02 2016 n3000-uk9-kickstart.6.0.2.U3.8.bin 37853184 Jun 13 20:30:08 2016 n3000-uk9-kickstart.6.0.2.U6.2a.bin 37857280 Apr 17 08:16:38 2016 n3000-uk9-kickstart.6.0.2.U6.5c.bin 37861376 Nov 18 00:58:07 2016 n3000-uk9-kickstart.6.0.2.U6.7.bin 167316925 Jan 16 21:23:48 2015 n3000-uk9.6.0.2.U2.9z.bin 188975573 May 06 15:27:09 2016 n3000-uk9.6.0.2.U3.8.bin 206765681 Jun 13 20:31:31 2016 n3000-uk9.6.0.2.U6.2a.bin 206969903 Apr 17 08:31:59 2016 n3000-uk9.6.0.2.U6.5c.bin 205813793 Nov 18 00:59:07 2016 n3000-uk9.6.0.2.U6.7.bin 4096 Jan 29 14:46:13 2010 vdc_2/ 4096 Jan 29 14:46:13 2010 vdc_3/ 4096 Jan 29 14:46:13 2010 vdc_4/ Usage for bootflash://sup-local 1276289024 bytes used 374616064 bytes free 1650905088 bytes total
The command above is also useful to check free and used space on the bootflash.
In this tutorial, the desired version is located on a usb drive, inserted into one of the usb ports on the device.
In order to see all of the files on the USB drive use:
switch# dir usb1: 37857280 Jun 21 14:32:24 2017 n3000-uk9-kickstart.6.0.2.U6.3.bin 37853184 Jun 21 14:32:24 2017 n3000-uk9-kickstart.6.0.2.U6.4.bin 37857280 Apr 17 04:34:02 2018 n3000-uk9-kickstart.6.0.2.U6.6.bin 37857280 Jun 21 11:59:06 2017 n3000-uk9-kickstart.6.0.2.U6.8.bin 206760954 Jun 21 14:32:24 2017 n3000-uk9.6.0.2.U6.3.bin 206826629 Jun 21 14:32:24 2017 n3000-uk9.6.0.2.U6.4.bin 206973712 Apr 17 04:33:22 2018 n3000-uk9.6.0.2.U6.6.bin 205782497 Jun 21 11:59:38 2017 n3000-uk9.6.0.2.U6.8.bin 311575552 Aug 11 12:00:18 2017 n9000-dk9.6.1.2.I2.2b.bin 359338496 Aug 11 12:01:02 2017 n9000-dk9.6.1.2.I3.4b.bin 535352320 Aug 29 06:58:22 2016 nxos.7.0.3.I2.1.bin 757307904 Sep 13 11:22:42 2017 nxos.7.0.3.I5.2.bin 759941120 May 04 07:22:22 2018 nxos.7.0.3.I6.1.bin Usage for usb1://sup-local 3701329920 bytes used 4460556288 bytes free 8161886208 bytes total
Let’s say that you want use n3000-uk9-kickstart.6.0.2.U6.4.bin and n3000-uk9.6.0.2.U6.4.bin, we have to copy them first to the bootflash. Use the following command:
switch# copy usb1:n3000-uk9-kickstart.6.0.2.U6.4.bin bootflash: Copy progress 100% 37853KB Copy complete, now saving to disk (please wait)... switch# copy usb1:n3000-uk9.6.0.2.U6.4.bin bootflash: Copy progress 100% 206826KB Copy complete, now saving to disk (please wait)...
After both files are successfully copied, we can proceed with the installation:
switch# install all kickstart bootflash:n3000-uk9-kickstart.6.0.2.U6.4.bin system bootflash:n3000-uk9.6.0.2.U6.4.bin Installer is forced disruptive Pre-upgrade check failed. Return code 0x40930062 (free space in the filesystem is below threshold).
Woops – we faced an issue: free space in the filesystem is below threshold – we should check where we hit the space threshold.
This can be easily checked with:
switch# show system internal log install details | include space check_freespace: check_freespace: /bootflash total bl ocks: 403053, free blocks: 69336, space being used: 82% fsm_action_pre_verification: fsm_action_pre_verificat ion: Free space in "/bootflash" partition is below threshold: 18
Cool – now we have to free some space from the bootflash directory.
In order to check, which file how much space takes, use:
switch# show system internal dir /bootflash ./ 4096 ../ 820 lost+found/ 49152 n3000-uk9.6.0.2.U3.8.bin 188975573 vdc_2/ 4096 vdc_3/ 4096 vdc_4/ 4096 n3000-uk9-kickstart.6.0.2.U6.7.bin 37861376 n3000-uk9.6.0.2.U6.2a.bin 206765681 n3000-uk9.6.0.2.U6.5c.bin 206969903 n3000-uk9.6.0.2.U6.7.bin 205813793 n3000-uk9.6.0.2.U6.4.bin 206826629 n3000-uk9-kickstart.6.0.2.U6.5c.bin 37857280 20180606_074253_poap_3679_init.log 168 n3000-uk9-kickstart.6.0.2.U6.4.bin 37853184 n3000-uk9-kickstart.6.0.2.U2.9z.bin 32745984 n3000-uk9.6.0.2.U2.9z.bin 167316925 lltor-dplug-mzg.6.0.2.U2.9z.bin 2864580
We can delete some of the files that we won’t use. Keep two or three versions, just in case – in the future, you might face some version incompatibility and it would be a lot easier to change the version if the files that you need are there.
Of course don’t delete the current kickstart and system files – but don’t worry if you have tried 😀 Nx-os, won’t let you.
switch# delete bootflash:/n3000-uk9-kickstart.6.0.2.U6.5c.bin
Great, now we can try to install it again:
switch# show install all impact kickstart bootflash:n3000-uk9-kickstart.6.0.2.U6.4.bin system bootflash:n3000-uk9.6.0.2.U6.4.bin Installer is forced disruptive Verifying image bootflash:/n3000-uk9-kickstart.6.0.2.U6.4.bin for boot variable "kickstart". [####################] 100% -- SUCCESS Verifying image bootflash:/n3000-uk9.6.0.2.U6.4.bin for boot variable "system". [####################] 100% -- SUCCESS Verifying image type. [####################] 100% -- SUCCESS Extracting "system" version from image bootflash:/n3000-uk9.6.0.2.U6.4.bin. [####################] 100% -- SUCCESS Extracting "kickstart" version from image bootflash:/n3000-uk9-kickstart.6.0.2.U6.4.bin. [####################] 100% -- SUCCESS Extracting "bios" version from image bootflash:/n3000-uk9.6.0.2.U6.4.bin. [####################] 100% -- SUCCESS Performing module support checks. [####################] 100% -- SUCCESS Notifying services about system upgrade. [####################] 100% -- SUCCESS Compatibility check is done: Module bootable Impact Install-type Reason ------ -------- -------------- ------------ ------ 1 yes disruptive reset Forced by the user Images will be upgraded according to following table: Module Image Running-Version New-Version Upg-Required ------ ---------------- ---------------------- ---------------------- ------------ 1 system 6.0(2)U2(9Z) 6.0(2)U6(4) yes 1 kickstart 6.0(2)U2(9Z) 6.0(2)U6(4) yes 1 bios v1.2.0(08/25/2011) v1.2.0(08/25/2011) no 1 power-seq v4.4 v4.4 no
We use: show install, because in this way the command displays information describing the impact of the upgrade.
Nice we installed it successfully. Let’s check the boot again:
switch# show boot Current Boot Variables: kickstart variable = bootflash:/n3000-uk9-kickstart.6.0.2.U2.9z.bin system variable = bootflash:/n3000-uk9.6.0.2.U2.9z.bin Boot POAP Disabled Boot Variables on next reload: kickstart variable = bootflash:/n3000-uk9-kickstart.6.0.2.U2.9z.bin system variable = bootflash:/n3000-uk9.6.0.2.U2.9z.bin Boot POAP Disabled
Well – no change. We have to change the variables in the configuration, too.
We check which are currently configured with:
switch# show running-config | include boot boot kickstart bootflash:/n3000-uk9-kickstart.6.0.2.U2.9z.bin boot system bootflash:/n3000-uk9.6.0.2.U2.9z.bin
We need to change the variables to the new ones:
switch# conf t Enter configuration commands, one per line. End with CNTL/Z. switch(config)# boot kickstart bootflash:n3000-uk9-kickstart.6.0.2.U6.4.bin Performing image verification and compatibility check,please wait.... Note: system and kickstart bootvars are pointing to incompatible images switch(config)# boot system bootflash:n3000-uk9.6.0.2.U6.4.bin Performing image verification and compatibility check,please wait.... switch(config)# end
Don’t be afraid of the:
“Note: system and kickstart bootvars are pointing to incompatible images”
Even that you have changed the kickstart file in the configuration, the system files is still the old one. Once you change it too, it will be okey.
Let’s check again the configuration:
switch# show running-config | include boot boot kickstart bootflash:/n3000-uk9-kickstart.6.0.2.U6.4.bin boot system bootflash:/n3000-uk9.6.0.2.U6.4.bin
One more time check the boot variables:
switch# show boot Current Boot Variables: kickstart variable = bootflash:/n3000-uk9-kickstart.6.0.2.U6.4.bin system variable = bootflash:/n3000-uk9.6.0.2.U6.4.bin Boot POAP Disabled Boot Variables on next reload: kickstart variable = bootflash:/n3000-uk9-kickstart.6.0.2.U6.4.bin system variable = bootflash:/n3000-uk9.6.0.2.U6.4.bin Boot POAP Disabled
With the following command you can check the packages, which present on the device.
switch# show install packages Boot Images: Kickstart Image: bootflash:/n3000-uk9-kickstart.6.0.2.U6.4.bin System Image: bootflash:/n3000-uk9.6.0.2.U6.4.bin ----------------------------------------------------------- -----------------------------------------------------------
Perfect, one last thing and we are ready for the reboot.
switch#conf t
switch(config)#copy running-config startup-config
The last step is to reload the device:
switch#reload
After the device has booted, one last check that everything is running as expected:
switch# show boot Current Boot Variables: kickstart variable = bootflash:/n3000-uk9-kickstart.6.0.2.U6.4.bin system variable = bootflash:/n3000-uk9.6.0.2.U6.4.bin Boot POAP Disabled Boot Variables on next reload: kickstart variable = bootflash:/n3000-uk9-kickstart.6.0.2.U6.4.bin system variable = bootflash:/n3000-uk9.6.0.2.U6.4.bin Boot POAP Disabled
Cool - everything is fine.
I hope you enjoy the tutorial and find it helpful. If you have any questions, don't hesitate to contact me whether in the comments or you can find my contact info in the "About me" tab.
Cheers!
Very efficiently written post. It will be beneficial to everyone who usess it, including myself. Keep up the good work – for sure i will check out more posts.