<p>This guide is the official installation handbook for Everest Linux.</p>
<warnhead><strong>WARNING:</strong></warnhead>
<divclass="warning">
<p>Using unofficial guides is not recommended, as they may be outdated, or unreliable. The official guide is located at https://www.everestlinux.org/install.</p>
</div>
<p></p>
<warnhead><strong>WARNING:</strong></warnhead>
<divclass="warning">
<p>Simply copy and pasting commands from this guide won't cut it, and you'll most likely end up with a broken installation. Ensure you know what each command does.</p>
</div>
<p></p>
<warnhead><strong>WARNING:</strong></warnhead>
<divclass="warning">
<p>Everest is not for the faint of heart. If you have never touched Linux in your life, Everest is most certainly not for you. Check out https://linuxmint.com if you want a great Linux experience that works out of the box.</p>
</div>
<p></p>
<warnhead><strong>WARNING:</strong></warnhead>
<divclass="warning">
<p>Everest at its current state is highly experimental. Install at your own risk.</p>
</div>
<p>If you need assistance, reach out to us on IRC (libera.chat, #everestlinux) or Discord.</p>
<p>Everest needs a proper environment set up in order to install correctly.</p>
<p>A system mountpoint is where the new system's root (/) will be. Where you put this doesn't matter, as the host system used to build the system won't be included</p>
<p>in the final installation. In this example, we will use /mnt/everest.</p>
<p>A variable pointing to the system mountpoint may be useful in the future, as it will save you a bit of typing.</p>
<p>Create a variable for the system mountpoint:</p>
<code>(root)# SYS_MNT=/mnt/everest</code>
<p>Partitions must be created on the drive you wish to install Everest to. The typical partition layout on an Everest system may differ from othet distributions.</p>
<p>The typical layout is:</p>
<table>
<tr>
<th>Mount point</th>
<th>Type</th>
<th>Suggested size</th>
</tr>
<tr>
<td>/mnt/everest/boot</td>
<td>EFI system partition (esp)</td>
<td>No smaller than 256 MB, no larger than 1 GB</td>
<p>Make sure you're happy with the system image you choose. While migrating in the future is possible, it requires rebuilding the majority of the system.</p>
<p>Downloading a system image that is severely out of date is not recommended. Many programs, such as the kernel or SSL library will be vulnerable to attacks.</p>
<p>Now that a system image has been downloaded, we can unpack it.</p>
<p>Ensure the system image is inside the system mountpoint, otherwise you may run into trouble.</p>
<p>Since a Linux root filesystem is complex, and many different files need to be owned by certain users, or have certain permissions, simply running `tar xf` will</p>
<p>result in a broken image. A couple extra flags are needed to preserve these permissions in the unpacked image.</p>
<p>If this command was run correctly, you shouldn't need to edit any permissions manually.</p>
<h2>Chrooting into the system mountpoint</h2>
<p>Although we have a relatively complete root filesystem at this point, many essential programs are still missing. These include the kernel and bootloader. Without these,</p>
<p>the system is unable to boot. At this point, we must chroot into the new system. This will allow us to complete the system without booting.</p>
<p>Chroot into the new system:</p>
<code>(root)# everest-chroot /mnt/everest</code>
<p>Change the shell prompt to differentiate the two environments:</p>
<p>Any programs you wish to install, such as display servers, login managers, and desktop environments, should be installed now. The kernel can take multiple</p>
<p>hours to compile on some hardware.</p>
<p>Glacier manages packages on the system, and it allows users to install, or 'merge' their own. It is recommended to get familiar with this system.</p>
<wiki>See: <ahref="https://git.everestlinux.org/EverestLinux/wiki/wiki/Introduction-to-Glacier">Introduction to Glacier</a></wiki>
<p>At this stage, you can decide which kernel you want to install. In Everest's package repository, many prebuilt kernels are available, as well as the</p>
<p>source code, should you wish to compile your own.</p>
<p><strong>Option 1: Custom kernel</strong></p>
<p>Compiling a custom kernel is the recommended option for most users, as it allows the most control.</p>
<p>A network connection is very important, and there are multiple ways to set one up.</p>
<warnhead><strong>WARNING:</strong></warnhead>
<divclass="warning">
<p>Ensure your network is fully set up before proceeding with any other steps. It's better to get it right the first time, rather than trying to fix it later.</p>
</div>
<p>First, ensure the desired network interface is not blocked by rfkill:</p>
<p>The root password is extremely important, as it controls access to the root user, the most powerful user on the system.</p>
<p>Ensure your chosen root password is strong enough where it cannot be guessed easily.</p>
<p>Set the root password:</p>
<code>(chroot)# passwd</code>
<p>If remote access is desired on the system, install sshd:</p>
<code>(chroot)# gpkg -f world/sshd</code>
<p>Using the root account for daily use is not recommended. Create an unprivileged user:</p>
<code>(chroot)# adduser USERNAME</code>
<p>A privilege elevation program is recommended for most users. The most popular choices are sudo and doas, with doas being recommended for most users.</p>
<p>Now that the system is correctly configured and the kernel is installed, the final step can proceed - installing the bootloader. Without a bootloader, the system</p>
<p>will be unable to load the Linux kernel upon boot. This guide only mentions GRUB, however note that other bootloaders are supported.</p>