VUT- nakladatelství Vutium
přejít na obsah přejít na navigaci

Linux E X P R E S, Raspberry Pi bez paměťové karty

Canon

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.


reklama

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.

Nahoru

Příspěvky

Raspberry Pi bez paměťové karty
sarlej 8. 11. 2018, 11:29:13
Odpovědět  Odkaz 
Diky za pekne sepsany navod. Uz bych to mel doma take konecne prehodit z sd karty, ale radeji bych neco o velikosti klasike flashky. Nemate nekdo tip na usb flashky ktere pouziva cipy jako v ssd?

A jeste par dotazu:
- 'SD Card Copier' dela to same co 'dd'?
- neni lepsi pouzit UUID partion misto cesty v fstab?
- nabootuje system z usb i bez prepnuteho otp bitu, nebo musim nejdrive nabootavat z sd karty, kde bude v config.txt prepnuti otp bitu?
- kdyz prepnu otp bit pro bootavani z usb, pujde nadale bootovat i z sd karty?
Re: Raspberry Pi bez paměťové karty
BlueScreener 8. 11. 2018, 12:50:44
Odpovědět  Odkaz 
Zkusil bych na AliExpressu nějaký adaptér USB to mSATA nebo M2.SATA. Dále sehnat od někoho, kdo upgradoval, malý SSD.

Klasické USB Flash nejsou konstruovány na tento typ použití. Brzo se upečou nebo chcípnou jelikož nemají wearleveling. Čím rychlejší USB, tím horší výdrž.
Raspberry Pi bez paměťové karty
Lubomír Čevela 8. 11. 2018, 13:26:18
Odpovědět  Odkaz 
SD Card Copier nebo jinak piclone má stejnou úlohu jako dd, jenom se snadněji používá.
PARTUUID místo cesty v fstab použít samozřejmě můžete.

Raspberry Pi bez přepnutí OTP bitu bootuje pouze z karty. Děkuji za upozornění, článek bude opraven. Úpravu konfiguračního souboru pro přepnutí OTP bitu musíte udělat v konfiguračním souboru na kartě, tedy v /boot/config.txt a projeví se až po restartu sestavy. Pokud Raspberry Pi najde ve slotu kartu ze systémem, dá jí přednost před USB i po přepnutí OTP bitu.

Malé externí SSD jsou na trhu např. SanDisk Extreme Portable SSD 250GB, ale start systému přímo z nich jsem zatím nezkoušel.
Raspberry Pi bez paměťové karty
Michal Ondřej 17. 11. 2018, 11:56:44
Odpovědět  Odkaz 
Díky za článek, hned jsem se pokusil převést kartu na SSD pomocí SD Card Copier. Výsledky byly podivné, např. data z mmcblk0p7 se nezkopírovala všechna, chyběla spousta adresářů, třeba /etc. Tak jsem pomocí dd přenesl pouze mmcblkp07 na sda7 a povedlo se. Rpi již startuje přímo z SSD, ale trvá to více jak dvojnásobek doby, než se rozběhne samotný start linuxu (jako by to startovalo na dvakrát, aspoň dle průběhu pohasnutí diod na rpi i USB SATA adaptéru). A ještě ten Sabrent adaptér docela zlobí v USB zásuvce RPI - stačí s ním zaveklat a disk odpadne. Tak jsem disk musel připojit přes USB prodlužovací kabel který sedí bez problému.

Přidat názor

Nejsou podporovány žádné značky, komentáře jsou jen čistě textové. Více o diskuzích a pravidlech najdete v nápovědě.
Diskuzi můžete sledovat pomocí RSS kanálu rss



 
 

Top články z OpenOffice.cz

Lubomír Čevela

Lubomír Čevela

Lubomír Čevela (*1968) pracuje jako vývojář pro jednu velkou nadnárodní společnost. Pokud zrovna něco nesepisuje, zabývá se fotografováním nebo hraním na basu.


  • Distribuce: Ubuntu, Mandriva

| proč linux | blog



Public Relations

Zabezpečení DNSSEC a česká doména

DNSSECChcete mít vlastní doménu a záleží vám nejen na kvalitním obsahu a profesionální prezentaci vlastní značky, ale také na jistotě zabezpečení domény? Chcete vědět, jaké zabezpečení zabraňuje podvržení stránek a která doména je důvěryhodná? Vše vám napoví zabezpečení DNSSEC.

Pokračování ...


Redakční blog

Redakce

Redakce, 21. prosinec

Pište pro LinuxEXPRES

Baví vás Linux? Pište o něm, není to nic těžkého. LinuxEXPRES hledá nové autory.


Pavel Fric

Pavel Fric, 23. říjen

Nové motivy pro přehrávač Sayonara

Pomozte rozšířit možnost měnit vzhled programu za běhu


Pavel Fric

Pavel Fric, 28. únor

Lollypop


Všechny blogy »

Onlio