Raspberry Pi online course

Choosing and Installing an Operating System for Raspberry Pi

Learn how Raspberry Pi operating systems work, compare Raspberry Pi OS and alternatives, choose ARM-compatible images, and install one safely with Raspberry Pi Imager.

Why a Raspberry Pi needs an operating system

An operating system (OS) is the core software that starts a computer and provides the environment in which other software runs. On a Raspberry Pi, the OS helps the board boot, communicates with the processor and peripherals, manages storage and memory, provides networking, and gives you either a graphical interface or a command-line prompt.

Without an operating system, the Raspberry Pi has no general-purpose environment for running Python programs, controlling GPIO hardware, browsing files, installing packages, sharing files, or hosting services. The OS supplies drivers and system services so applications do not need to control every hardware component directly.

A Raspberry Pi normally boots its OS from a microSD card. Some supported models and configurations can also boot from USB storage or a network location. The available boot methods depend on the board, boot firmware, storage device, and configuration.

Before continuing, identify your exact board model and understand that writing an image erases the selected storage device. The Raspberry Pi board guide can help with hardware identification.

Hardware and architecture compatibility

Most desktop and laptop computers use x86 or x64 processors. Raspberry Pi boards use processors from the ARM family instead. ARM is a processor architecture: it defines how software communicates with the CPU and how compiled programs are represented.

An operating-system image must support both ARM and the specific Raspberry Pi model. A generic ARM image may lack the boot files, kernel, firmware, or drivers required by a particular board. Compatibility can also depend on available RAM, boot firmware, graphics support, wireless hardware, storage controllers, and the workload you intend to run.

32-bit and 64-bit images

A 32-bit operating system uses 32-bit software components. It can be useful for older Raspberry Pi models, older software, or systems where broad compatibility and lower memory use are priorities. A 64-bit operating system can address more memory and may be required or preferred by applications that provide 64-bit builds.

Newer Raspberry Pi boards generally support 64-bit operating systems, while some older boards require 32-bit images. Do not choose by processor age alone: check the image's stated model support and the distribution's current documentation. A 64-bit-capable board can often run a 32-bit OS, but that does not mean every 64-bit image supports every board.

Raspberry Pi OS: the recommended default

Raspberry Pi OS is the standard beginner-friendly choice for general Raspberry Pi use. It is a Linux distribution based on Debian and includes Raspberry Pi-specific hardware support, configuration tools, repositories, and documentation.

It is a strong default for learning Linux, programming, Python, GPIO projects, electronics, desktop tasks, and following Raspberry Pi tutorials. It includes a package manager for installing, updating, removing, and tracking software. It also provides command-line tools and a graphical desktop option.

Desktop or Lite?

EditionBest forCharacteristics
Raspberry Pi OS DesktopMonitor-and-keyboard use, programming, learning, and general desktop tasksIncludes a desktop environment with windows, menus, panels, file tools, and graphical applications
Raspberry Pi OS LiteHeadless servers, automation, networking services, and command-line workMinimal installation without a full desktop; uses less storage and memory

A desktop environment is the graphical interface that provides windows, menus, panels, and file-management tools. Choose Desktop when you want to connect a monitor and use the Pi like a small computer. Choose Lite when the Pi will run without a directly connected monitor, keyboard, or mouse. This is called a headless setup and is commonly administered through SSH, or Secure Shell.

For a small headless home server, Raspberry Pi OS Lite or Ubuntu Server is usually more efficient than a full desktop image. For a first Pi used with a monitor to learn Python, Raspberry Pi OS Desktop is usually the simplest choice.

Choosing 32-bit or 64-bit Raspberry Pi OS

  • Choose 64-bit on a supported newer board when you need a 64-bit application, want access to a 64-bit userland, or have a workload that benefits from it.
  • Choose 32-bit when the board is older, the image specifically requires it, or maximum compatibility with older software matters more than 64-bit features.
  • Consider RAM as well as CPU support. A 64-bit system does not automatically make a low-memory board faster.

How to choose an operating-system image

QuestionWhy it mattersPossible decision
Which Raspberry Pi model do you have?Boot files, drivers, CPU features, and supported images vary by modelChoose an image that explicitly lists the board
Does it support 64-bit operating systems?Some older boards require 32-bit softwareUse a supported 64-bit or 32-bit edition
Do you need a graphical desktop?A desktop uses more storage, memory, and processing capacityUse Desktop for interactive work or Lite for command-line use
Will the Pi run headlessly?You need remote access and networking configured before or during first bootEnable SSH and configure Wi-Fi, or use Ethernet
What is the main project purpose?Special-purpose images may be better optimized than general distributionsChoose a media-center, gaming, server, or desktop image
How much RAM and storage are available?Large desktops and applications need more resourcesUse a lightweight image on constrained hardware
Is the image actively maintained?Maintenance provides security fixes, firmware compatibility, and current packagesVerify recent releases and explicit board support before installing

