A new menu-based loader has been introduced from the upgraded FreeBSD release of Junos.
This article explains the function of each menu and differences between the loader in legacy EX switches compared to the new loader. The screen and CLI captures in this article are taken from an EX3400 switch with Junos 15.1X53.
Boot [J]unos volume
Boot Junos volume in [S]afe mode
[R]eboot
Boot [P]revious installed Junos packages
'/packages/sets/previous'
root@:/ # ls -al /packages/sets/previous/ total 20 drwxr-xr-x 4 root wheel 1536 Mar 30 15:45 . drwxrwxrwx 4 root wheel 512 Mar 30 18:47 .. drwxr-xr-x 2 root wheel 512 Mar 30 15:45 boot lrwxr-xr-x 1 root wheel 66 Mar 30 15:44 jail-runtime -> /packages/db/jail-runtime-x86-32-20171012.356211_builder_stable_10 lrwxr-xr-x 1 root wheel 62 Mar 30 15:44 jdocs -> /packages/db/jdocs-x86-32-20171121.225603_builder_junos_161_r6 lrwxr-xr-x 1 root wheel 63 Mar 30 15:44 jpfe-X -> /packages/db/jpfe-X-x86-32-20171121.225603_builder_junos_161_r6 (snip)
Boot Junos in [S]ingle user mode
Boot from [R]ecovery snapshot
'request system recover junos-volume'
---------------------------------------------------------------------- FreeBSD/arm (Amnesiac) (ttyu0) login: root --- JUNOS Note: Junos is currently running in recovery mode on the OAM volume root@:RE:0% CLI {master:0} root> request system recover junos-volume NOTICE: Recovering the Junos volume ... warning: unable to create volume: swap warning: the storage device that holds it is not present da0p2 deleted da0p2 added /dev/gpt/junos: 1410.0MB (2887592 sectors) block size 32768, fragment size 4096 using 4 cylinder groups of 352.50MB, 11280 blks, 45184 inodes. super-block backups (for fsck_ffs -b #) at: 192, 722112, 1444032, 2165952 {master:0} root> request system reboot junos ------------------------------------------------------------------------
Boot from [U]SB
gzip -d junos-install-media-usb-arm-32-15.1X53-D58.3.img.gz
'dd'
dd if=junos-install-media-usb-ex-arm-32-15.1X53-D56.img of=/dev/da1 bs=1m
Boot to [O]AM shell
# df -k Filesystem 1024-blocks Used Avail Capacity Mounted on /dev/md0 21860 21860 0 100% / devfs 1 1 0 100% /dev /dev/gpt/oam 2096223 28143 1900383 1% /.mount
Snapshot [B]oot menu
labroot@jtac-ex3400-24t-r2005> request system snapshot fpc0: ---------------------------------------------------------- NOTICE: Snapshot snap.20000114.223439 created successfully
Recover [J]unos volume
Choice: Booting from OAM volume to recover the Junos volume ... (snip) Unpacking recovery snapshot to junos volume Software recoverWaiting (max 60 seconds) for system process `vnlru' to stop...y completed done Waiting (max 60 seconds) for system process `bufdaemon' to stop...done Waiting (max 60 seconds) for system process `syncer' to stop... Syncing disks, vnodes remaining...2 0 0 done All buffers synced. Uptime: 1m36s Rebooting...
Recovery mode - [C]LI
----------------------------------------------------------------------------------- NOTE: Once in the CLI, you will need to enter configuration mode using NOTE: the 'configure' command to make any required changes. For example, NOTE: to reset the root password, type: NOTE: configure NOTE: set system root-authentication plain-text-password NOTE: (enter the new password when asked) NOTE: commit NOTE: exit NOTE: exit NOTE: When you exit the CLI, you will be in a shell. Starting CLI ... tvp_token_reinit read try :hw.product.pvi.config.junos_kernel_token.reinit tvp_token_reinit read try :hw.product.pvi.config.junos_kernel_token.reinit root> -----------------------------------------------------------------------------------
Check [F]ile system
----------------------------------------------------------------------------------- Choice: Booting from OAM volume to perform disk checks … (snip) ***** FILE SYSTEM IS CLEAN ***** Running: fsck_ufs -y /dev/gpt/junos ** /dev/gpt/junos ** Last Mounted on /.mount ** Phase 1 - Check Blocks and Sizes ** Phase 2 - Check Pathnames ** Phase 3 - Check Connectivity ** Phase 4 - Check Reference Counts ** Phase 5 - Check Cyl groups 3951 files, 657824 used, 3522478 free (110 frags, 440296 blocks, 0.0% fragmentation) ***** FILE SYSTEM IS CLEAN ***** File system repair Type 'exit' when done. # -----------------------------------------------------------------------------------
Enable [V]erbose boot
[B]oot prompt
Note: Similar loader prompt to that of Legacy EX
loader> menu
loader> set ipaddr=10.219.43.165 loader> set netmask=255.255.255.64 loader> set gatewayip=10.219.43.129 loader> install tftp://10.219.83.19/junos-install-media-net-arm-32-15.1X53-D58.3.tgz
There are 3 different install package/media images:
(a) Install package: used for upgrade from CLI prompt
(b) Install Media - NET image: used for upgrade from tftp server
(c) Install Media - USB image : used for upgrade from external USB memory
From loader prompt, you can only upgrade from tftp server using NET image.
For USB install, you should use the USB boot menu as explained above.
Regardless of the "--format" option, it initializes storage. The "--format" option does not make a difference.
=================== root@jtac-ex3400-24t-r2005:RE:0% gpart list | egrep "(Name|label)" 1. Name: da0p1 label: oam 2. Name: da0p2 label: junos 1. Name: da0 1. Name: da1s1 1. Name: da1 1. Name: da1s1a 1. Name: da1s1
root@jtac-ex3400-24t-r2005:RE:0% gpart list Geom name: da0 modified: false state: OK fwheads: 255 fwsectors: 63 last: 3911639 first: 40 entries: 152 scheme: GPT Providers: 1. Name: da0p1 Mediasize: 524288000 (500M) Sectorsize: 512 Stripesize: 0 Stripeoffset: 20480 Mode: r0w0e0 rawuuid: 0d6b1f5f-c22e-11d3-ae03-0da94d08da1b rawtype: 516e7cb6-6ecf-11d6-8ff8-00022d09712b label: oam length: 524288000 offset: 20480 type: freebsd-ufs index: 1 end: 1024039 start: 40 2. Name: da0p2 Mediasize: 1478447104 (1.4G) Sectorsize: 512 Stripesize: 0 Stripeoffset: 524308480 Mode: r1w1e2 rawuuid: 0e63a694-c22e-11d3-ae03-0da94d08da1b rawtype: 516e7cb6-6ecf-11d6-8ff8-00022d09712b label: junos length: 1478447104 offset: 524308480 type: freebsd-ufs index: 2 end: 3911631 start: 1024040 Consumers: 1. Name: da0 Mediasize: 2002780160 (1.9G) Sectorsize: 512 Mode: r1w1e3 Geom name: da1 modified: false state: OK fwheads: 255 fwsectors: 63 last: 30851071 first: 1 entries: 4 scheme: MBR Providers: 1. Name: da1s1 Mediasize: 332374016 (317M) Sectorsize: 512 Stripesize: 0 Stripeoffset: 512 Mode: r0w0e0 rawtype: 165 length: 332374016 offset: 512 type: freebsd index: 1 end: 649168 start: 1 Consumers: 1. Name: da1 Mediasize: 15795748864 (15G) Sectorsize: 512 Mode: r0w0e0 Geom name: da1s1 modified: false state: OK fwheads: 255 fwsectors: 63 last: 649167 first: 0 entries: 8 scheme: BSD Providers: 1. Name: da1s1a Mediasize: 332365824 (317M) Sectorsize: 512 Stripesize: 0 Stripeoffset: 8704 Mode: r0w0e0 rawtype: 7 length: 332365824 offset: 8192 type: freebsd-ufs index: 1 end: 649167 start: 16 Consumers: 1. Name: da1s1 Mediasize: 332374016 (317M) Sectorsize: 512 Stripesize: 0 Stripeoffset: 512 Mode: r0w0e0
2018-06-09: Updated references to naming used for FreeBSD. 2020-08-17: Article reviewed for accuracy; no changes required.