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:
- Choose Device - Raspberry Pi 4
- Choose OS - Raspberry Pi OS
- Choose Storage - připojené SSD
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.