$linuxjunkies
>

How to Install Debian 12 (Bookworm)

Step-by-step walkthrough of the Debian 12 Bookworm installer: disk partitioning, tasksel, GRUB setup, and essential post-install configuration.

BeginnerUbuntuDebianFedoraArch9 min readUpdated June 7, 2026

Before you start

  • A USB drive of at least 1 GB for the installer
  • A target machine or VM with at least 20 GB of disk space and 1 GB RAM (2 GB recommended for a desktop)
  • A wired internet connection, or knowledge of your Wi-Fi credentials
  • Any important data on the target disk already backed up

Debian 12 "Bookworm" is a rock-solid base for servers, workstations, and everything in between. Released June 2023, it ships with Linux 6.1 LTS, GNOME 43, and a refreshed installer that now includes non-free firmware on the standard ISO. This walkthrough covers a clean physical or VM install from start to a usable system.

Download the Right ISO

Grab the netinst ISO from debian.org. It is under 700 MB and pulls packages from the network during install, so you always get current versions. If your hardware needs proprietary firmware (common with Broadcom Wi-Fi, NVIDIA, or Realtek NICs), use the non-free firmware netinst variant — it lives on the same download page under "unofficial non-free".

Verify the checksum before writing the image:

sha256sum debian-12.x.x-amd64-netinst.iso
# Compare against SHA256SUMS file from debian.org

Write to USB with dd or a GUI tool like Balena Etcher:

# Replace /dev/sdX with your USB device — double-check with lsblk first
sudo dd if=debian-12.x.x-amd64-netinst.iso of=/dev/sdX bs=4M status=progress oflag=sync

Boot and Language Selection

Boot from the USB. On most machines that means tapping F12, F2, or Del at POST to reach the boot menu. Select the USB drive and choose Graphical Install from the Debian boot menu — it is friendlier for beginners and functionally identical to the text installer.

Work through the first screens in order:

  • Language — sets the installer and default system locale.
  • Location — used to set the timezone.
  • Keymap — pick your physical keyboard layout; a mismatch here makes password entry painful.

Network and Hostname

The installer detects wired interfaces automatically. If you are on Wi-Fi, it will prompt for your SSID and passphrase. Set a short, lowercase hostname (e.g., bookworm-ws) and leave the domain blank unless you are joining a managed network.

User Accounts and Passwords

Debian's installer creates two accounts:

  • root — you set this password first. If you leave it blank, the installer skips a root account and grants your first user full sudo access automatically.
  • Normal user — enter a full name, a username, and a password.

For most desktops, leaving root's password blank is the modern approach — it matches Ubuntu's behavior and avoids accidental direct root logins.

Disk Partitioning

This is the step that trips up most beginners. Choose your partitioning method carefully.

Select Guided — use entire disk. On the next screen, choose your target disk. Then pick a partition scheme:

  • All files in one partition — simplest; fine for desktops and VMs.
  • Separate /home partition — lets you reinstall without losing personal files. Good habit on real hardware.
  • Separate /home, /var, and /tmp — better for servers where log or temp growth could fill the root filesystem.

The installer defaults to ext4 on a GPT disk with an EFI System Partition if your machine is UEFI, or a single MBR partition table on BIOS systems. Either works fine for most use cases.

Manual Partitioning

Choose Manual if you need LVM, LUKS encryption, a custom swap size, or dual-boot alongside another OS. Create at minimum:

  • An EFI System Partition (FAT32, ~512 MB, mount point /boot/efi) on UEFI systems.
  • A root partition (/), ext4 or XFS, at least 20 GB.
  • A swap partition or file — 1× your RAM up to about 8 GB is a practical rule.

Confirm the partition table and write changes to disk when prompted. This is the point of no return for existing data on that disk.

Mirror and Package Selection

The installer asks for a Debian archive mirror. Choose one geographically close to you — deb.debian.org is a global CDN and a safe default. Leave the HTTP proxy blank unless your network requires one.

