If you need to update ONIE on your Cumulus Linux switch, follow these instructions.
ONIE uses an onie-updater
file in order to update itself. The onie-updater
file should be provided to you by your hardware vendor. If you are using a Cumulus Express switch, open a support ticket to get this file from Cumulus Networks.
You can either perform the update manually or use the ONIE discovery methods. During the update process, you can point to this file manually, or it can be automatically discovered via ONIE's waterfall mechanism.
{{table_of_contents}}
Determining the Current ONIE Version
You can determine the current ONIE version by running /usr/lib/cumulus/onie/onie-version
:
cumulus@switch:~$ sudo /usr/lib/cumulus/onie/onie-version ONIE version : 2018.08 ONIE vendor_id : 674 ONIE build_machine : dell_s6000_s1220 ONIE machine_rev : 0 ONIE arch : x86_64 ONIE build_platform : x86_64-dell_s6000_s1220-r0 ONIE config_version : 1 ONIE build_date : 2018-08-13T23:25-0700 ONIE partition_type : gpt ONIE kernel_version : 3.2.69 ONIE firmware : bios ONIE switch_asic : bcm ONIE skip_ethmgmt_macs: no
Manually Updating ONIE
To update ONIE manually, boot into ONIE rescue mode from Cumulus Linux. You enter ONIE without starting any automatic install/uninstall/discovery operations.
From Cumulus Linux, run onie-select -rf
, then reboot
the switch.
- Boot into ONIE rescue mode:
cumulus@switch:~$ sudo onie-select -rf
- Reboot the switch to enter ONIE mode:
cumulus@switch:~$ sudo reboot
onie-self-update
allows you to specify the URL or filepath of the target onie-updater file, so that you don't have to rely on ONIE discovery mechanisms.
Usage options are below:
ONIE:/ # onie-self-update -h
usage: [-evh] <URL>
Download and run an ONIE updater image. Supported URL types: http,
ftp, tftp, file.
COMMAND LINE OPTIONS
-h
Help. Print this message.
-v
Be verbose. Print what is happening.
-e
Embed ONIE in the hard disk.
*Warning* -- This operation is destructive to the data
on the hard disk. This operation will reformat the
hard disk and install ONIE.Important! Unless you intentionally want this process to reformat/re-partition the hard drive and destroy all data currently written to disk (including CL), do not use
-e
.
Here is an example using the local file method. The file was secure copied to the switch using scp
while running ONIE.
ONIE:/ # ls
bin
dev
etc
init
lib
mnt
onie-updater-x86_64-dell_s6000_s1220-r0
proc
root
run
sbin
sys
tmp
usr
var
ONIE:/ # onie-self-update file://onie-updater-x86_64-dell_s6000_s1220-r0
Stopping: discover... done.
ONIE: Executing installer: file://onie-updater-x86_64-dell_s6000_s1220-r0
Verifying image checksum ... OK.
Preparing image archive ... OK.
ONIE: Version : 2018.08
ONIE: Architecture : x86_64
ONIE: Machine : dell_s6000_s1220
ONIE: Machine Rev : 0
ONIE: Config Version: 1
ONIE: Build Date : 2018-08-13T23:25-0700
Installing ONIE on: /dev/sda
ONIE:/ # umount: can't remount rootfs read-only
The system is going down NOW!
Sent SIGTERM to all processes
Sent SIGKILL tosd 0:0:0:0: [sda] Synchronizing SCSI cache
Restarting system.
machine restart
Updating ONIE Using Discovery Mode
In order to make use of the discovery mode, you must boot into ONIE self update mode.
In Cumulus Linux, run onie-select -pf
to stage ONIE, then reboot
the switch to boot into ONIE self update mode.
- Prepare to boot into ONIE self update mode:
cumulus@switch:~$ sudo onie-select -pf
- Reboot the switch to enter ONIE self update mode:
cumulus@switch:~$ sudo reboot
ONIE attempts to locate the installer through a number of discovery methods. The first successful method found is used to download and run an updater. The discovery methods are tried repeatedly, forever, until a successful image install occurs.
The discovery methods are executed in the following order:
- Statically configured (passed from boot loader)
- Local file systems (USB for example)
- Exact URLs from DHCPv4
- Inexact URLs based on DHCP responses
- IPv6 neighbors
- TFTP waterfall
Even if an installer is successfully found, the installer can fail, in which case ONIE moves on to the next discovery method.
ONIE searches for default file names in a specific order. ONIE searches for the name of the NOS installer image in the following order:
onie-updater-<arch>-<vendor>_<machine>-r<machine_revision>
onie-updater-<arch>-<vendor>_<machine>
onie-updater-<vendor>_<machine>
onie-updater-<arch>
onie-updater
For example:
** ONIE Update Mode Enabled **
ONIE:/ #
ONIE:/ # Info: eth0: Checking link... up.
Info: Trying DHCPv4 on interface: eth0
ONIE: Using DHCPv4 addr: eth0: 10.50.23.128 / 255.255.255.0
ONIE: Starting ONIE Service Discovery
Info: Fetching http://10.50.31.51/onie-updater-x86_64-dell_s6000_s1220-r0 ...
Info: Fetching http://10.50.31.51/onie-updater-x86_64-dell_s6000_s1220 ...
Info: Fetching http://10.50.31.51/onie-updater-dell_s6000_s1220 ...
Info: Fetching http://10.50.31.51/onie-updater-x86_64 ...
Info: Fetching http://10.50.31.51/onie-updater ...
After updating ONIE, the switch reboots. If you don't change the boot target during the boot-up cycle, the switch boots all the way into Cumulus Linux.
From Cumulus Linux, you can once again run sudo /usr/lib/cumulus/onie/onie-version
to make sure the version has been updated to the version you expected.
Comments