Modern Junos devices have dual boot partitions, each with their own copy of the operating system. This ensures that the device will boot if storage or other boot-related issues are detected on the primary boot partition.
However, when you manually update the software, it is only updated on one of the partitions which is then set as the boot partition. The second, original, partition will keep running on the previous version until it is manually updated as well. This might be an advantage if you are testing a new software version and want to quickly roll back to the old one. It could also wreak havoc if you are inadvertently falling back to a pre-historic software version that is missing or not compatible with some of the features you’ve since enabled. If you have found a stable software version, it’s best to keep both partitions in sync. Here’s how to do it…
Identifying a software mismatch
The first hint is given at boot time. Right before the login prompt and banner, the console will alert you of the software version disparity.
kern.securelevel: -1 -> 1 Creating JAIL MFS partition... JAIL MFS partition created Boot media /dev/ad0 has dual root support WARNING: JUNOS versions running on dual partitions are not same ** /dev/ad0s1a FILE SYSTEM CLEAN; SKIPPING CHECKS clean, 242154 free (34 frags, 30265 blocks, 0.0% fragmentation)
You can also find out from operational mode. The command below will show you the software versions on both of the partitions.
netprobe@netfilter> show system snapshot media internal Information for snapshot on internal (/dev/ad0s1a) (backup) Creation date: Jul 31 11:13:12 2014 JUNOS version on snapshot: junos : 12.1X44-D35.5-domestic Information for snapshot on internal (/dev/ad0s2a) (primary) Creation date: Mar 4 19:53:11 2016 JUNOS version on snapshot: junos : 12.1X46-D40.2-domestic
As you can see from the output, we are currently running on partition /dev/ad0s2a, which has a newer software version than the first partition /dev/ad0s1a.
Cloning the primary partition
To get the software version from our now-primary partition over to the backup, the system will first format the backup partition and then clone the contents. This process is initiated with the command below.
netprobe@netfilter> request system snapshot slice alternate Formatting alternate root (/dev/ad0s1a)... Copying '/dev/ad0s2a' to '/dev/ad0s1a' .. (this may take a few minutes) The following filesystems were archived: /
After the cloning process you might need to reboot the device, depending on the model. If all went well, you will no longer see the warning prompt for version mismatch:
Creating JAIL MFS partition... JAIL MFS partition created Boot media /dev/ad0 has dual root support ** /dev/ad0s1a FILE SYSTEM CLEAN; SKIPPING CHECKS
And voila, the snapshot command will now show the same SW version on both partitions.
netprobe@netfilter> show system snapshot media internal Information for snapshot on internal (/dev/ad0s1a) (backup) Creation date: Mar 4 21:45:37 2016 JUNOS version on snapshot: junos : 12.1X46-D40.2-domestic Information for snapshot on internal (/dev/ad0s2a) (primary) Creation date: Mar 4 21:48:51 2016 JUNOS version on snapshot: junos : 12.1X46-D40.2-domestic
On EX switches, you can alternate between boot partitions by entering this command.
request system reboot slice alternate media internal
Unfortunately this doesn’t seem to work on SRX devices, at least not on the branch devices I’ve worked with so far. If anyone knows how to make this work on these SRXs I would love to hear about it!