Availability changes over time. Before downloading an alternative, confirm that its image is maintained and supports your exact model, architecture, display hardware, wireless hardware, and project requirements.

Operating-system categories and representative options

Operating system or categoryPrimary useLinux or non-LinuxDesktop/headless focusTypical experience levelCompatibility checks required
Raspberry Pi OS DesktopLearning, programming, GPIO, and general useLinuxDesktopBeginnerBoard model, 32-bit or 64-bit support, available RAM
Raspberry Pi OS LiteServers, automation, and command-line projectsLinuxHeadlessBeginner to intermediateBoard support, networking method, SSH setup
Ubuntu Desktop or ServerUbuntu ecosystem, server tools, and developmentLinuxDesktop or headlessIntermediateModel-specific image, RAM, architecture, and performance
Arch Linux ARMMinimal systems and manual configurationLinuxUsually headless or custom desktopExperiencedExact board support, installation instructions, and manual boot configuration
LibreELECDedicated Kodi media centerLinux-basedAppliance-style media interfaceBeginner to intermediateCurrent image for the exact Pi model and media hardware
RetroPie, Recalbox, or Batocera-style imageRetro-game emulationUsually Linux-basedGame-focused interfaceBeginner to intermediateBoard support, emulator performance, controllers, and legal game files
RISC OSLightweight, distinct operating-system experienceNon-LinuxDesktop-orientedIntermediateModel support, application availability, and hardware drivers

Ubuntu is useful if you already know the Ubuntu ecosystem or need Ubuntu-oriented server and development tools. Arch Linux ARM offers a minimal base and extensive control, but expects you to perform more configuration and administration.

For a dedicated living-room media center, a maintained Kodi-focused image such as LibreELEC can be more suitable than a general desktop system. For retro gaming, use a maintained image such as RetroPie, Recalbox, or Batocera when it explicitly supports your board.

RISC OS demonstrates that a Raspberry Pi is not limited to Linux. It provides a different, lightweight computing experience, although software and hardware support differ from Linux distributions.

Names such as NOOBS, OpenELEC, Pidora, Puppy Linux, and Raspbmc may appear in older instructions or discussions. Treat them as legacy examples rather than the default installation path. Prefer Raspberry Pi Imager and a currently supported image.

Installation methods compared

MethodBest forAdvantagesLimitationsCurrent recommendation
Raspberry Pi ImagerMost beginners and standard Raspberry Pi OS installationsGraphical workflow, image selection, customization, writing, and verificationSome specialized images may not be listedRecommended default
Manual image download and flashingAlternative distributions or images not listed in ImagerWorks with downloaded disk images and provides direct controlMore opportunities to select the wrong drive or imageUse when the distribution documents it
Legacy NOOBS-style installerUnderstanding older Raspberry Pi setup conceptsMenu-driven installer environmentNot the preferred route for current supported imagesUse modern supported images and Raspberry Pi Imager instead

NOOBS means “New Out Of Box Software.” It was a menu-driven installer used by earlier Raspberry Pi setups. Conceptually, an installer environment helps you select and deploy an operating system; a ready-to-boot disk image already contains the partitions and files needed to start the OS. Modern guidance should favor Raspberry Pi Imager and current images.

Installing with Raspberry Pi Imager

1. Prepare the hardware

  • Identify the exact Raspberry Pi model.
  • Use a reputable microSD card with sufficient capacity. A larger card is helpful for a desktop distribution, updates, applications, logs, and user data.
  • Back up anything on the card. Writing an image erases the selected target drive.
  • Use a reliable card reader and an appropriate power supply and cable.

Capacity and quality matter. A small, slow, worn-out, or counterfeit card can cause failed writes, slow performance, corruption, and unexplained boot problems. Formatting the card beforehand is normally unnecessary because imaging tools repartition and format the target as part of writing the image.

2. Select and configure the image

  1. Download and install Raspberry Pi Imager for your computer from its official distribution source.
  2. Open Imager and select the Raspberry Pi model when prompted.
  3. Select the operating system. For a general-purpose beginner installation, choose Raspberry Pi OS Desktop. For a headless system, choose Raspberry Pi OS Lite or a suitable server image.
  4. Select the target microSD card. Check its capacity and device identity carefully; selecting another drive will erase that drive.
  5. Open the customization settings before writing, if offered.

Useful pre-boot settings include:

  • A hostname for identifying the Pi on the local network.
  • A username and strong password.
  • Wi-Fi SSID, password, and country.
  • SSH enablement for headless administration.
  • Locale, keyboard layout, and time zone.
  • Image verification when the tool offers it.

3. Write and verify the card

  1. Start the write operation and confirm the erase warning.
  2. Wait for the image to be written completely.
  3. Allow post-write verification to finish. Verification checks that the data on the card matches the image and can reveal a faulty card reader, damaged download, or failing card.
  4. Safely eject or remove the card using your computer's operating-system controls.

