This article describes the procedure to upgrade the Jloader (U-Boot) firmware on both U-Boot partitions of a QFX3500 switch running Junos. Since the QFX3500 maintains two U-Boot partitions for redundancy, both must be updated independently to ensure consistency and prevent a partition mismatch after a reboot or failover.
The article covers how to:
- Identify the active Junos boot partition (/dev/da0s1a or /dev/da0s2a) using show system storage. - Determine the current U-Boot partition and Jloader version from shell mode using kenv | grep boot. - Perform the Jloader firmware upgrade on both U-Boot partitions to complete the process.
Use the commands below to determine the Junos partition that the device has booted from AND the jloader version. This information is needed for the next step. This example shows that Junos partition is /dev/da0s2a and the current uboot partition is “0”.
show system storage
{master:0} root@rod-la-p-r> show system storage fpc0: ——————————————————————————— Filesystem Size Used Avail Capacity Mounted on /dev/da0s2a 457M 224M 196M 53% / =========== = >>>>> It has booted from /dev/da0s2a
{master:0} root@rod-la-p-r> show system storage fpc0: ——————————————————————————— Filesystem Size Used Avail Capacity Mounted on /dev/da0s2a 457M 224M 196M 53% / ===========
kenv | grep boot
root@rod-la-p-r:RE:0% kenv | grep boot boot.version="1.1.4" =========== >>>>>>> This shows the jloader version of the current uboot 0. (From this command, we will not know the uboot partition, we are assuming that, we are in uboot partition 0)
root@rod-la-p-r:RE:0% kenv | grep boot boot.version="1.1.4" ===========
For additional details, please refer Solution section.
root> show system storage fpc0: -------------------------------------------------------------------------- Filesystem Size Used Avail Capacity Mounted on /dev/da0s2a 401M 191M 178M 52% / root> show version fpc0: -------------------------------------------------------------------------- Model: qfx3500s JUNOS Base OS boot [13.2X51-D35.3] JUNOS Base OS Software Suite [13.2X51-D35.3] JUNOS Kernel Software Suite [13.2X51-D35.3] JUNOS Crypto Software Suite [13.2X51-D35.3] JUNOS Online Documentation [13.2X51-D35.3] JUNOS Enterprise Software Suite [13.2X51-D35.3] JUNOS Packet Forwarding Engine Support (qfx-3) [13.2X51-D35.3] JUNOS Routing Software Suite [13.2X51-D35.3] JUNOS py-base-xlr [13.2X51-D35.3] JUNOS loader upgrade [13.3-20130831_pr_branch_qfd.0] root> show system snapshot slice alternate fpc0: -------------------------------------------------------------------------- Information for snapshot on internal (da0s1) Creation date: Mar 4 01:42:38 2016 JUNOS version on snapshot: jbase : 13.2X51-D35.3 jcrypto: qfx-13.2X51-D35.3 jdocs : qfx-13.2X51-D35.3 jkernel: qfx-3-13.2X51-D35.3 jloader-qfx: 12.1-20120125_pr.0 jpfe : qfx-3-13.2X51-D35.3 jroute : qfx-3-13.2X51-D35.3 jswitch: qfx-3-13.2X51-D35.3 py- base-xlr: 13.2X51-D35.3
Important Notes:
Now, we have upgraded the jloader on the “uboot partition 1” to 1.1.8 and also booted from the “uboot partition 1”.
cli
user@switch> request system software add package Replace package with one of the following paths: For a software package in the /var/tmp directory on the switch request system software add /var/tmp/jloader-qfx-11.3-20110510.0-signed.tgz no-validate For a software package on a remote server: ftp://hostname/pathname/jloader-qfx-11.3-20110510.0-signed.tgz http://hostname/pathname/jloader-qfx-11.3-20110510.0-signed.tgz
user@switch> request system software add package
root@rod-la-p-r> request system reboot ================== >>>>>>>>>>>>>>> The reboot can also be given directly on the command "request system software add /var/tmp/jloader-qfx-13.3-20130831_pr_branch_qfd.0.tgz reboot" Reboot the system ? [yes,no] (no) yes <<<< skipping the reboot messages an showing only the needed>>>> Partition [1,0] =================================== >>>>>>>>>>>>>>> It was in uboot 0 and now upgraded the jloader on uboot 1 and booting from uboot 1. DRAM MATS Passed (Refer KB KB30796 ) U-Boot 1.1.6 (Build time: Aug 31 2013 - 12:36:40)
root> show system storage fpc0: -------------------------------------------------------------------------- Filesystem Size Used Avail Capacity Mounted on /dev/da0s1a 401M 191M 179M 52% / ======================= >>>>>>>>>>> booted from the other Junos partition. root@rod-la-p-r:RE:0% kenv | grep boot boot.version="1.1.8" =============================== >>>>>>>>>>>>>>>>>> jloader version upgraded .
root> show system storage fpc0: -------------------------------------------------------------------------- Filesystem Size Used Avail Capacity Mounted on /dev/da0s1a 401M 191M 179M 52% / ======================= >>>>>>>>>>> booted from the other Junos partition. root@rod-la-p-r:RE:0% kenv | grep boot boot.version="1.1.8" ===============================
>>>>>>>>>>>>>>>>>> jloader version upgraded
To upgrade the jloader on the “uboot partition 0”, give the upgrade command without a reboot. The reason for no reboot is it will upgrade the jloader on the other uboot partition, so with this upgrade, it will install jloader on “uboot partition 0” and it will get activated the next time system is rebooted.
root> file list /var/sw/pkg/ /var/sw/pkg/: jloader-qfx-12.1-20120125_pr.0-signed.tgz jloader-qfx-13.3-20130831_pr_branch_qfd.0.tgz
2021-03-25: Updated the article terminology to align with Juniper's Inclusion & Diversity initiatives.