Arch Linux GNOME 48: Installation & Setup Guide

Okay, here’s a comprehensive article detailing the installation and setup of Arch Linux with GNOME 48 (note that GNOME is currently beyond version 48; this guide will focus on principles generally applicable, but always double-check for the latest versions of packages and configurations).

Arch Linux with GNOME 48: Installation & Setup Guide

This guide provides a step-by-step walkthrough for installing and configuring Arch Linux with the GNOME 48 desktop environment. Arch Linux is a minimalist, highly customizable distribution known for its rolling-release model, providing the latest software updates. GNOME is a user-friendly and feature-rich desktop environment. This combination offers a powerful and flexible system for users who want complete control over their computing experience.

Warning: Arch Linux is not recommended for absolute beginners to Linux. This guide assumes a basic understanding of Linux concepts, command-line usage, and partitioning. If you’re new to Linux, consider starting with a more user-friendly distribution like Ubuntu or Fedora before tackling Arch.

I. Pre-Installation Steps

Before you begin the installation, you’ll need to complete a few crucial preparatory steps:

  1. Download the Arch Linux ISO:

    • Visit the official Arch Linux download page (https://archlinux.org/download/).
    • Choose a mirror close to your location for faster download speeds.
    • Download the latest ISO image. The filename will typically be something like archlinux-yyyy.mm.dd-x86_64.iso.
  2. Create a Bootable USB Drive (or Virtual Machine):

    • On Windows: Use a tool like Rufus (https://rufus.ie/) or Etcher (https://etcher.balena.io/) to write the ISO image to a USB flash drive (at least 8GB recommended). Select the ISO file, choose your USB drive, and ensure the settings are correct (usually the default settings work fine). Warning: This will erase all data on the USB drive.
    • On macOS: Use Etcher or the built-in dd command (use with caution; incorrect usage can damage your system). The general command would be: sudo dd if=/path/to/archlinux.iso of=/dev/diskX bs=1m (replace /path/to/archlinux.iso with the actual path and /dev/diskX with the correct device identifier for your USB drive; use diskutil list to identify it).
    • On Linux: Use Etcher or the dd command (similar to macOS). Alternatively, many distributions have a built-in USB image writer.
    • Virtual Machine: If you’re using a virtual machine (like VirtualBox or VMware), create a new VM and configure it to boot from the downloaded ISO image. Allocate sufficient RAM (at least 4GB recommended) and disk space (at least 20GB recommended).
  3. Backup Your Data:

    • Crucially important: Before installing Arch Linux, back up any important data from the drive you intend to install it on. The installation process will erase the target drive.
  4. Check Your System’s Boot Mode (UEFI or BIOS):

    • Modern systems typically use UEFI (Unified Extensible Firmware Interface), while older systems use BIOS (Basic Input/Output System). You need to know which one your system uses because the partitioning and bootloader setup will differ.
    • Enter your system’s BIOS/UEFI setup (usually by pressing Delete, F2, F10, F12, or Esc during boot) and look for settings related to “Boot Mode,” “Legacy Boot,” or “UEFI Boot.”
    • This guide will primarily focus on UEFI installations, which are more common and generally recommended. If you have a BIOS system, you’ll need to adapt the partitioning and bootloader sections accordingly (using MBR instead of GPT, and adjusting the bootloader configuration).
  5. Connect to the Internet:

    • Wired Connection (Ethernet): If you have a wired connection, it should be automatically detected during the boot process.
    • Wireless Connection (Wi-Fi): You’ll need to configure this manually during the installation. We will cover this later. It’s generally easier to start with a wired connection if possible.
  6. Disable Secure Boot (Optional, but often necessary):

  7. Secure Boot is a UEFI feature that can sometimes prevent booting from Linux installation media.

  8. Enter your BIOS/UEFI setup and look for a setting called “Secure Boot.” Disable it. The exact location and wording of this setting vary between manufacturers.

II. Booting the Live Environment

  1. Boot from the USB Drive/ISO:

    • Insert the bootable USB drive (or configure your VM to boot from the ISO).
    • Restart your computer.
    • You may need to press a specific key (often F12, F10, F2, Esc, or Delete) to access the boot menu and select your USB drive or virtual machine.
  2. Select “Arch Linux install medium (x86_64, UEFI)” (or similar):

    • The Arch Linux boot menu will appear.
    • Choose the option that corresponds to your boot mode (UEFI).
  3. You’ll be dropped into a root shell:

    • The live environment provides a command-line interface as the root user. This is where you’ll perform the installation.

III. Setting Up the Installation Environment

  1. Set the Keyboard Layout (Optional):

    • If you’re not using a US keyboard layout, you can change it using the loadkeys command.
    • For example, to set a German keyboard layout: loadkeys de-latin1
    • You can find a list of available layouts in /usr/share/kbd/keymaps/.
  2. Verify the Boot Mode:

    • Run the following command: ls /sys/firmware/efi/efivars
    • If the command lists files, you’ve booted in UEFI mode. If it shows an error, you’re likely in BIOS mode, and you’ll need to adapt the partitioning and bootloader steps.
  3. Connect to the Internet:

    • Wired Connection (Ethernet): If you have a wired connection, it should already be active. Verify with: ping -c 3 archlinux.org (This sends 3 ping packets to archlinux.org; if you see replies, you’re connected).
    • Wireless Connection (Wi-Fi):
      • Use the iwctl utility:
        bash
        iwctl
        [iwd]# device list # Find your wireless device name (e.g., wlan0)
        [iwd]# station wlan0 scan # Replace wlan0 with your device name
        [iwd]# station wlan0 get-networks # List available networks
        [iwd]# station wlan0 connect SSID # Replace SSID with your network name
        # Enter your network password when prompted.
        [iwd]# exit
      • Verify the connection with: ping -c 3 archlinux.org
  4. Update the System Clock:

    • Ensure your system clock is accurate: timedatectl set-ntp true
  5. Partition the Disk:

    • This is the most critical and potentially destructive part of the installation. Double-check everything before proceeding.
    • Identify your target disk: lsblk (This lists all block devices; identify the correct disk by its size and label; e.g., /dev/sda, /dev/nvme0n1). Be absolutely certain you have the correct disk, as partitioning the wrong disk will result in data loss.
    • We’ll use parted for partitioning (you could also use fdisk or cfdisk, but parted is generally recommended for UEFI systems).
    • Example UEFI Partitioning Scheme (adjust sizes as needed):

      • EFI System Partition (ESP): 512MB, FAT32 filesystem, boot flag.
      • Root Partition (/): At least 20GB (more recommended), ext4 filesystem.
      • Swap Partition (Optional, but recommended): At least the same size as your RAM (or more if you plan to use hibernation), swap filesystem.
      • Home Partition (/home) (Optional, but highly recommended): The remaining space, ext4 filesystem. Separating /home makes it easier to reinstall the system without losing your personal files.
    • Steps using parted (replace /dev/sda with your actual disk):

      bash
      parted /dev/sda
      (parted) mklabel gpt # Create a GPT partition table (for UEFI)
      (parted) mkpart ESP fat32 1MiB 513MiB # Create the ESP (start at 1MiB for alignment)
      (parted) set 1 boot on # Set the boot flag on the ESP
      (parted) mkpart primary ext4 513MiB 25GiB # Create the root partition (example: 25GB)
      (parted) mkpart primary linux-swap 25GiB 33GiB # Create the swap partition (example: 8GB)
      (parted) mkpart primary ext4 33GiB 100% # Create the home partition (use the remaining space)
      (parted) print # Review the partition table to ensure it's correct
      (parted) quit

  6. Format the Partitions:

    • Format the partitions with the appropriate filesystems. Replace /dev/sdaX with the correct partition numbers (e.g., /dev/sda1, /dev/sda2, etc.):

      bash
      mkfs.fat -F 32 /dev/sda1 # Format the ESP as FAT32
      mkfs.ext4 /dev/sda2 # Format the root partition as ext4
      mkswap /dev/sda3 # Format the swap partition
      mkfs.ext4 /dev/sda4 # Format the home partition as ext4

  7. Mount the Partitions:

    • Mount the partitions to the appropriate mount points:

      bash
      mount /dev/sda2 /mnt # Mount the root partition
      mkdir /mnt/boot
      mount /dev/sda1 /mnt/boot # Mount the ESP to /mnt/boot
      mkdir /mnt/home
      mount /dev/sda4 /mnt/home # Mount the home Partition
      swapon /dev/sda3 # Activate the swap partition

IV. Installing the Base System

  1. Select Mirrors (Optional, but highly recommended):

    • Edit the mirrorlist file to prioritize faster mirrors:
      bash
      nano /etc/pacman.d/mirrorlist
    • Uncomment (remove the # from the beginning of the line) the mirrors closest to your location. You can use the reflector utility to automatically generate a ranked mirrorlist (you may need to install it first using pacstrap – see next step). Example: reflector --country 'United States' --latest 5 --sort rate --save /etc/pacman.d/mirrorlist
  2. Install the Base System:

    • Use the pacstrap script to install the base system, the Linux kernel, and essential packages:

      bash
      pacstrap /mnt base linux linux-firmware nano vim

      * base: The essential base packages.
      * linux: The standard Linux kernel. You could also choose linux-lts (Long-Term Support) or linux-zen (optimized for performance).
      * linux-firmware: Firmware for various hardware devices.
      * nano: A simple text editor (you can use vim if you prefer).
      * vim: A more advanced text editor.

V. Configuring the System

  1. Generate fstab:

    • Generate the /etc/fstab file, which defines how your partitions are mounted at boot:

      bash
      genfstab -U /mnt >> /mnt/etc/fstab

      * Verify the fstab: Carefully review the generated /mnt/etc/fstab file to ensure it’s correct. Incorrect entries can prevent your system from booting. Use nano /mnt/etc/fstab to edit it if needed.

  2. Chroot into the New System:

    • Change the root directory to the newly installed system:

      bash
      arch-chroot /mnt

      * You are now operating within the installed system, as if you had booted into it.

  3. Set the Time Zone:

    • Set your time zone:
      bash
      ln -sf /usr/share/zoneinfo/Region/City /etc/localtime

      • Replace Region/City with your actual time zone (e.g., America/Los_Angeles).
      • Run hwclock --systohc to set the hardware clock.
  4. Set the Locale:

    • Edit the /etc/locale.gen file:
      bash
      nano /etc/locale.gen
    • Uncomment (remove the #) the locales you want to use (e.g., en_US.UTF-8 UTF-8).
    • Generate the locales:
      bash
      locale-gen
    • Set the system locale in /etc/locale.conf:
      bash
      echo "LANG=en_US.UTF-8" > /etc/locale.conf

      (Replace en_US.UTF-8 with your chosen locale).
  5. Set the Hostname:

    • Set the hostname for your system:
      bash
      echo "myhostname" > /etc/hostname

      (Replace myhostname with your desired hostname).
  6. Configure the Network (NetworkManager):

    • Install NetworkManager (a network management tool) and enable it:

      bash
      pacman -S networkmanager
      systemctl enable NetworkManager

      * NetworkManager will handle both wired and wireless connections.

  7. Set the Root Password:

    • Set a strong password for the root user:

      bash
      passwd

  8. Install a Bootloader (systemd-boot):

    • We’ll use systemd-boot (previously known as gummiboot), a simple UEFI boot manager:

      bash
      bootctl install

      * Create a boot entry for Arch Linux. Create a file at /boot/loader/entries/arch.conf with the following content:

      title Arch Linux
      linux /vmlinuz-linux
      initrd /initramfs-linux.img
      options root=PARTUUID=$(blkid -s PARTUUID -o value /dev/sda2) rw

      * Verify PARTUUID with blkid /dev/sda2 (replace /dev/sda2 with your root partition.
      * The PARTUUID ensures that the correct root partition is identified, even if the device names change.
      * You can add additional boot entries (e.g., for a fallback kernel) by creating similar .conf files in /boot/loader/entries/.

  9. Create a user account:

    • It is strongly recommended not to use the root account for daily use.
      bash
      useradd -m -G wheel -s /bin/bash yourusername
      passwd yourusername
    • -m creates a home directory.
    • -G wheel adds the user to the wheel group, which allows them to use sudo.
    • -s /bin/bash sets the user’s default shell to bash.
    • Replace yourusername with your desired username.
  10. Enable sudo:

    • Install the sudo package:
      bash
      pacman -S sudo
    • Edit the sudoers file using visudo (this ensures proper syntax checking):
      bash
      EDITOR=nano visudo
    • Find the line that says # %wheel ALL=(ALL) ALL and uncomment it (remove the #). This allows members of the wheel group to use sudo.
    • Save and exit the file.

VI. Installing GNOME and Additional Packages

  1. Install the X Window System:

    • Install the base Xorg packages:
      bash
      pacman -S xorg-server xorg-xinit
  2. Install GNOME:

    • Install the GNOME desktop environment:
      bash
      pacman -S gnome
    • This will install the core GNOME packages. You can also install additional GNOME applications and utilities (see below).
  3. Install a Display Manager (GDM):

    • GNOME Display Manager (GDM) provides a graphical login screen:
      bash
      pacman -S gdm
    • Enable GDM to start automatically at boot:
      bash
      systemctl enable gdm
  4. Install Additional GNOME Applications (Optional):

    • You can install additional GNOME applications using pacman. Some common examples:
      • gnome-terminal: The GNOME terminal emulator.
      • nautilus: The GNOME file manager.
      • gedit: A simple text editor.
      • gnome-tweaks: A tool for customizing GNOME settings.
      • gnome-software: A graphical software center (useful for browsing and installing applications).
      • gnome-control-center: The settings application.
      • evince: PDF Viewer
      • totem: Video Player
        bash
        pacman -S gnome-terminal nautilus gedit gnome-tweaks gnome-software gnome-control-center evince totem
  5. Install Graphics Drivers:

    • You need to install the appropriate graphics drivers for your hardware.
    • Intel Graphics: pacman -S xf86-video-intel (for older Intel GPUs) or pacman -S mesa (for newer Intel GPUs; mesa often provides better performance).
    • NVIDIA Graphics:
      • Open-source driver (Nouveau): pacman -S xf86-video-nouveau (generally works, but may have performance limitations).
      • Proprietary driver (recommended for best performance): pacman -S nvidia nvidia-utils (check the Arch Wiki for specific instructions for your NVIDIA card model). You may also need to install nvidia-settings.
      • For hybrid graphics (Optimus) laptops: This is more complex. Refer to the Arch Wiki’s NVIDIA Optimus page for detailed instructions. You’ll likely need to use a tool like bumblebee or optimus-manager.
    • AMD Graphics:
      • Open-source driver (AMDGPU): pacman -S xf86-video-amdgpu (generally recommended for newer AMD GPUs).
      • Proprietary driver (AMDGPU-PRO): Available from the AUR (Arch User Repository); see the Arch Wiki for instructions.
    • Virtual Machine Graphics (e.g., VirtualBox): pacman -S virtualbox-guest-utils (for VirtualBox) or pacman -S xf86-video-vmware (for VMware).
  6. Install other essential packages:

    • A web browser (Firefox, Chromium, etc.): pacman -S firefox
    • A text editor of your choice (if you don’t like the default): pacman -S code (VS Code)
    • Archiving tools: pacman -S unzip zip p7zip unrar
    • Other utilities you find useful.

VII. First Boot and Post-Installation Configuration

  1. Exit the Chroot and Unmount:

    • Exit the chroot environment:
      bash
      exit
    • Unmount the partitions:
      bash
      umount -R /mnt
  2. Reboot:

    • Reboot your system:
      bash
      reboot
    • Remove the installation media (USB drive or ISO).
  3. Log in to GNOME:

    • GDM (the GNOME Display Manager) should appear.
    • Log in with the username and password you created earlier.
  4. Post-Installation Steps:

    • Update the System: Open a terminal and run:
      bash
      sudo pacman -Syu

      This updates all installed packages to their latest versions. This is crucial on Arch Linux, as it’s a rolling-release distribution.
    • Configure NetworkManager: If you’re using Wi-Fi, click the network icon in the GNOME system tray and connect to your wireless network.
    • Explore GNOME Settings: Open the “Settings” application (search for it in the GNOME Activities overview) to customize various aspects of your system, such as display resolution, keyboard shortcuts, power settings, and more.
    • Install Additional Software: Use pacman (from the terminal) or gnome-software (the graphical software center) to install any additional applications you need.
    • Configure your shell (optional): If you’re comfortable using zsh or fish, consider switching from bash. oh-my-zsh or oh-my-fish provide enhanced features and themes.
    • Enable the AUR (Arch User Repository) (Optional, but very useful):
    • The AUR contains a vast collection of user-maintained packages.
    • Install an AUR helper like yay (recommended) or paru:
      bash
      sudo pacman -S --needed git base-devel
      git clone https://aur.archlinux.org/yay.git
      cd yay
      makepkg -si
    • After installation you can use yay instead of pacman. yay has all the pacman commands plus it can install from the AUR
    • Set up a Firewall (Optional, but recommended):

      • Install ufw (Uncomplicated Firewall):
        bash
        sudo pacman -S ufw
      • Enable ufw:
        bash
        sudo ufw enable
      • Allow SSH access (if needed):
        bash
        sudo ufw allow ssh
      • Check the status:
        bash
        sudo ufw status
    • GNOME Tweaks:

      • Use GNOME Tweaks (installed earlier) to customize the appearance and behavior of GNOME, such as:
        • Changing the theme, icons, and fonts.
        • Modifying the top bar.
        • Enabling/disabling GNOME extensions.
        • Adjusting window behavior.
    • GNOME Extensions:

      • GNOME Extensions are small add-ons that extend the functionality of GNOME.
      • You can install and manage extensions through the “Extensions” application (install gnome-shell-extensions if it’s not already installed) or through the GNOME Extensions website (https://extensions.gnome.org/).
      • Some popular extensions include:
        • Dash to Dock: Provides a more traditional dock.
        • Dash to Panel: Combines the top bar and dock into a single panel.
        • ArcMenu: A customizable application menu.
        • User Themes: Allows you to use custom shell themes.
        • OpenWeather: Displays weather information in the top bar.
    • Flatpak (Optional):

      • Flatpak is a universal packaging format that allows you to install applications from Flathub (https://flathub.org/).
      • Install Flatpak:
        sudo pacman -S flatpak
      • Add the Flathub repository:
        flatpak remote-add --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo
      • You can now install applications from Flathub using the flatpak command or through GNOME Software (if it has Flatpak support enabled).
    • Snap (Optional):

    • Snap is another universal packaging format developed by Canonical (the company behind Ubuntu)
      sudo pacman -S snapd
      sudo systemctl enable --now snapd.socket
      sudo ln -s /var/lib/snapd/snap /snap
    • Backup your system (Highly recommended):
    • Regularly back up your important data and system configuration. Tools like timeshift (for system snapshots) and rsync (for file backups) are commonly used on Arch Linux.

VIII. Troubleshooting

  • Boot Problems:

    • If your system doesn’t boot, double-check your bootloader configuration (/boot/loader/entries/arch.conf). Ensure the PARTUUID is correct.
    • Make sure your BIOS/UEFI is set to boot from the correct device (usually your hard drive or SSD).
    • If you see an error message, carefully note it down and search online for solutions. The Arch Wiki and forums are excellent resources.
  • Graphics Issues:

    • If you have problems with your graphics drivers, try switching between the open-source and proprietary drivers (if applicable).
    • Check the Arch Wiki for specific instructions for your graphics card model.
  • Network Problems:

    • Ensure NetworkManager is running: systemctl status NetworkManager
    • If you’re using Wi-Fi, check your wireless connection settings.
    • Try restarting NetworkManager: sudo systemctl restart NetworkManager
  • Package Installation Errors:

    • Make sure your mirrors are up-to-date: sudo pacman -Syy
    • If you encounter dependency errors, try resolving them manually using pacman or an AUR helper.
    • If you’re using the AUR, ensure your AUR helper is installed and configured correctly.
  • GNOME Issues:

    • If GNOME crashes or behaves unexpectedly, try restarting it: Press Alt+F2, type r, and press Enter.
    • Check for conflicting GNOME extensions.
    • If you have problems with a specific application, try reinstalling it.
  • General System Issues:

    • The Arch Wiki (https://wiki.archlinux.org/) is your best friend. It’s an incredibly comprehensive resource with solutions to almost every problem you might encounter.
    • The Arch Linux forums (https://bbs.archlinux.org/) are another excellent place to ask for help. Be sure to provide detailed information about your problem, including any error messages you’ve seen.
    • Search online using specific keywords related to your problem.

IX. Keeping Your System Updated

Arch Linux is a rolling-release distribution, meaning that updates are released continuously. It’s important to keep your system updated regularly to receive the latest features, security patches, and bug fixes.

  • Full System Update:
    bash
    sudo pacman -Syu

    This command synchronizes your package database with the mirrors (-Syy) and upgrades all installed packages (-u).

  • Partial Upgrades are Unsupported: On Arch Linux, it’s crucial to perform full system upgrades. Partial upgrades (e.g., upgrading only specific packages) can lead to dependency issues and break your system.

  • Read the News Before Major Updates: Before performing a major system upgrade, it’s a good idea to check the Arch Linux news feed (https://archlinux.org/news/) for any important announcements or manual intervention steps that might be required.

  • Use a Backup Tool: Before major updates, it’s wise to create a system snapshot using a tool like timeshift. This allows you to easily revert to a previous state if something goes wrong during the update.

This guide provides a comprehensive foundation for installing and setting up Arch Linux with GNOME. Remember to consult the Arch Wiki and forums for more detailed information and troubleshooting assistance. Enjoy your highly customized and powerful Arch Linux system!

Leave a Comment

Your email address will not be published. Required fields are marked *

Scroll to Top