How to install Debian 11 Bullseye with a GNOME desktop

Debian GNU/Linux was first released way back in 1993 and has been under active developement ever since. Today, the Debian Project unites thousands of contributors from across the globe with the aim of producing “an operating system distribution that is composed entirely of free software”.
www.debian.org

These instructions offer a straightforward path to the GNOME 3.38 desktop running on amd64 hardware. You need a reasonably fast connection to the Internet, an Ethernet connection to your router and a bootable Debian CD image.

It is probably easiest to write such an image to a USB storage device and use that for installation. If the only computer you have access to is running Windows, I would suggest you use Rufus as a means to create a bootable USB flash drive. Depending on your acutal requirements, there are many different Debian images to choose from. If you are following these instructions to install on x86-64 hardware, use the unofficial firmware-11.6.0-amd64-netinst.iso, which supports Intel as well as AMD processors and “includes non-free firmware for extra support for some awkward hardware”.

In case your laptop does not have the required Ethernet port, you might consider using the Plugable USB 3.0 Gigabit Ethernet Adapter as an alternative.

Debian GNU/Linux will be the only operating system installed on your computer. Ensure that all of your data is safely backed up elsewhere because formatting your storage device will lead to the loss of all data.

In the examples which are to follow, debian is used as the hostname and bullseye as the username. You may of course substitute any names that you prefer. Just be careful to also make the required changes before blindly executing any of the commands. Decide on an encryption passphrase to encrypt your storage device, a user password to secure your user account and a root password to secure the root account. In addition to Debian packages, Flatpaks and Snaps will be enabled as well.

Installing the base system

If your computer uses the Unified Extensible Firmware Interface (UEFI) and you are unsure about which settings to use, you may wish to disable the Secure Boot option for the initial setup.

Step 1

After booting the system from the USB stick that you have prepared, continue by selecting the text based installer. With Secure Boot enabled, the menu will look different. Options, however, will be the same.

Step 2

Keep English as the language for the installation.

[!!] Select a language

Language: English

Step 3

Select United States as the location for your system. This will also set United States as the default locale for the system environment. You will have an opportunity to set additional locales and adjust time zones at a later point during the installation.

[!!] Select your location

Country, territory or area: United States

Step 4

Use the keymap that is the correct one for your particular keyboard.

[!!] Configure the keyboard

Keymap to use: your keyboard

Step 5

If your system has multiple network interfaces, set your Ethernet interface as the primary interface to use during the installation.

[!!] Configure the network

Primary network interface: choose your Ethernet interface for installation

If your system has multiple Ethernet interfaces and you are presented with the following dialog, select Continue and Go Back to select a different Ethernet interface.

[!!] Configure the network

Network autoconfiguration failed
Your network is probably not using the DHCP protocol. Alternatively, the DHCP server may be slow or some network hardware is not working properly.

Continue

Step 6

Set the hostname for your system. In this example, we use debian as the hostname.

[!] Configure the network

Hostname: debian

Continue

Set the domain name for your system. If you are setting up on a home network, you should use home.arpa as the domain name.

[!] Configure the network

Domain name: home.arpa

Continue

Step 7

Leave the root password empty to ensure the standard user account will be configured with sudo privileges automatically.

[!!] Set up users and passwords

Root password: leave empty

Continue

Confirm the empty root password.

[!!] Set up users and passwords

Re-enter password to verify: leave empty

Continue

Create the standard user. In this example, we use Bullseye as the full name for the standard user.

[!!] Set up users and passwords

Full name for the new user: Bullseye

Continue

Your username should start with a lower-case letter. In this example, bullseye is a reasonable choice for the user with the full name Bullseye.

[!!] Set up users and passwords

Username for your account: bullseye

Continue

Set a password for the new user.

[!!] Set up users and passwords

Choose a password for the new user: your user password

Continue

Confirm the password for the new user.

[!!] Set up users and passwords

Re-enter password to verify: your user password

Continue

