JB Josef Burger
CZ | EN
Všechny články

4 min čtení

Jak nastavit Raspberry Pi 4 pro bootování z NVMe SSD

microSD karta je u domácího serveru slabé místo. Postup, jak Raspberry Pi 4 rozběhat úplně bez ní - od aktualizace EEPROM po zápis systému na SSD.

Raspberry Pi 4 už není jen malý počítač na hraní. Pokud ho chceme použít například jako domácí server, může být klasická microSD karta poměrně slabým místem. Provoz systému na SSD přináší nejen výrazně lepší výkon, ale také dává větší smysl pro zařízení, které má běžet dlouhodobě.

U Raspberry Pi 4 je navíc možné bootovat přímo z USB úložiště. V kombinaci s NVMe SSD tak můžeme systém provozovat úplně bez microSD karty.

V tomto článku se zaměřím pouze na přípravu Raspberry Pi 4, aktualizaci potřebného firmware, nastavení bootování z USB a následný zápis systému na SSD.

Co budeme potřebovat

Pro tento postup potřebujeme Raspberry Pi 4, napájecí zdroj a SSD disk připojený přes USB nebo NVMe adaptér určený pro Raspberry Pi.

V mém případě jde o Raspberry Pi 4B a NVMe SSD, připojené pomocí rozšiřující desky. Není přitom nutné mít konkrétní model SSD - důležité je, aby ho Raspberry Pi správně rozpoznalo přes USB rozhraní.

Na začátku budeme potřebovat také microSD kartu. Poslouží jen k tomu, abychom Raspberry Pi jednou spustili a nastavili mu bootloader - systém pak na SSD zapíšeme z počítače.

Nejdříve systém spusťte z microSD

Než budeme řešit bootování z SSD, potřebujeme Raspberry Pi normálně spustit z microSD karty.

Na kartu nahrajeme Raspberry Pi OS a Raspberry Pi necháme nabootovat do systému. Stačí přitom konzole, desktopové prostředí není potřeba - systém na SSD budeme zapisovat z počítače.

Jakmile systém naběhne, otevřeme terminál a nejprve všechno aktualizujeme.

sudo apt update
sudo apt full-upgrade

Po dokončení aktualizace Raspberry Pi restartujeme:

sudo reboot

Aktualizace EEPROM a bootloaderu

U Raspberry Pi 4 je důležité mít aktuální firmware, respektive EEPROM bootloader. Právě ten rozhoduje o tom, odkud se zařízení pokusí systém spustit.

Nejprve můžeme ověřit a případně nainstalovat dostupnou aktualizaci:

sudo rpi-eeprom-update -d -a

Pokud aktualizace proběhne, Raspberry Pi restartujeme:

sudo reboot

Po restartu už by měl být bootloader připravený na práci s USB úložištěm.

U starších instalací Raspberry Pi OS se můžete setkat také s příkazem rpi-update. Ten ale není běžně potřeba pro standardní aktualizaci systému a firmware. Pro bootování z USB je podstatné především mít aktuální EEPROM bootloader.

Nastavení bootování z USB

Nyní přichází samotná změna pořadí bootování.

Spustíme konfigurační nástroj:

sudo raspi-config

V nabídce najdeme nastavení bootloaderu a pořadí bootování. U Raspberry Pi OS se názvy jednotlivých položek mohou podle verze systému mírně lišit.

Nastavíme USB Boot jako zdroj, ze kterého se má Raspberry Pi pokusit systém spustit.

Smyslem tohoto nastavení je, aby Raspberry Pi při startu hledalo operační systém na připojeném USB úložišti, tedy v našem případě na SSD.

Po změně nastavení konfiguraci uložíme a Raspberry Pi restartujeme.

Zápis systému na SSD

Samotné nastavení bootloaderu ještě nestačí. Na SSD musí být samozřejmě nainstalovaný operační systém.

SSD proto připojíme přes USB adaptér k počítači - postup je stejný na macOS i na Linuxu.

Raspberry Pi Imager

Nejpohodlnější cesta je oficiální Raspberry Pi Imager, který je k dispozici pro macOS i Linux. V něm vybereme:

Než zápis spustíme, vyplatí se otevřít nastavení pod ikonou ozubeného kola a rovnou zadat jméno zařízení, uživatele, heslo, SSH a případně Wi-Fi. Systém pak po prvním startu naběhne rovnou přístupný, i když k Raspberry Pi nemáme připojený monitor.

Nebo z příkazové řádky

Kdo dá přednost terminálu, zapíše obraz pomocí dd. Stažený obraz bývá zabalený, takže ho nejdřív rozbalíme:

xz -d raspios.img.xz

Na Linuxu si ověříme, které zařízení SSD dostalo, a zapíšeme obraz:

lsblk
sudo dd if=raspios.img of=/dev/sda bs=4M status=progress conv=fsync

Na macOS se disk hledá přes diskutil a před zápisem se musí odpojit:

diskutil list
diskutil unmountDisk /dev/disk4
sudo dd if=raspios.img of=/dev/rdisk4 bs=4m

Verze dd na macOS průběh nevypisuje, stav ukáže Ctrl-T. Hlavně si cílové zařízení dvakrát ověřte - dd se na nic neptá a přepíše, co mu zadáte.

Délka zápisu závisí především na velikosti obrazu a rychlosti rozhraní.

První start bez microSD karty

Po zápisu systému Raspberry Pi vypneme:

sudo shutdown -h now

Následně vyjmeme microSD kartu, SSD odpojíme od počítače a připojíme ho k Raspberry Pi.

Raspberry Pi znovu zapneme.

Pokud je bootloader správně nastavený a systém byl na SSD zapsán správně, Raspberry Pi tentokrát nenabootuje z microSD, ale přímo z SSD.

Prakticky tak dostaneme Raspberry Pi 4, které může fungovat úplně bez paměťové karty.

Jak ověřit, že systém skutečně běží z SSD

Po přihlášení do systému je dobré si ověřit, odkud Raspberry Pi skutečně běží.

Pomůže například:

lsblk

Případně:

findmnt /

U kořenového souborového systému bychom měli vidět zařízení odpovídající SSD, nikoliv původní microSD kartu.

Pokud Raspberry Pi po vyjmutí microSD normálně nastartovalo a systém je dostupný, je konfigurace hotová.

Proč má SSD smysl

Pro běžné použití Raspberry Pi může být microSD karta úplně dostačující. Jakmile ale zařízení používáme jako server a systém na disk pravidelně zapisuje, SSD dává mnohem větší smysl.

Výhoda není jen v rychlosti. SSD nabídne také podstatně lepší odezvu při práci se systémem, databázemi nebo větším množstvím souborů. Raspberry Pi 4 navíc dokáže díky USB 3.0 využít rychlejší úložiště výrazně lépe než při provozu systému z běžné microSD karty.

Výsledkem je malý počítač, který může bez problémů sloužit jako domácí server a přitom už není závislý na microSD kartě jako hlavním systémovém úložišti.

Raspberry Pi domácí server Linux