After base packages install, the tasksel screen appears. This is where you pick your desktop environment and roles:

  • Debian desktop environment — the top-level checkbox; always select this for a desktop.
  • Then pick one DE: GNOME (default), KDE Plasma, Xfce, LXDE, MATE, Cinnamon, or LXQt.
  • web server, SSH server — tick these for server roles.
  • standard system utilities — always leave this checked; it pulls in essential tools.

Tasksel installs via APT in the background. On a slow connection this can take 10–30 minutes.

GRUB Bootloader

The installer asks where to install GRUB. On a UEFI system it installs to the EFI partition automatically. On a BIOS system, select the disk (e.g., /dev/sda), not a partition. Never install GRUB to a partition unless you know what you are doing — it breaks on reboots.

If you are dual-booting Windows, os-prober detects it and adds a Windows entry to the GRUB menu. The installer enables os-prober by default in Bookworm.

First Boot and Post-Install Essentials

After the installer reboots and GRUB loads, log in with the normal user account you created.

Update the System

sudo apt update && sudo apt full-upgrade -y

Install sudo (if you set a root password)

If you gave root a password, your user may not be in the sudo group. Fix it:

su -
apt install sudo
usermod -aG sudo yourusername
exit
# Log out and back in for the group change to take effect

Enable Non-Free and Contrib Repositories

Bookworm splits firmware into its own component. Edit your sources list for broader software access:

sudo nano /etc/apt/sources.list

Your main line should look like this (adjust your mirror if needed):

deb http://deb.debian.org/debian bookworm main contrib non-free non-free-firmware

Then update:

sudo apt update

Install Common Essentials

sudo apt install -y curl wget git vim htop ufw

Enable the Firewall

sudo ufw allow SSH
sudo ufw enable
sudo ufw status

Verify the Installation

Confirm you are running the right release and kernel:

cat /etc/os-release
uname -r
df -h
systemctl --failed

systemctl --failed should return an empty list. If any units show as failed, investigate with journalctl -u unit-name.

Troubleshooting

  • No network during install — Use the non-free firmware ISO; most missing NIC issues are firmware-related. You can also drop to a shell and run ip link to identify the interface name.
  • GRUB not appearing after reboot — Boot a live USB, chroot into your install, and re-run grub-install and update-grub. Check whether your BIOS/UEFI is set to boot from the correct disk.
  • Black screen after login (NVIDIA) — Add non-free to your sources, then sudo apt install nvidia-driver. On Wayland sessions, check that GBM_BACKEND=nvidia-drm is set if your compositor requires it.
  • Tasksel missing packages — A network drop mid-install can leave packages unconfigured. Run sudo apt install -f followed by sudo dpkg --configure -a.
  • Clock wrong after dual-boot with Windows — Windows expects the hardware clock in local time; Debian uses UTC. Fix on the Debian side: sudo timedatectl set-local-rtc 1 --adjust-system-clock, or fix Windows with a registry tweak.
tested on:Debian 12.5Debian 12.0

Frequently asked questions

Should I use the netinst ISO or the full DVD image?
Netinst is almost always better. It is smaller, faster to download, and installs current package versions from the network. The DVD is only useful when you have no internet access at install time.
Why does the installer not detect my Wi-Fi card?
Most Wi-Fi chips need proprietary firmware that is not in the standard ISO. Re-download the 'unofficial non-free firmware' netinst from debian.org and try again — it bundles the missing firmware files.
What is the difference between guided and manual partitioning?
Guided lets the installer create a sensible layout automatically; it is fine for most users. Manual gives you full control for LVM, LUKS full-disk encryption, custom partition sizes, or preserving an existing partition for dual-boot.
Can I add a desktop environment later if I skipped tasksel?
Yes. Install your chosen DE at any time with apt — for example, 'sudo apt install task-gnome-desktop' for GNOME or 'sudo apt install task-kde-desktop' for KDE Plasma. Then enable the display manager with systemctl.
How do I upgrade from Debian 11 (Bullseye) to Bookworm instead of doing a fresh install?
Update all packages on Bullseye first, then replace every 'bullseye' reference in /etc/apt/sources.list with 'bookworm', run apt update, then apt full-upgrade. The Debian release notes document the exact procedure and any dist-specific caveats.

Related guides