DEV Community

Cover image for Amazing Debian 13: The OS That Feels Like Home #2 [Installation Steps Before Disk Partitioning]
Anna
Anna

Posted on • Edited on

Amazing Debian 13: The OS That Feels Like Home #2 [Installation Steps Before Disk Partitioning]

In the previous part of this Debian 13 series, I covered many details about the philosophy of the Debian distribution: what Debian offers, how it packages software, the main releases besides Stable, how to use Debian in a Debian way, and how to decide whether Debian is a good fit for you.

In this article, I’ll walk through the installation process from the bootable USB to the Partition disks menu.

Installing Debian is difficult. In fact, you can complete the installation in about 20 minutes without any assistance, as the Debian installer smoothly guides you through the process and provides a nice explanation of each step. Even if you’re completely unsure about what to select, it offers default options that are perfectly fine for Linux beginners.

My aim here, however, is to give you enough detail so that you can feel fully confident with your Debian OS from the very start.


I’ll be using the Debian network install because it allows me to start from a minimal system and install only what I actually need. For me, that means only the essential system components — no desktop environment(!)(=logging into terminal after installation). I prefer to build my setup step by step and configure everything manually after installation.

However, this does not mean that I’ll have to deal with firmware or drivers manually. Starting from Debian 12, the installation process has improved significantly and became much more user- and hardware-friendly. The installer scans your PC’s hardware and automatically fetched the required firmware over the Internet (when available).

Note on Firmware vs Drivers (quick clarification)

These are often confused, but they are not the same:

