To install a Linux distribution, you typically encounter the following components:
- Linux kernel
- Bootloader (GRUB, systemd)
- Init system (systemd, sysvinit, runit, OpenRC)
- File system (EXT4, BTRFS, ZFS)
- Display server (Xorg / Wayland)
- Package manager (Pacman, Apt, zypper, dnf)
- Desktop environment (KDE, GNOME, XFCE), which includes components like the window manager, display manager, file manager, viewer, etc.
- Ways to install: via CLI (text-based), via GUI (Calamares installer, debian-installer, ananconda, ubiquity, void-installer)
Example of Linux distros:
Here's an improved and more detailed version of the table with added information on the installer types and desktop environments (DEs) for each Linux distribution:
Linux Distro | Base System Tools | Bootloader | Init System | File System | Display Server | Package Manager | DE preinstalled | Installer (Type) |
---|---|---|---|---|---|---|---|---|
Arch Linux | linux + archiso, base, base-devel | GRUB / systemd-boot | systemd | EXT4, BTRFS, ZFS | Xorg / Wayland | pacman (PKGBUILD) | -- | Text-based CLI / archinstall (script CLI) |
Debian | linux + glibc | GRUB | systemd | EXT4, BTRFS, ZFS | Xorg / Wayland | apt (.deb) | -- | Debian Installer (GUI and Text-based CLI) |
Fedora | linux + glibc | GRUB | systemd | EXT4, BTRFS | Wayland | dnf (.rpm) | GNOME, KDE | Anaconda (GUI) |
NixOS | linux + glibc | GRUB | systemd | EXT4, BTRFS, ZFS | Xorg / Wayland | nix (.nar) | GNOME, KDE | Text-based CLI / Calamares Installer GUI |
Gentoo | linux + glibc | GRUB / systemd-boot | OpenRC, systemd | EXT4, BTRFS, ZFS | Xorg / Wayland | portage (.ebuild) | -- | Text-based CLI |
Void Linux | linux + musl | GRUB | runit | EXT4, BTRFS | Xorg / Wayland | xbps (.xbps) | --, XFCE | Text-based CLI / Void-installer GUI |
Ubuntu | linux + glibc | GRUB | systemd | EXT4 | Wayland | apt, snap (.snap) | GNOME | Ubiquity GUI |
First you need to download the ISO image of the Linux distribution that you want to install and write it to an optical medium like CD, DVD, pen-drive, HDD. Basically copy the ISO files into a hardare medium.
- For disks just burn the ISO image into the CD / DVD / Blue-Ray with any disk burning application.
- For USB drives you can use the command 'dd' on UNIX terminal or GUI apps like Ventoy, BalenaEtcher (multiplatform), Rufus (for Windows).
These are the steps for using dd
on UNIX terminals:
sudo fdisk –l # find the disk to create the bootable system
umount /dev/sdb* # unmount the disk X
mkfs.vfat /dev/sdb –I # format the disk X with the file system specified
dd if=~/Downloads/arch.iso of=/dev/sdb bs=4M status=progress # copy the ISO files
Here's an example of the major Linux distro with KDE.
- Arch-based with KDE: Garuda KDE Lite, EndeavourOS, CachyOS KDE, ArcoLinux KDE
- Debian-based with KDE: KDE Neon, Kubuntu
- RPM-based with KDE: Fedora KDE, Nobara, openSUSE KDE
- NixOS KDE
Normally Linux is intalled via terminal typing and executing commands. Is the simplest ways to develop, but the most time consuming to the user.
Here are some examples of the installation guide of some Linux distro: installation guide of the Arch Wiki, installation guide of Gentoo wiki, installation guide of the NixOS wiki
Typically you need to do pre-installation (internet connection, partition and mount disks), install essential packages, configure system (fstam, chroot, timezone, localizaion, network, intramfs, root password) and reboot.
To automate the installation process we can create an use scripts on the terminal using BASH.
- You can use scripts like archinstall a library which can be used to install Arch Linux selecting options in a formulary. Also you can create profiles stored in a json and pass it to the archinstall command,
archinstall --config <path-to-json> --disk-layout <path-to-json> --creds <path-to-json>
. Video installing Arch in 7 mins
# Example to install Arch with KDE, ext4 file system and extra pks.
# Install locally with git:
sudo pacman -S git
git clone https://github.com/arksys-os/arksys-basic-install.git
cd ~/arksys-basic-install/installation/archinstall && sh archinstall-config.sh
# Install remottely with curl:
curl -sL https://raw.githubusercontent.com/arksys-os/arksys_basic-install/main/installation/script/arksys.sh | bash
- Or you can create you own scripts. Here's an example I've made to install automatize the Arch Linux installation, check arksys.sh
Create your own Linux distro with a framework installer. You need to configure the base profile for Arch Linux (archiso profile), for Debian with Debian live-build and configure a graphical installer like calamares installer.
Continue reading on ArkSys-OS/Post-installation.