Do not remove the card while it is being written or verified. The imaging tool normally handles partitioning and filesystem creation, so manual formatting is not required.

4. First boot

  1. Insert the microSD card into the powered-off Raspberry Pi.
  2. Connect a monitor and keyboard if using a desktop setup, or connect Ethernet if you plan to administer the Pi remotely.
  3. Connect the appropriate power supply. The board should begin its boot process.
  4. Complete the initial setup wizard if one appears.
  5. Confirm that the system reaches a desktop or a login prompt.
  6. Test network connectivity and then install updates.

For a headless setup, enable SSH and configure networking in Imager before writing. After boot, find the address with hostname -I and connect from another computer with:

ssh username@raspberrypi.local

This requires SSH to be enabled, local hostname resolution to work, and the hostname and username to match the configured system. If the name does not resolve, use the Pi's IP address instead.

Manual image downloads and flashing

If an operating system is not listed in Raspberry Pi Imager, download a disk image from the distribution's maintained release source and follow its installation instructions. A disk image is a file containing the complete partition and filesystem layout needed to create bootable storage. Flashing means writing that image directly to a storage device.

Compressed images may need to be decompressed first. Some projects publish checksums such as SHA-256 values. Comparing the downloaded file's checksum with the published value helps detect an incomplete or altered download before writing it.

Advanced users can use a disk-imaging command on Linux or macOS. First identify the removable drive:

lsblk

On macOS, use the system's disk-listing command and identify the device by its size and removable status. Then unmount the card without ejecting it and use the image-writing command documented by the image provider. A Linux-style example is:

sudo dd if=path/to/os-image.img of=/dev/target-device bs=4M conv=fsync status=progress

First-boot validation and updates

After booting, verify the three basic outcomes: the board starts successfully, you can reach a desktop or login prompt, and the network works. On a Debian-based system, these commands provide useful checks:

cat /etc/os-release
getconf LONG_BIT
uname -m
df -h
hostname -I
  • cat /etc/os-release identifies the installed distribution and release.
  • getconf LONG_BIT reports whether the active userland is 32-bit or 64-bit.
  • uname -m reports the running machine architecture.
  • df -h shows available filesystem space.
  • hostname -I displays the Pi's local IP address.

Update packages after the first boot and periodically thereafter using the distribution's supported mechanism. On Raspberry Pi OS or another Debian-based system:

sudo apt update && sudo apt full-upgrade

Review prompts before accepting changes. Keeping packages and supported firmware current improves security, bug fixes, and hardware compatibility. For more command-line practice, see the Raspberry Pi terminal guide and useful terminal commands.

Common installation and compatibility problems

SymptomLikely causesFirst checksResolution
No activity or no bootIncompatible image, corrupted write, failing card, inadequate powerConfirm model, rewrite with verification, test known-good storage and powerUse a supported image and reliable card, reader, supply, and cable
Blank displayWrong monitor input, wrong HDMI port, cable or display-mode issue, incompatible imageCheck input, cable, primary HDMI port, another display, and network reachabilityCorrect the physical connection and confirm the image supports the model
Wi-Fi unavailableIncorrect credentials, missing country, unsupported band, or no built-in wirelessRecheck SSID, password, country, board capability, and try EthernetCorrect Imager settings or configure networking over a temporary wired connection
SSH connection refusedSSH disabled, no network address, wrong hostname, username, or IP addressConfirm SSH, find the address, and check configured credentialsEnable SSH and connect using the correct current address and username
System is slowDesktop too demanding, insufficient RAM, slow or worn cardCheck resource use and compare edition with board capacityUse Lite or a lighter distribution and reliable storage
Storage fills quicklySmall card, desktop applications, updates, logs, or user dataRun df -h and inspect what consumes spaceUse larger storage, remove unnecessary data, or choose a minimal image

Architecture and Windows confusion

A standard desktop Windows installation built for x86 or x64 PCs cannot generally be copied directly to ARM-based Raspberry Pi hardware. Windows IoT and other embedded variants are different products with different hardware and software requirements; they should not be confused with ordinary desktop Windows. Always check the image architecture and board-support list.

Practical recommendations

  • First Pi for learning Python with a monitor: Raspberry Pi OS Desktop, using the current supported 32-bit or 64-bit edition for the board.
  • Small headless home server: Raspberry Pi OS Lite or Ubuntu Server, with SSH and networking configured during imaging.
  • Dedicated living-room media center: A maintained Kodi-oriented image such as LibreELEC, provided it explicitly supports the model.
  • Experienced Linux user wanting maximum control: Arch Linux ARM, after confirming board support and preparing for manual setup.
  • Older board with limited RAM: A supported lightweight or Lite image, commonly 32-bit when required by the model.

When in doubt, start with Raspberry Pi OS. It offers the broadest beginner support and makes it easier to follow tutorials, install packages, learn the command line, and move later to a specialized system.

For related setup tasks, see setting up a Raspberry Pi, Raspberry Pi boot options, connecting to the internet, and remote access.