Firmware

  • Runs on the hardware device itself
  • Controls low-level behavior
  • Often proprietary ('=close source code)

Drivers

  • Part of the operating system (Linux kernel)
  • Allow the OS to communicate with hardware

In Linux, most drivers are already included in the kernel. So when you install Debian:

  • The Linux kernel is installed
  • It already contains a large set of drivers
  • Firmware is loaded if required

Hardware → Firmware → Kernel Driver → Operating System

Why I choose netinst (and minimal setup)

During installation, Debian Installer will offer you to install:

  • Desktop environments (GNOME /KDE /XFCE, etc.)
  • Standard system utilities
  • a couple of servers

I intentionally skip all of that.Because I use a custom environment and prefer to install everything manually after the system is up. This gives me a cleaner system that is tailored exactly for my need and Feels Like Home.

That said — you can absolutely install a desktop environment during installation or later. There’s no downside.
There are 2 main alternatives:

Standard Install

  • Includes most packages
  • Works without internet connection
  • Good for quick setups

Live Install

  • Boot and test Debian without installing
  • Comes with preinstalled desktop environments
  • Useful if you want to explore before committing

Let’s get started! The first 4 steps are fairly straightforward. However, if terms like hostname, domain, or root user are not very clear for you, don’t worry! I’ll explain all of them in detail.

0. First, I downloaded Network Install or netinst from here.

Debian netinstall ISO download pagen

A network install or netinst CD is a single CD which enables you to install the entire operating system. This single CD contains just the minimal amount of software to install the base system and fetch the remaining packages over the Internet.

Before downloading the installation image, you’ll notice that Debian provides netinstall ISOs for different CPU architectures: amd64, arm64, armhf, ppc64el, riscv64, s390x.

I’ve highlighted the amd64 architecture because chances are, that’s what you need. If you are using a typical desktop PC or laptop with an Intel or AMD processor, then your CPU is based on the x86_64 architecture — which Debian calls amd64 (historical naming, don’t let it confuse you, it works perfectly splendid on Intel CPUs as well).

Other architectures are intended for more specific machines:

  • arm64, armhf: ARM-based devices (Raspberry Pi, some laptops and servers)
  • ppc64el: PowerPC systems (rare, enterprise)
  • riscv64: experimental / emerging architecture
  • s390x: IBM mainframes (enterprise)

_MacBooks with M chips?

Apple Silicon (MX chips) uses the arm64 (aarch64) architecture. However, Debian does not work out-of-the-box on these machines. The issue is not the CPU architecture itself, but Apple’s proprietary hardware and lack of official driver support. However, there is this project - Asahi Linux._

So, I download .iso for amd64 architecture, create a bootable USB stick (16 GB size was more than enough), and burned in there the downloaded Debian .iso file.

What types of network connections are supported during installation? Various different ways are supported for this, like Ethernet and WLAN (with some restrictions)

WLAN simply means Wi-Fi, so in most cases you don’t need to go searching for an Ethernet cable. During installation, Debian will detect available network interfaces and prompt you to choose one. If you select a wireless interface, you’ll just pick your Wi-Fi network from the list, enter the password, and that’s it. The process is very similar to configuring Wi-Fi on any regular system.

However, there are exceptions. If you’re using a problematic Wi-Fi adapter like some USB Wi-Fi sticks with less common chipsets that are not well supported by Linux, the installer might not detect it or fail to connect. In that case, you’ll need to use an Ethernet cable for the installation and debug the Wi-Fi setup later.

Personally, I didn’t encounter any issues, not on my desktop setup with a TP-Link adapter (known to be problematic for Linux support), and not on a recent Lenovo ThinkPad E14. Modern hardware is generally well supported, especially starting from Debian 12+.

At boot I interrupt normal booting and enter UEFI (ex BIOS) menu. I select my USB stick with Debian Installer to boot with. I will be using Graphical Installer during installation.


1. On the first screen after booting, I select "Graphical Install" to proceed with guided installation via GUI, even though personally I prefer "Install" option that also guides you through installation process but via terminal-style interface (TUI). If you enter in the Advanced options, you will have the opportunity to install Debian using shell commands (advanced, not guided mode).

Debian 13 installation start view

Debian GNU/Linux UEFI Installer menu. _UEFI, not BIOS_. DON’T WORRY IF YOU DO NOT UNDERSTAND THE FOLLOWING COMMENT - I WILL EXPLAIN IT LATER: While the differences between BIOS (legacy) and UEFI installation modes aren’t covered in this article, it’s worth noting that each mode impacts the disk partitioning process, to be more precise - `/boot` partition. Chances are, you’ll be using UEFI mode. In this case, your disks will have **GPT** partition tables instead of **MBR**.

2. On the following 3 screens, you will be prompted to select the language for the installation, your localization, and keyboard layout. You can adjust these settings later in case of misalignment.

Installation Step: Choice of Locale, country, system language


3. Next, the installer will try to connect to an available network — wireless (Wi-Fi) or wired. Since we are using netinstall (network install) Debian installer, this step is important — because it is an iso with a minimum of prebuilt packages, and during installation, based on your selections, the selected software will be fetched over the internet. So the system needs connectivity and must be able to fetch and download stuff from the internet.

Don’t worry — you won’t have to configure networking manually; the system will handle it for you. In the past, for many Linux installation processes, a wired connection was important (for Debian 12 as well), but for Debian 13 Wi-Fi connectivity is not a problem anymore, and you will be prompted to select Wi-Fi network and enter Wi-Fi password in the next steps.

NB! I cannot say for sure that this step will appear for you or that it will succeed. I use hardware that is compatible with the Linux kernel and Linux systems — meaning my USB Wi-Fi receiver has drivers for Linux. So once the installer detects the device, the driver loads automatically and my Wi-Fi receiver becomes usable.

However, if you are using an external Wi-Fi receiver that does not have a Linux driver — for example, some small unknown brands or a brand that only ships Windows-only drivers — then Wi-Fi may not work for you during the installation process. But don’t blame Debian immediately if that happens. For comparison: a Windows installer also won’t lift a finger during installation if it fails to connect to Internet. Even though the Windows installer is ginormous, Wi-Fi drivers still only become available after installation.

I am prompted to select a network interface that I want to use during the installation step. Network interface may sound complex, but the meaning is actually very simple. I hope you are familiar with Ethernet cables and their peculiar, chunky ports — nowadays fewer and fewer laptops have them, although Lenovo models often still do, and of course all desktop PCs have them. That’s where you insert the Ethernet cable to connect to the network. This port on your PC represents a network interface: it’s connected to a small micro-circuit that is capable of translating the network signals delivered through the Ethernet cable for your PC.

With wireless Wi-Fi, it’s basically the same idea. It also has a small micro-circuit responsible for wireless communication, and that becomes another network interface. Your laptop definitely has it, and if your Lenovo has an Ethernet port it will actually have two interfaces. Likewise, when you buy a USB Wi-Fi adapter, it also acts as a network interface.

This is the lest of network interfaces detected on my PC:

Select Network Interface Step

I have 3 — what is the third one? My desktop PC's built-in Ethernet port is one, the Ethernet port from my USB dock is the second one, and the WiFi USB stick makes the third one. Every device that can provide network connectivity counts as a network interface.

I want to use Wi-Fi, so I pick the wireless network interface (the 3rd option).

On the following step, you need to specify the kind of Wi-Fi network you plan to connect to. Most likely, you are connecting to a secure private home Wi-Fi network protected by WPA2, and not some public passwordless Wi-Fi like in an airport or McDonalds, etc.

select type of WiFi you plan to use

I am connecting to my home Wi-Fi network protected by a password, so I pick the second option. Then, I select the correct Wi-Fi network from the list of detected ones that are protected with WPA2 (if you picked wrong option on the previous step you will not see your home Wi-Fi network here).

Detected Wi-Fi networks

Then, just type the Wi-Fi password:

Wi-Fi password prompt

Voila! If everything is correct, your installer will manage to connect itself to Internet.

4. Next, you’ll be asked to provide both a hostname and a domain name. Hostname: the name of your computer on a network. It’s used to identify your machine among other devices connected to the same network. It should be unique within your local network — i.e if you have Desktop PC and laptop and you are installing on them Debian, you cannot choose for both of them hostname "debian".

hostname is the name displayed after

In bash shell by default you will always see in terminal your username and hostname of your PC, unless outlook of a shell is configured differently

The domain name is used in larger networks including the Internet. For personal or local networks, you might not need a specific domain name. At this step I choose hostname on my taste and ** domain** leave blank.

Hostname of choice, domain name left blank


5. The following step is important — you will be prompted to set up a strong root password. Choose a combination of letters, numbers, and special characters to secure your system. Setting up root password you automatically enable root user. It’s strongly not advisable to use the root login routinely! It is suitable only for specific system administration tasks (first post installation steps and troubleshooting).

After installation, logging in as root you will be able to add your user account to the sudoers group, allowing you to execute commands with root-level privileges using sudo + <command>. This approach provides an extra layer of oversight, as you’ll need to re-enter your password for commands that will affect your entire system and not only user space, giving you a moment to reconsider the actions prompted by such commands.

If you choose to leave the root password blank during setup, your user account will automatically receive sudo privileges to perform tasks requiring root access. Be cautious with this setting; lacking a root password can complicate accessing recovery mode or GRUB during system recovery, potentially restricting your troubleshooting options. After the installation is completed I will cover in more detail the difference between execution commands as root and as user with sudo. Right after setting the root password you will be prompted to create a user. If you decided to leave root password blank, the user you create during installation will be granted with administrator privileges.

Root pwds prompts and username

Setting root password and creating your user (username + password)

6. The next step is about selecting on which storage device (further for simplicity — disk) your Debian will be installed. This step is named Partition disks. You will see 5 options:

Disk partitioning step options menu: guided or manual

In my opinion, this is the most important step of the installation: while you can modify things like network configuration, user name, passwords, country, language, etc., your decision about disks is more definitive — especially if you choose the first option: Guided — use entire disk. There’s nothing wrong with this option, and if you don’t want to go too much in details, go for it. But if you’re looking for understanding what is Partition disks step about, this part of the article is for you. So let’s begin. I’ll be using the Manual option from the menu above.

6.1 What is this disk partitioning about?

Disk partitioning is the creation of one or more storage regions (called partitions), so that each region can be managed separately. It is typically the first step of preparing a newly installed disk, before any file system is created. The disk stores the information about the partitions’ locations and sizes in an area known as the partition table that the operating system reads before any other part of the disk. Each partition then appears to the operating system as a distinct “logical” disk that uses part of the actual disk (Source)

If you’ve only used graphical installers and selected the full guided option for this installation step in the past, you may not have explored the details of how your storage device hosting the OS is configured, as the scripts handled it for you.

However, once you start using the OS after installation, eventually you might (the probability of this might depends on how do you use your PC) find yourself in situation when something goes wrong with the disk hosting your OS. An at this moment you wish you’d known and understand these configuration details better— such as which partitions are used, how they are mounted, and which file systems they are formatted with... That’s why I cover the Partition disks step of the installation in very detail.

In the end, there is always a slim probability that something can go wrong with the different hardware components of your PC (not during the installation of Debian, don’t worry, but later, when you start using it with a spirit of experimentation). However, the most devastating issue is when something goes wrong with disks (incorrect configuration, usage, or configurations modification), because ALL your data stored on them are at stake.

Top comments (0)