Minimal Installation Fedora Linux

If you're complaining Fedora Linux Workstation is bloated, they have an answer.

Fedora Linux (formerly Fedora Core) is a Linux distribution developed and maintained by Fedora Project, a community of people working together to build a free and open-source software platform. Fedora Linux is primarily sponsored by Red Hat, Inc., a company that owns Red Hat Enterprise Linux (RHEL). If we ever try or use RHEL and CentOS before, we’ll get familiar quickly with Fedora Linux.

If we want to try Fedora Linux, they have several editions we can download from their official website, here are the two of them:

  • Fedora Workstation - Alias desktop edition is for everyday use (browsing, entertainment, working, etc.) and it has a graphical interface.
  • Fedora Server - It’s already self-explained. It doesn’t have a graphical interface and not for average users.

I’ve been using Fedora Linux Workstation since Fedora 31 and I love the experience I had with Fedora Linux. I could use it to do my college assignments, browsing, building apps, listening to kinds of music, and watching movies but over time, I started to notice some apps are unnecessarily installed on my device. So I uninstalled it one by one and then somehow I became curious what if I could install Fedora Linux with my own customization?

Luckily, I found the answer in a forum on how to do it. (Note: the group has moved here)

Before we go any further, minimal installation means we need to configure everything ourselves so it might be time consuming or frustrating.

Use Fedora Linux Workstation or Fedora Linux Spin if we need to focus on get things done.


Installation

As mentioned in the forum, Fedora Linux has an alternative version for a customizable installation called Fedora Everything. It offers many options like which edition to install, which desktop environment to use, and which bundle of packages to install. It provides installation for everything from Fedora Linux.

Requirements

  • Internet Connection
    Fedora Everything is a network installer so it needs an internet connection to download the required package.
  • Installation Media (USB / CD / DVD)

Download

  • Click Download.

Boot Using Installation Media

  • Create a bootable disk or USB to install Fedora Linux
  • Boot to Fedora Linux using installation media
  • A display would appear like the image below.

Note: at the time of writing this post, Fedora 33 is the latest stable version downloaded from https://getfedora.org/en/workstation/download/

  • Sele‌ct Test this media & install Fedora to make sure our installation media is not corrupted.

Choose Language

If everything works perfectly, the installation media will boot to a graphical interface like the image below

  • Choose our preferred language
  • Click the blue-colored button

Partitioning

After setting up the language, we’re moving to another section with so many options. See the image below.

The first thing we need to is to configure the partition, do these following steps:

  • Click Installation Destination, see image below

  • Then we’re moving to a page like this image below

  • Click the storage we want to use
  • Select Custom on Storage Configuration section to create a custom partition
  • Then, we’re going to see a page like this image below

  • We can either create a partition or create a partition automatically. For the sake of simplicity, we’re going for the latter.

  • Now, we already create a custom partition. We can change the size as we want if the configuration does not fit our needs.
  • Click Done

  • Click Accept Changes

After configuring the partition, there should be no more ⚠️ (warning sign) under the Installation Destination menu.

Setting Network

As mentioned before, Fedora Everything is a network installer which means it relies on an internet connection to download packages. We need to configure the network that will be used in the installation process.

As we can see from the picture above, under Network & Host Name menu we can see Wired (enp1s0) connected which means the installer already detect a network that will be used. If there’s still ⚠️ (warning sign) under the menu, it means we need to configure it by following these steps:

  • Select Network & Host Name

  • Select the network that will be used, if there is nothing, click + to add network.
  • Click Configure in case we need to configure our network. (setting static IP address, etc.)
  • Click Done

Choose Edition

The difference between Fedora Everything and other Fedora Linux installer is we can choose the edition we want to install

  • Select Software Selection menu

‌Now we can see the image above, under the Software Selection menu, it’s already set to Minimal Install.

Set Timezone

‌The next thing we need to do is set a time and date

We can see the current timezone configuration under the Time & Date menu. On the image above, the current timezone is Asia/Jayapura timezone. We can change it by following these steps:

  • Select Time & Date

  • Select your current region to set the timezone, in this case, I click Indonesia
  • Click Done

Now we can see the timezone configuration has changed from Asia/Jayapura to Asia/Jakarta.

Root Password

In the next step, we’re going to set a root password.

  • Click the Root Password menu

  • Set root password
  • Click Done
    If nothing happens and there’s still ⚠️ (warning sign) on the bottom, it means our password is too simple. Click the Done button twice if we insist.

‌As we can see on the image above, the root password has been set and there is no more ⚠️ (warning sign). We can actually begin the installation but in this case, we’re going to create a new user.

Create User

  • Click User Creation

  • Fill in the form
  • Check Make this user administrator (optional)
  • Check Require a password to use this account (recommended)
  • Click Done
    If nothing happens and there’s still ⚠️ (warning sign) on the bottom, it means our password is too simple. Click the Done button twice if we insist.

