banner-hb

Installation Handbook

This guide goes into detail on how to install Everest.

Prerequisites

There are 2 officially supported ways of installing Everest, systemd/glibc/GNU or init/musl/busybox. This guide covers the init/musl/busybox installation as it recieves the most support and is the intended way. For the GNU installation, it may be a good idea to read the Linux from Scratch wiki.

For highly customized installations (such as a custom init), it is recommended to know exactly what you're doing.

Everest may be installed through 2 methods:

- ISO: can be flashed to a usb and booted

- rootfs tarball (RECOMMENDED): unpacked to a directory (usually /mnt) and instaled through an existing distribution.

Note that no matter what option you choose, you will need the rootfs tarball.

Commands prefixed with (user)$ should be run as the normal user.

Commands prefixed with (root)# should be run as the root user.

Commands prefixed with (chroot)$ should be run as the normal user inside the chroot environment.

Commands prefixed with (chroot)# should be run as the root user inside the chroot environment.

This guide assumes your system has access to the internet. There are no tools for configuring the network in the iso. Use of a hardwired ethernet connection is recommended.

Setup the environment

Obtain the ELIF source tree. This is required for the initial setup.

(user)$ git clone https://git.everestlinux.org/EverestLinux/elif (user)$ cd elif

Run the setup script, defining your intended method of install.

(root)# elif setup live (root)# elif setup tar

A new file will be created, called build.conf.Edit this file and change any settings you wish.

Once you are happy with your configuration, run the build script.

(user)# elif build

This will set up a partial Everest installation at your specified mountpoint.

Chroot into the new installation.

(root)# chroot /mnt/everest

Install the kernel

Download the kernel source tree to the Glacier cache.

(chroot)# glacier -f linux

Move the source tree to its correct location.

(chroot)# cd /var/cache/glacier (chroot)# mv linux.tar.gz /usr/src (chroot)# cd /usr/src (chroot)# mkdir linux (chroot)# mv linux.tar.gz linux (chroot)# cd linux

Unpack the tarball.

(chroot)# tar -xvf linux.tar.gz

Ensure the source tree is clean.

(chroot)# make mrproper

Configure the kernel.

(chroot)# ./autobuild.sh

OR

(chroot)# make menuconfig

Build the kernel and modules.

(chroot)# make && make modules_install

Copy the kernel image to /boot.

(chroot)# make install

Build an initramfs.

(chroot)# glacier -f dracut (chroot)# dracut

Configure the system

The following system daemons are recommended to install:

- system logger (sysklogd, syslog-ng, etc)

- cron daemon (cronie)

- ssh daemon (sshd)

- time sync (chrony)

In this example, we will be installing all of these.

Install the packages.

(chroot)# glacier -f sysklogd (chroot)# glacier -f cronie (chroot)# glacier -f chrony

Start the services.

On busybox init: (chroot)# esv start sysklogd && esv start cronie && esv start chronyd

On systemd: (chroot)# systemctl enable sysklogd cronie chronyd