Installing ONIE on a machine with a blank hard drive poses a few challenges. Traditional OS installation techniques are used to overcome this.
How to configure a particular machine for PXE booting is beyond the
scope of this document. However, the ONIE build system does generate
kernel and initramfs images suitable for PXE booting.
The recovery-initrd Makefile target generates an ONIE initrd that
also contains an ONIE updater image.
Assuming you have set up PXE booting, a few kernel command line options can help automate the installation of ONIE:
boot_env=recoveryboot_reasoninstall_urlThe boot_env=recovery parameter tells the running ONIE system that
the disk is not formatted. This keeps ONIE from trying to mount any
partitions.
The boot_reason variable can take on any of the ONIE boot modes,
but the useful ones here are rescue and embed.
With boot_reason=rescue you can boot into the system and manually
use the onie-self-update -e /lib/onie/onie-updater command to
embed the ONIE updater image contained in the recovery-initrd.
Note
The -e option to the onie-self-update command is required to
embed ONIE. The embed operation will partition and format
the disk.
For an automatic embedding, set boot_reason=embed and
install_url=file:///lib/onie/onie-updater. When ONIE boots it
will automatically start embedding the ONIE updater image contained in
the recovery-initrd.
Note
You can also set the install_url to any valid URL. For example,
you could have it point to an ONIE updater image on an HTTP server.
For machines that are capable, installing from USB can be a convenient option. How to configure an individual machine to boot from USB is beyond the scope of this document.
The first step is to create an .ISO image suitable for installing on a
USB memory stick. Build the recovery-iso Makefile target.
Note
The recovery-iso image can also be used to boot from a CD-ROM.
The next step is to copy the .ISO image to the USB memory stick using
the dd command from a Linux workstation.
Warning
This will wipe out the contents of the memory stick.
Also make sure you use the correct /dev/sdX or else you will wipe
out the Linux workstation.
You can find the correct /dev/sdX by inspecting the dmesg output
after inserting the USB stick into your workstation.
Use dd to copy the .ISO image to the USB stick:
$ sudo dd if=onie-recovery-x86_64-<machine>-r0.iso of=/dev/sdX bs=10M
The memory stick is now ready to use.
When the system boots you will see the following menu:
+-----------------------------------------------------------+
| ONIE Installer |
| |
| ONIE: Rescue |
| ONIE: Embed ONIE |
| |
Note
You can customize the kernel command line arguments by editing the
onie/build-config/recovery/syslinux.cfg file. See the note
above about using the install_url kernel argument.