How to Upgrade Nexus – Nx-OS and Return code 0x40930062

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!

One Reply to “How to Upgrade Nexus – Nx-OS and Return code 0x40930062”

Leave a Reply

Your email address will not be published. Required fields are marked *