Linux E X P R E S

Facebook

Raspberry Pi bez paměťové karty

raspberry_pi_logo.jpg

Modely 3B a 3B+ se umí obejít bez paměťové karty a spustit systém z libovolného paměťového zařízení, připojeného do USB portu. Vše vypadá jednoduše, ale diskuzní fóra se plní příspěvky zklamaných uživatelů, kterým se start z USB disku nedaří. Podívejme se na celou věc podrobněji.


Jak už bylo uvedeno v jednom z předchozích dílů seriálu, životnost paměťových karet je při provozu zatíženého systému omezená. Ze stejného důvodu nelze doporučit běžné USB flash disky. Proto má smysl uvažovat pouze o pevných discích nebo lépe SSD, jejichž konstrukce zvládne dlouhodobou zátěž bez potíží. SSD se vyplatí, ani ne tak z důvodu vyššího výkonu, ale především kvůli nižší spotřebě proudu. Díky ní si sestava vystačí s běžným 2,5A zdrojem k Raspberry Pi. Pokud přece jenom dáte přednost vyšší kapacitě pevného disku, pravděpodobně se neobejdete bez jeho samostatného napájení např. pomocí napájeného USB hubu.

Hardware

Podívejme se na sestavu malého „domácího“ serveru nebo pracovní stanice založené na Raspberry Pi. Namísto paměťové karty použijeme výprodejový 120 GB SSD Kingston A400 s rozhraním SATA a připojíme ho k Rasperry Pi pomocí adaptéru Sabrent USB 3.0 to SSD/2.5-Inch SATA I/II/IIIHard Drive Adapter (EC-SSHD).

sabrent_usb_adapter.jpg

Právě u adaptéru USB – SATA bude dobré udělat malou zastávku. Ačkoli je podobných zařízení na trhu spousta, Rasperry Pi dokáže spolehlivě startovat z SSD jenom pro použití několika z nich. Například moje pokusy s jinak osvědčeným adaptérem Axagon USB 3.0 to 2,5“ SATA skončily naprostým neúspěchem. Sestavu nebylo často možné vůbec spustit a nepomohlo jí ani použití napájeného USB hubu pro připojení SSD. Co se týče samotného Raspberry Pi, volte raději novější model 3B+. Přináší nejen o něco vyšší porci výkonu, ale především je u něj spuštění systému z USB zařízení ve srovnání s předchozím modelem 3B daleko spolehlivější.

Přenesení systému na SSD

Paměťovou kartu budeme přece jen potřebovat, ale pouze dočasně. Výchozím bodem je totiž instalace systému nebo kombinace systémů na paměťové kartě např. pomocí NOOBS. Aby postup zahrnoval i kombinace různých systémů, ukážeme si ho na „dual bootu“ Raspbianu a LibreELECu.

Nabootujte do Raspbianu. Spusťte aktualizaci systému pomocí příkazů:

apt update
apt upgrade

Zkopírujte obsah karty na SSD pomocí programu SD Card Copierer. Zdrojovou jednotkou je paměťová karta, která je v Raspianu reprezentovaná blokovým zařízením /dev/mmcblk0 a cílovou jednotkou je SSD, v Raspbianu /dev/sda. Jména jednotek jsou důležitá, použijeme je i v dalších krocích.

SD_card_copier_a.jpg

Všechny jednotky, které vznikly na SSD by se nyní měly připojit do systému. Proto odpojte kabel od SSD a znovu ho připojte. Jednotka /boot z SSD se automaticky připojí do složky /media/pi/boot, kořenová jednotka z SSD se připojí do složky /media/pi/root.

Nyní upravíme směrování kořenové jednotky Raspbianu na SSD v souboru v /media/pi/boot/cmdline.txt. Najdete v něm nasledující řádek

dwc_otg.lpm_enable=0 console=serial0,115200 console=tty1 root=/dev/mmcblk0p7 rootfstype=ext4 elevator=deadline fsck.repair=yes rootwait splash plymouth.ignore-serial-consoles quiet