Keep Eastern as the time zone for now.

[!] Configure the clock

Select your time zone: Eastern

Step 8

Choose to partition your disk with LVM and protect your data with a 256 bit AES key.

[!!] Partition disks

Partitioning method: Guided - use entire disk and set up encrypted LVM

Be careful to select the correct target device for your system.

[!!] Partition disks

Select disk to partition: your target disk for installation

Choose to keep all files in one partition.

[!!] Partition disks

Partitioning scheme: All files in one partition (recommended for new users)

Now write the changes to disk.

[!!] Partition disks

Write the changes to disk and configure LVM?

Yes

You may skip the overwriting of the disk with random data by selecting Cancel. Please be aware, however, that skipping this step will cause a reduction to the quality of the encryption.

Step 9

Enter your encryption passphrase.

[!!] Partition disks

Encryption passphrase: your encryption passphrase

Continue

Confirm your encryption passphrase.

[!!] Partition disks

Re-enter passphrase to verify: your encryption passphrase

Continue

You probably want to use the maximum available space for partitioning the disk.

[!!] Partition disks

Amount of volume group to use for guided partitioning: max

Continue

Step 10

Write the changes to disk.

[!!] Partition disks

Finish partitioning and write changes to disk

Confirm writing the chages to disk.

[!!] Partition disks

Write the changes to disks?

Yes

Step 11

You may be asked to scan additional installation media.

[!] Configure the package manager

Scan extra installation media?

No

Select your archive mirror country from the list.

[!] Configure the package manager

Debian  archive mirror country: your country

Select the archive mirror from the list. For the fastest downloads, use the site that is closest to you.

[!] Configure the package manager

Debian archive mirror: mirror closest to you

You probably won’t need to configure an HTTP proxy:

[!] Configure the package manager

HTTP proxy information (blank for none): leave empty

Continue

Step 12

The Debian Popularity Contest attempts to map the overall usage of Debian packages with information from installed systems, such as yours.

[!] Configuring popularity-contest

Participate in the package usage survey?

Yes

Step 13

Choose standard system utilities from the list of predefined software collections and deselect all other entries.

[!] Software selection

Choose software to install:
[ ] Debian desktop environment
[ ] GNOME
[*] standard system utilities

Continue

Step 14

Install the GRUB boot loader to your primary drive.

[!] Install the GRUB boot loader

Install the GRUB boot loader to your primary drive?

Yes

Select your target device from Step 8 as the device for boot loader installation.

Step 15

Remove the installation media before booting into your new system.

[!!] Finish the installation

Installation complete

Continue

Installing the GNOME desktop

You have now successfully installed Debian GNU/Linux on your computer. As yet, there is no graphical user interface.

Step 16

Enter your encryption passphrase to boot into the system for the first time. In this example, the encrypted disk is labelled sda3_crypt.

Please unlock disk sda3_crypt: your encryption passphrase

Log into the system with your username and user password.

Debian 11 GNU/Linux 11 debian tty1

debian login: bullseye
Password: your user password

Step 17

Set a password for the root user by entering the following command. In a first step, you will be asked for your user password to gain sudo privileges:

$ sudo passwd root

Step 18

Install a minimal GNOME desktop by entering the following command:

$ sudo apt-get install --yes gnome-core

If you are installing into a virtual machine, use the following command to enable copy and paste between host and the guest:

$ sudo apt-get install --yes spice-vdagent

Step 19

Restart your system.

$ sudo reboot

Step 20

Enter your encryption passphrase to boot into the system.

Please unlock disk vda3_crypt: your encryption passphrase

Log into the GNOME desktop environment.

Step 21

From within the GNOME desktop, open Firefox ESR from the Activities menu and re-open these instructions at edafe.de/debian-howto.

Step 22

GNOME power options by default are unfavourable. Open the Settings application from Show Applications under the Activities menu and adjust the power options.

Power Saving

Settings > Power > Power Saving > Automatic Suspend

