Príprava a konfigurácia bootovacej SD karty pre Raspberry Pi (Headless Setup)

Vytvorené: 24. 8. 2025 08:47 Aktualizované: 27. 8. 2025 13:15
Vyriešené
Obsah článku

title: "Príprava a konfigurácia bootovacej SD karty pre Raspberry Pi (Headless Setup)"
slug: "raspberry-pi-headless-sd-card-setup"
technologies: ["Raspberry Pi OS", "Bash", "Linux", "SSH", "Networking"]
tags: ["iot", "raspberry-pi", "linux", "setup", "headless", "automation"]
date_solved: "2025-08-22"

Projekt/Téma: Príprava a konfigurácia bootovacej SD karty pre Raspberry Pi (Headless Setup)

  1. Cieľ / Problém na vyriešenie: Cieľom bolo pripraviť SD kartu s operačným systémom Raspberry Pi OS pre bezhlavé (headless) použitie. To znamená, že po prvom spustení sa Raspberry Pi automaticky pripojí na WiFi a bude prístupné cez SSH bez nutnosti pripojenia monitora a klávesnice.

  2. Použité technológie a nástroje:

    • Operačný systém: Raspberry Pi OS (Bookworm, 64-bit Lite)
    • Nástroje: wget, unxz, dd, mount, touch, tee, chmod, chown, umount, lsblk
    • Protokoly: SSH, WPA
  3. Kľúčové postupy a konfiguračné kroky:

    • Stiahnutie a dekompresia obrazu Raspberry Pi OS.
      wget https://downloads.raspberrypi.com/raspios_lite_arm64/images/raspios_lite_arm64-2025-05-13/2025-05-13-raspios-bookworm-arm64-lite.img.xz
      unxz 2025-05-13-raspios-bookworm-arm64-lite.img.xz
    • Zapísanie obrazu na SD kartu pomocou príkazu dd.
      sudo dd bs=4M if=2025-05-13-raspios-bookworm-arm64-lite.img of=/dev/sdd status=progress conv=fsync
    • Pripojenie boot partície a povolenie SSH vytvorením prázdneho súboru ssh.
      sudo mount /dev/sdd1 /mnt/bootfs
      sudo touch /mnt/bootfs/ssh
    • (Krok vykonaný, ale obsah súboru nebol v histórii) Vytvorenie wpa_supplicant.conf na boot partícii s údajmi pre WiFi sieť.
      sudo vim /mnt/bootfs/wpa_supplicant.conf
      sudo umount /mnt/bootfs
    • Pripojenie root partície a vloženie verejného SSH kľúča pre bezheslové prihlásenie.
      sudo mount /dev/sdd2 /mnt/rootfs
      sudo mkdir -p /mnt/rootfs/home/pi/.ssh
      export PUBKEY=$(cat ~/.ssh/id_rsa.pub)
      echo "$PUBKEY" | sudo tee /mnt/rootfs/home/pi/.ssh/authorized_keys
    • Nastavenie správnych oprávnení a vlastníctva pre .ssh adresár a authorized_keys súbor.
      sudo chmod 700 /mnt/rootfs/home/pi/.ssh
      sudo chmod 600 /mnt/rootfs/home/pi/.ssh/authorized_keys
      sudo chown -R 1000:1000 /mnt/rootfs/home/pi/.ssh
    • Odpojenie root partície a bezpečné odobratie SD karty.
      sudo umount /mnt/rootfs
  4. Výsledné kódy a skripty:

    • Skript na vloženie SSH kľúča:
      export PUBKEY=$(cat ~/.ssh/id_rsa.pub)
      echo "$PUBKEY" | sudo tee /mnt/rootfs/home/pi/.ssh/authorized_keys
    • Obsah wpa_supplicant.conf (predpokladaný):
      
      ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
      update_config=1
      country=SK

    network={ ssid="NAZOV_VASEJ_WIFI_SIETE" psk="HESLO_K_WIFI" }

  5. Zistené problémy a riešenia (Gotchas):

    • Problém: Po vložení verejného kľúča stále vyžadovalo prihlásenie heslom.
    • Riešenie: Problém bol v nesprávnych oprávneniach na adresári .ssh alebo súbore authorized_keys na SD karte. SSH démon je veľmi citlivý na oprávnenia. Bolo kľúčové nastaviť 700 pre adresár, 600 pre súbor a správneho vlastníka (v tomto prípade UID/GID 1000:1000 pre default používateľa pi).
  6. Finálny výsledok / Záver: Bola úspešne vytvorená SD karta, ktorá po vložení do Raspberry Pi a zapnutí automaticky naštartuje systém, pripojí sa k WiFi a je okamžite dostupná na sieti cez SSH s použitím privátneho kľúča. Tým je pripravená na ďalšiu konfiguráciu na diaľku.

Vyriešené: 22. 8. 2025