Nahraďte cestu mířící ke kartě

root=/dev/mmcblk0p7

cestou k sedmému oddílu externího SSD

root=/dev/sda7

Čísla jednotek odpovídají instalaci Raspbianu a LibreELECu pomocí NOOBS. V případě jiné kombinace systémů budou odlišná. Dalším krokem je úprava připojení jednotek souborových systémů v souboru /media/pi/root/etc/fstab. Následující dva řádky v něm popisují připojení kořenové složky souborového systému a složky boot:

/dev/mmcblk0p6  /boot           vfat    defaults          0       2
/dev/mmcblk0p7  /               ext4    defaults,noatime  0       1

Upravte je tak, že blokové zařízení reprezentující paměťovou kartu nahradíte zařízením reprezentujícím SSD:

/dev/sda6  /boot           vfat    defaults          0       2
/dev/sda7  /               ext4    defaults,noatime  0       1

Kritickým faktorem pro spolehlivost startu z SSD je časový limit (time out). Prodlužte ho ze standardních 2s na 5s přidáním následujícího textu do souboru /media/pi/boot/config.txt:

program_usb_boot_timeout=1

Zároveň ve stejném souboru, ale umístěném na paměťové karty nastavte přepnutí OTP bitu (One Time Programmable) přímo v SoC Raspberry Pi. Jde o nevratnou změnu, níž dokáže Raspberry Pi startovat z USB mass storage zařízení. K tomu do souboru /boot/config.txt přidejte řádek:

program_usb_boot_mode=1

Přípravu máme hotovou. Restartujte Raspberry PI, aby došlo k přepnutí OTP bitu. SDD při tom nemusíte odpojovat. Raspberry Pi může i po přepnutí OTP bitu startovat z paměťové karty. Dokud máte kartu se systémem ve slotu, bude jí při startu dávána přednost před SSD. V dalším kroku vypněte Raspberry Pi, vytáhněte z něj paměťovou kartu a znovu ho spusťte. Oba systémy, tedy jak LibreELEC, tak Raspbian by měly být v tomto okamžiku plně funkční. Po startu Raspbianu ještě můžete smazat řádek program_usb_boot_mode=1 ze souboru /boot/config.txt, protože přepnutí OTP bitu je trvalé. Pro úplnost dodejme, že uvedený postup se dá snadno upravit pro různé kombinace operačních systému včetně čistého Raspbianu.

Odkládací soubor

Díky běhu přímo z SSD můžeme nyní udělat něco, co výrazně zlepší chod systému. Upravíme v Raspbianu velikost odkládacího souboru (swap file). Ten se standardně nachází ve složce /var/swap a jeho nastavení najdete v souboru /etc/dphys-swapfile. Změňte hodnotu parametru CONF_SWAPSIZE ze standardních 100 MB na 2 GB. V souboru tedy bude hodnota:

CONF_SWAPSIZE=2048

Potom restartujte stránkování pomocí příkazu

/etc/init.d/dphys-swapfile restart

nebo normálně restartujte celý systém. Velikost stránkovacího souboru můžete snadno zkontrolovat zadáním příkazu free do terminálu.

free.png

Stránkování paměti na SSD velice výrazně zvýší použitelnost Raspbianu na desktopu i na zatíženém serveru. Díky němu bude možné spustit více náročných aplikací současně a chod celého systému se stane výrazně plynulejším.

Co dodat na závěr. Pokud berete dlouhodobý provoz vašeho serveru nebo pracovní stanice založené na Rasperry Pi vážně, může být pro vás SSD velmi dobrým řešením. Při dnešních výprodejových cenách se rozhodně vyplatí. Pamětníci, kteří čtou tento seriál od začátku si jistě vzpomněli, že podobný postup byl uveden v jeho druhém dílu. Ovšem nyní jsme se díky novým modelům Raspberry Pi mohli obejít zcela bez paměťové karty.

Diskuze (10) Nahoru