Suspend & Power Button

Settings > Power > Power Button Behaviour: Power Off

Step 23

Continue by setting the following keyboard shortcuts:

File manager

Settings > Keyboard Shortcuts > Home folder
Shortcut: [Super + f]

Web browser

Settings > Keyboard Shortcuts > Launch web browser
Shortcut: [Super + b]

Maximising windows vertically

Settings > Keyboard Shortcuts > Maximize window vertically
Shortcut: [Ctrl + Super + ↑]

Terminal application

Define a custom shortcut for launching the terminal by scrolling to the bottom of the list and clicking the + sign.

Settings > Keyboard Shortcuts > +
Name: Launch Terminal

Command: gnome-terminal

Shortcut: [Super + t]

Step 24

Open a terminal with [Super + t] and, where applicable, use copy and paste to enter the commands set out on this page. Be careful not to miss any punctuation.

Set the time zone for your area.

$ sudo dpkg-reconfigure tzdata
Configuring tzdata

Geographic area: your area

Ok

Configure locales for all the languages that your system is going to be used with. Use UTF-8 locales wherever possible.

$ sudo dpkg-reconfigure locales

In this example, German and Japanese locales are generated in addition to the default locale for the system environment.

Configuring locales

Locales to be generated:

[*] de_DE.UTF-8 UTF-8
[*] en_US.UTF-8 UTF-8
[*] ja_JP.UTF-8 UTF-8

OK

Keep en_US.UTF-8 as the default locale for the system environment.

Configuring locales

Default locale for the system environment:

en_US.UTF-8

OK

Step 25

Add the non-free and contrib repositories to enable the selection of packages that do not meet the Debian Free Software Guidelines or otherwise depend on such packages for their operation.

$ sudo -- bash -c 'apt-add-repository non-free && apt-add-repository contrib && apt-get update'

Step 26

Install additonal Debian packages to provide you with a functional GNOME desktop.

$ sudo apt-get install --show-progress --yes aptitude cheese cups curl deja-dup file-roller firmware-iwlwifi firmware-linux gnome-clocks gnome-color-manager gnome-maps gnome-remote-desktop gnome-screenshot gnome-shell-extension-bluetooth-quick-connect gnome-shell-extension-dashtodock gnome-shell-extension-no-annoyance gnome-shell-extension-shortcuts gnome-software-plugin-flatpak gnome-software-plugin-snap gnome-sound-recorder gnome-tweaks gstreamer1.0-vaapi libavcodec-extra mpv printer-driver-cups-pdf rhythmbox-plugin-alternative-toolbar rsync seahorse shotwell synaptic transmission-gtk ttf-mscorefonts-installer ttf-ubuntu-font-family ufw yubioath-desktop

Step 27

Enable the firewall on your new Debian system.

$ sudo ufw enable

Step 28

Install applications from the Snap Store with the following command:

$ sudo snap install bitwarden chromium foliate keepassxc libreoffice

Step 29

Enable the installation of applications from Flathub with the following command:

$ sudo -- bash -c 'flatpak remote-add --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo'

Step 30

Add to the capabilities of the Network Manager by installing the components required for IPSec and OpenVPN protocols.

$ sudo -- bash -c 'apt-get install --yes --show-progress network-manager-vpnc-gnome network-manager-openvpn-gnome network-manager-config-connectivity-debian'

Step 31

After restarting the system and loggin back into the GNOME desktop, launch Firefox ESR to re-open these instructions at edafe.de/debian-howto.

$ sudo reboot

Step 32

Open a terminal with [Super + t] and install applications from Flathub.

$ sudo flatpak install --assumeyes flathub com.github.jeromerobert.pdfarranger com.system76.Popsicle org.cryptomator.Cryptomator nl.hjdskes.gcolor3 org.pulseaudio.pavucontrol org.gnome.gitlab.somas.Apostrophe

All done!

Prevent yourself from accidentally breaking Debian by reading about some of the most commonly made mistakes.