‌All set. Now we can continue click Begin Installation to install Fedora Linux

Begin Installing Fedora Linux

Now we’re installing Fedora Linux. As we can see on the image above, during the installation process it’s downloading the required package. Make sure our network connection is stable and our computer has enough power. It may take several minutes depends on our network connection speed and stability.

When the installation has completed like the image above. Click Reboot System and remove the installation media.

Configuration

After Fedora Linux has installed on our computer, we can now boot to Fedora Linux.

Boot to Fedora Linux

At the time of writing this post, the latest kernel available is 5.11.14-200 so yours might be different since Fedora Everything is a network installer which means it will install the latest package available from Fedora Repo.

  • Select the first option
  • Press Enter

Looks minimal, ain’t it? Welcome to Fedora Linux Minimal!

Well, actually when we install Fedora Server we’ll get the same “greetings”. Now, let’s login first to start our configuration.

  • Type username we’ve created before then press Enter
  • Type the password (we won’t see any character appear and that’s normal). Press Enter when we’re done

If we type the username and the password correctly, we’ll enter to bash just like the image above. We can start to type any Linux command right now.

Desktop Environment

If you don’t stand a chance with CLI (command line interface) we can start to install the desktop environment. As there are a lot of desktop environments, I would only show 2 of them and provide a link for each as the reference I use.

  • GNOME

    sudo dnf install gdm gnome-shell gnome-terminal; # Required package for gnome desktop
    systemctl enable gdm; # Enable login using graphical interface
    systemctl set-default graphical.target; # Boot to graphical interface as default
    

    gnome-terminal is optional but I include it anyway because you’ll need terminal to install other stuff you need. You can actually install another terminal other than gnome-terminal

    Other things you might want to install are browser and file manager

    sudo dnf install nautilus; # Install file manager
    
    # Please select one of them
    sudo dnf install chromium; # Install chromium browser
    sudo dnf install firefox; # Install firefox browser
    
  • XFCE

    sudo dnf install xorg-x11-server-Xorg xorg-x11-xinit network-manager-applet\
     xorg-x11-drv-libinput mesa-dri-drivers xfce4-panel xfce4-datetime-plugin\
     xfce4-session xfce4-settings xfce4-terminal xfconf xfdesktop\
     xfce4-appfinder xfce4-power-manager xfce4-pulseaudio-plugin pulseaudio\
     gvfs lightdm-gtk xfwm4 NetworkManager-wifi; # Required package for XFCE desktop
    
    systemctl enable lightdm; # Enable login using graphical interface
    systemctl set-default graphical.target; # Boot to graphical interface as default
    

    Wow, wait. Ain’t that too many?? Indeed, it is way too many than the previous GNOME installation but actually, after hitting Enter when installing GNOME we also get a long list of packages and all essential packages are already included. That’s why we only need to type a short command.

    On the contrary, when installing the XFCE desktop using xfwm4 lightdm-gtk xfconf xfdesktop xfce4-settings xfce4-session packages, we only get the core packages for the XFCE desktop. Audio, Wifi network manager, power manager, display server and another essential thing we need is not included. That’s why we need to mention the required package to install it.

    Another thing we might want to install is browser

    # Please select one of them
    sudo dnf install chromium; # Install chromium browser
    sudo dnf install firefox; # Install firefox browser
    

Final Step

After you install everything you need, reboot the system.

  • Type reboot then press Enter

Here are the final results:

GNOME

XFCE


Please be considerate. This guide doesn’t guarantee any smooth workflow on your operating system as the purpose of the installation is to install the operating system so it would consume memory as efficiently as possible.

If you need help or more information, visit https://fedoraproject.org/wiki/Fedora_Project_Wiki#Looking_for_help.3F


Further Reading


Oscar Williams picture

I love Linux

p0lyp picture

Thanks for the helpful description!

Rajarshi Bandopadhyay picture

A nice guide. I used CentOS to build a minimal system once, before the OS was cancelled and replaced by CentOS Stream. I have heard of Fedora Silverblue before, even though I have never used it. Fedora Server is something new, and I am a little surprised by it. How far up or down the stream is this OS, and does it use older packages and libraries than Fedora, or newer ones? Or does it use packages of roughly the same age and stability?

Also, by the way, I use Arch Linux.

KY64 picture

As far as I've tried it, Fedora Linux Server uses the same repo as Fedora Linux Workstation so both have the same update but different default configuration. The most noticeable different is Fedora Linux Workstation has a GNOME desktop environment installed by default while Fedora Linux Server doesn't have it but it's still possible to install it.

In term of stability, I don't have a home server so I only install Fedora Linux Minimal on my laptop just to get a minimal package then manually configure it myself to suit my needs.

Rajarshi Bandopadhyay picture

I see. That still makes Fedora Server useful.