diff --git a/css/everest.css b/css/everest.css
index e7127d0..62cc599 100644
--- a/css/everest.css
+++ b/css/everest.css
@@ -45,6 +45,28 @@ html {
background-color: #1E1E1E;
}
+.file {
+ background-color: #0F0F0F;
+ border-left-style: solid;
+ border-left-color: MediumSeaGreen;
+ border-width: 4px;
+ border-radius: 2px;
+ padding: 4px;
+ width: 50%;
+ color: white;
+}
+
+fhead {
+ background-color: #0F0F0F;
+ border-left-style: solid;
+ border-left-color: MediumSeaGreen;
+ border-width: 4px;
+ border-radius: 2px;
+ padding: 6px;
+ width: 50%;
+ color: MediumSeaGreen;
+}
+
@media screen and (max-height: 450px) {
.sidenav {padding-top: 15px;}
.sidenav a{font-size: 18px;}
@@ -57,7 +79,7 @@ body {
code {
font-family: monospace;
- background-color: black;
+ background-color: #0F0F0F;
border-left-style: solid;
border-left-width: 4px;
border-radius: 2px;
@@ -65,6 +87,22 @@ code {
color: #e6e6e6;
}
+wiki {
+ border-left-style: solid;
+ border-left-width: 4px;
+ border-radius: 2px;
+ padding: 2px;
+ border-color: Tomato;
+}
+
+file {
+ border-style: solid;
+ border-width: 1px;
+ border-radius: 2px;
+ padding: 2px;
+ border-color: black;
+}
+
h2 {
border-left-style: solid;
border-color: #4a86e8ff;
@@ -94,9 +132,9 @@ p {
color: #e6e6e6;
}
-strong {
+/* strong {
color: #e6e6e6;
-}
+} */
i {
color: #e6e6e6;
diff --git a/install.html.new b/install.html.new
index a27a76b..50f88b6 100644
--- a/install.html.new
+++ b/install.html.new
@@ -86,15 +86,117 @@
(root)# mkfs.ext4 /dev/usr
The EFI system partition (esp) must be formatted as FAT32.
(root)# mkfs.vfat -F32 /dev/boot
+ Mount the root partition to the system mountpoint:
+(root)# mount /dev/root /mnt/everest
Some additional directories may need to be created.
Create extra needed directories:
(root)# mkdir /mnt/everest/boot
(root)# mkdir /mnt/everest/usr
+ Mount the remaining partitions:
+(root)# mount /dev/boot /mnt/everest/boot
- (root)# mkdir /mnt/everest/usr/{bin,sbin,lib,include,local,share,src,man}
+ (root)# mount /dev/usr /mnt/everest/usr
+ Create remaining directories on /usr with mkusrskel:
+(root)# mkusrskel -d /mnt/everest/usr
+ An Everest system image provides an incomplete root filesystem which users can build a system off of. Users should be careful of which
+image they choose, as switching in the future is trivial, time consuming, and requires rebuilding a lot of packages. It's a lot better
+to get it right the first time, rather than trying to get it right later.
+Do some thorough planning to ensure you get the right system image. For instance, ask yourself a few questions, such as:
+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.
+Download a system image with wget:
+(user)$ wget https://git.everestlinux.org/EverestLinux/everest/raw/branch/main/releases/SYSTEM_IMAGE.tar.xz
+ Now that a system image has been downloaded, we can unpack it.
+Ensure the system image is inside the system mountpoint, otherwise you may run into trouble.
+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
+result in a broken image. A couple extra flags are needed to preserve these permissions in the unpacked image.
+Unpack the system image:
+(root)# tar -xpvf SYSTEM_IMAGE --xattrs-include='*.*' --numeric-owner
+ If this command was run correctly, you shouldn't need to edit any permissions manually.
+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,
+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.
+Chroot into the new system:
+(root)# everest-chroot /mnt/everest
+ Change the shell prompt to differentiate the two environments:
+(chroot)# echo "export PS1='(chroot) ${PS1}'" >> /etc/profile && source /etc/profile
+ Any programs you wish to install, such as display servers, login managers, and desktop environments, should be installed now. The kernel can take multiple
+hours to compile on some hardware.
+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.
+The most important part of the system, the kernel, which allows hardware to communicate with software, is ready to be installed.
+If needed, merge the linux-firmware package, which provides device firmware:
+(chroot)# gpkg -f world/linux-firmware
+ 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
+source code, should you wish to compile your own.
+Option 1: Custom kernel
+Compiling a custom kernel is the recommended option for most users, as it allows the most control.
+Download the kernel's source tree:
+(chroot)# gpkg -f world/linux
+ The source tree will be located under /usr/src/linux.
+Inside /usr/src/linux, ensure the source tree is completely clean by running the following:
+(chroot)# make mrproper
+ The kernel must be configured before it is compiled. Recommended options are not provided - it is up to you to configure the kernel for your setup.
+Configure the kernel:
+(chroot)# export EVEREST_ARCH="$(echo $MACHTYPE)"
- (root)# mkdir /mnt/everest/usr/local/{bin,etc,include,lib,man,sbin,share,src}
- If on an x86_64 system, create a symlink to /usr/lib:
-(root)# ln -sv /mnt/everest/usr/lib /mnt/everest/usr/lib64
+ (chroot)# ARCH=$EVEREST_ARCH make defconfig
+
+ (chroot)# ARCH=$EVEREST_ARCH make menuconfig
+ Once the kernel is configured, compile it:
+(chroot)# make && make modules install
+ Option 2: Distribution kernel
+For those who do not wish to configure a custom kernel, or likewise do not have the time or system resources to do so, a distribution kernel
+provides a binary kernel. However, there are a couple of pitfalls to this option:
+Everest offers many distribution kernels, some notable ones include:
+Install a distribution kernel:
+(chroot)# gpkg -f world/linux-{everest,zen,hardened}
+ Depending on your system, an initramfs may be required. For example, users of distribution kernels will ALWAYS need to build an initramfs,
+while those who configured and compiled their own will usually not need one.
+To build an initramfs, you will need dracut. Install dracut:
+(chroot)# gpkg -f world/dracut
+ Build an initramfs:
+(chroot)# dracut
+ Now that the kernel is installed, various other parts of the system should be configured.
+Create /etc/fstab, which provides the system with information about mounted filesystems.
+For example, on a system with a root, /usr, and boot partition, /etc/fstab will look like this:
+/dev/sda1 / ext4 noatime 0 1
+/dev/sda2 /usr ext4 noatime 0 1
+/dev/sda3 /boot vfat defaults,noatime 0 2 +
System services that some may find helpful, such as a cron daemon or logging daemon, should be set up now.
+On systems using systemd:
+(chroot)# systemctl enable cronie chronyd sysklogd
+ On systems without a service manager, all services under /etc/init.d will be initialied by rcS.
+The system's timezone is read from /etc/localtime, which is a symlink.
+In case timezone information is missing from /usr/share/zoneinfo, install it:
+(chroot)# gpkg -f world/tzdata
+ Create /etc/localtime:
+(chroot)# ln -sv /usr/share/zoneinfo/Region/City /etc/localtime
+