Gentoo Linux Install Guide (2026 Edition)

A quick and painless guide on installing Gentoo, btw.

Gentoo Linux Install Guide (2026 Edition)

A quick and painless guide to installing Gentoo Linux from scratch using the Minimal ISO. This tutorial is for users who are ready to learn the terminal and install Gentoo on bare metal. No prior experience required.

  • ⏲️ Prep Time: 15 minutes
  • 💻 Install Time: 1–2 hours
  • 🧠 Difficulty: Intermediate

Summary

This guide walks through downloading the Gentoo Minimal ISO, partitioning with cfdisk, configuring make.conf, and installing a functional base system with dwm, st, and NetworkManager. We’ll use OpenRC, install a binary kernel, and avoid unnecessary bloat via custom USE flags.


Steps

1. Boot Into the Minimal ISO

  • Download ISO from gentoo.org
  • Boot the ISO and hit Enter at GRUB
  • U.S. keymap is default
  • Optional: ping gentoo.org to check Ethernet (or use iwctl for Wi-Fi)

2. Partition the Disk

Use cfdisk /dev/sda with GPT label:

Partition Size Mount Point
/dev/sda1 1G /boot
/dev/sda2 4G swap
/dev/sda3 Rest /

Confirm with lsblk

3. Format Filesystems

Make the filesystems on the respective partitions as follows:

mkfs.ext4 /dev/sda3
mkfs.vfat -F32 /dev/sda1
mkswap /dev/sda2
swapon /dev/sda2

4. Mount & Download Stage Tarball

Let’s grab the tarbal using the minimal link command here:

mkdir -p /mnt/gentoo
mount /dev/sda3 /mnt/gentoo
cd /mnt/gentoo
links https://www.gentoo.org/downloads/mirrors

Download and extract the stage3 OpenRC tarball:

tar xpvf stage3-*.tar.xz --xattrs-include='*.*' --numeric-owner

5. Configure make.conf

vim /mnt/gentoo/etc/portage/make.conf

Add:

MAKEOPTS="-j5"
USE="-systemd -kde -gnome -bluetooth"

Note: I’m using 5 here because I have 10gb of RAM and 5 CPU Threads. The Gentoo Handbook recommends a good choice is the smaller of: the number of threads the CPU has, or the total amount of system RAM divided by 2 GiB.

6. Prep Chroot

cp --dereference /etc/resolv.conf /mnt/gentoo/etc/
mount -t proc /proc /mnt/gentoo/proc
mount --rbind /sys /mnt/gentoo/sys
mount --make-rslave /mnt/gentoo/sys
mount --rbind /dev /mnt/gentoo/dev
mount --make-rslave /mnt/gentoo/dev
mount --bind /run /mnt/gentoo/run
mount --make-slave /mnt/gentoo/run
chroot /mnt/gentoo /bin/bash
source /etc/profile
export PS1="(chroot) $PS1"

Tip: If you are using the minimal iso, you can just run arch-chroot /mnt and it will automatically mount all the above directories as needed.

7. Mount /boot

mount /dev/sda1 /boot

8. Sync Portage & Select Profile

emerge-webrsync
eselect profile list
eselect profile set <your-choice>  # e.g. 21
emerge --sync --quiet

9. Install World Set

Once Portage is up to date, and you have selected a profile, you can update your world set. This will take the
longest time of the installation process, so feel free to grab a coffee while you wait for this.

emerge --ask --verbose --update --deep --changed-use @world

10. Timezone & Locale

ln -sf /usr/share/zoneinfo/America/Los_Angeles /etc/localtime
vim /etc/locale.gen  # uncomment en_US.UTF-8
locale-gen
eselect locale list
eselect locale set 4
env-update && source /etc/profile
export PS1="(chroot) $PS1"

11. Firmware & Kernel

echo "sys-kernel/linux-firmware @BINARY-REDISTRIBUTABLE" >> /etc/portage/package.license
emerge -q sys-kernel/linux-firmware
emerge -q sys-kernel/installkernel
echo 'sys-kernel/installkernel dracut grub' > /etc/portage/package.use/installkernel
emerge -q sys-kernel/gentoo-kernel-bin

12. Filesystems & Hostname

vim /etc/fstab  # use /dev/sdaX or LABEL
vim /etc/conf.d/hostname  # e.g. gentoo-btw
vim /etc/hosts  # 127.0.1.1 gentoo-btw

13. Networking

emerge -q dhcpcd netifrc
vim /etc/conf.d/net

# Add:
config_enp0s3="dhcp"

cd /etc/init.d
ln -s net.lo net.enp0s3
rc-update add net.enp0s3 default

14. Root & User Accounts

passwd
useradd -m -G users,wheel,audio,video -s /bin/bash tony
passwd tony
emerge -q sudo
EDITOR=vim visudo  # uncomment %wheel ALL=(ALL) ALL

15. Install Grub (UEFI)

echo 'GRUB_PLATFORMS="efi-64"' >> /etc/portage/make.conf
emerge -q sys-boot/grub efibootmgr
mount -t efivarfs efivarfs /sys/firmware/efi/efivars
grub-install --efi-directory=/boot
grub-mkconfig -o /boot/grub/grub.cfg

16. Final Steps

exit
umount -R /mnt/gentoo
reboot

17. First Boot & GUI

Login, then:

touch ~/.xinitrc
echo "exec dwm" > ~/.xinitrc
emerge -q xorg-server xrandr xinit xf86-video-vesa
emerge -q dwm st
emerge -q dbus networkmanager
rc-update add NetworkManager default

Then run:

startx

Post Install Tips

  • Install neofetch, vim, git, etc.
  • Explore customizing dwm or switching to another WM.
  • Don’t forget to configure audio, user dotfiles, and input methods as needed.

Congratulations. You’re now running Gentoo, by the way.

Related Posts

Neovim | Complete IDE Tutorial

Neovim | Complete IDE Tutorial

  • July 22, 2025
  • Tony, btw

A quick and painless guide on installing and configuring Neovim, and how to use it as your full daily driver IDE, btw.

Arch Linux Install Guide (UEFI, 2025 Edition)

Arch Linux Install Guide (UEFI, 2025 Edition)

  • July 22, 2025
  • Tony, btw

A quick and painless guide on installing Arch, btw.