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 a 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 Debian CD image, written to a bootable USB stick. Consider using the unofficial firmware-11.3.0-amd64-netinst.iso, which “includes non-free firmware for extra support for some awkward hardware”.
If your laptop does not have an 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. Before you begin, decide on an encryption passphrase to encrypt your storage device and a user password to secure your user account. In addition to Debian packages, Flatpaks and Snaps will be enabled as well.
Installing the base system
Step 1
After booting the system from the USB stick that you have prepared, continue by selecting the text based installer.

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
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 can use home.arpa
as the domain name.
[!] Configure the network Domain name: home.arpa Continue
Step 6
If you leave the root password empty, the standard user account will automatically be configured with sudo
privileges.
[!!] Set up users and passwords Root password: leave empty Continue
Confirm the empty 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 7
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 8
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 9
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 10
Do not 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 11
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 12
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 13
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 14
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 15
Install a minimal GNOME desktop by entering the following command. You will be asked for your user password to gain sudo
privileges:
$ sudo apt-get install --assume-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 --assume-yes spice-vdagent
Step 16
Restart your system.
$ sudo reboot
Step 17
Enter your encryption passphrase to boot into the system.
Please unlock disk vda3_crypt: your encryption passphrase
Log into the GNOME desktop environment.

Step 18
From within the GNOME desktop, open Firefox ESR from the Activities menu and re-open these instructions at edafe.org/debian-howto.
Step 19
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 20
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 21
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 22
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 23
Install additonal Debian packages to provide you with a functional GNOME desktop.
$ sudo apt-get install --show-progress --assume-yes aptitude cheese cups curl deja-dup file-roller firmware-iwlwifi firmware-linux gnome-clocks gnome-color-manager gnome-maps 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 seahorse shotwell synaptic transmission-gtk ttf-mscorefonts-installer ttf-ubuntu-font-family ufw yubioath-desktop
Step 24
Enable the firewall on your new Debian system.
$ sudo ufw enable
Step 25
Install applications from the Snap Store with the following command:
$sudo snap install bitwarden chromium
firefoxfoliate libreoffice
Firefox ESR vs Firefox Web Browser
By default, Debian installs the Extended Support Release (ESR) version of Firefox. The Extended Support Release is updated with major security or stability fixes. The Snap package, on the other hand, installs the Rapid Release version of Firefox. In contrast to the ESR, the Rapid Release receives major updates at least every four weeks. Both versions can be used concurrently and are availble on your desktop as Firefox ESR and Firefox Web Browser, respectively.
Step 26
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 27
Add to the capabilities of the Network Manager by installing the components required for IPSec and OpenVPN protocols.
$ sudo -- bash -c 'apt-get install --assume-yes --show-progress network-manager-vpnc-gnome network-manager-openvpn-gnome network-manager-config-connectivity-debian'
Step 28
After restarting the system and loggin back into the GNOME desktop, launch Firefox ESR to re-open these instructions at edafe.org/debian-howto.
$ sudo reboot
Step 28
Open a terminal with [Super + t]
and install applications from Flathub.
$ sudo flatpak install --assumeyes flathub com.system76.Popsicle org.cryptomator.Cryptomator nl.hjdskes.gcolor3 org.gnome.gitlab.somas.Apostrophe
All done!
Prevent yourself from accidentally breaking Debian by reading about some of the most commonly made mistakes.