Pro ty z vás, kteří četli můj předchozí článek Raspberry PI jako „server pro vizualizaci života chytrého domu“? a neřídili se jím, mám skvělou zprávu. Všechno je jinak, lepší. Vy z vás, kteří jste to nejen četli, ale i jste podle toho postupovali mám zdvižený ukazováček. Zařízení vydrželo v provozu něco málo přes půl roku, než se na micro-SD kartě pokazilo bootování takovým způsobem, že jsem boot už nerozchodil. Datová část byla naštěstí „nedotčená“, ikdyž vydolovat data nebyl žádný med – ale o tom jindy.
Dobrá tedy, data „nějakým způsobem mám“, bootování jsem prohlásil za nšfunkční a začal jsem řešit opravu, tedy návrat do původního stavu. Otázka zní – chci se vracet do původního stavu? Odpověď je: „Ne, nechci“. Nebudu riskovat, že opět odejde micro-SD karta. Otázka zní, jestli by se nedalo té karty nějak zbavit, a odpověď je: „Dalo“. A o tom bude dnešní článek, jak se zbavit SD karty a bootovat přímo z mSATA SSD.
Cest je několik, já jsem si prošel těmi složitějšími a ty tady popisovat nebudu. Popíšu tu jedinou nejjednodušší. Na začátek předpokládám, že máte
- zkompletované a funkční Raspberry Pi-Desktop
- stažený a nainstalovaný Etcher
- poslední Raspbian Lite nebo Raspbian Image
- odzálohovaná data, pokud se bavíme o něčem, co už běží
- mSATA SSD – prázdný, bez dat
Pokud něco z toho nemáte, nebo nevíte o čem mluvím, doporučuji si přečíst můj předchozí článek.
Před tím, než bude možné Raspberry nabootovat z mass storage device (USB disk v případě RPi Desktop), je ze všeho nejdříve potřeba standardně nabootovat z micro-SD karty a povolit nastavení „USB boot mode“. Tato akce nastaví bit v OTP (One Time Programmable) paměti Raspberry Pi a změna tohoto bitu umožní boot z USB mass storage device. Pro ty z vás, kteří se diví, že mají v raspberry mSATA disk a čtou o USB, tak je to v pořádku – disk je připojen do systému jako USB. Jakmile je tento bit nastavený, již není třeba se o něj jakkoliv starat a v případě, že mSATA disk je nastaven jako bootovací, není nadále micro-SD karta potřeba.
Pozor, změna nastavení OTP bitu je neměnná – nelze vrátit zpět!
Nicméně, pokud budete opětovně chtít bootovat z micro-SD karty, stačí vložit jakoukoliv bootovatelnou kartu na které je Raspbian.
Nejprve je potřeba připravit složku /boot, nutné je mít aktuaílní soubory:
$ sudo apt-get update && sudo apt-get upgrade
Předchozí krok není potřeba provádět, pokud používáte Raspbian / Raspbian Lite release 2017-04-10 nebo novější. Update ale není nikdy na škodu a já jej provádím vždy.
Následně je třeba povolit USB Boot mode:
$ sudo echo program_usb_boot_mode=1 | sudo tee -a /boot/config.txt
Tento příkaz přidá „program_usb_boot_mode=1“ na konec souboru „/boot/config.txt„.
Restartujte Raspberry Pi příkazem sudo reboot. Po rebootu je potřeba zkontrolovat, že OTP bit byl nastaven korektně a to pomocí příakzu:
$ vcgencmd otp_dump | grep 17:
17:3020000a
Pokud je výstupem hodnota 0x3020000a tak byl OTP bit úspěšně nastaven, pokud je hodnota jiná, OTP bit nastaven nebyl.
nyní doporučuji odstranit přidaný řádek „program_usb_boot_mode“ ze souboru „config.txt“ z toho důvodu, kdybyste SD kartu dali do jiného Raspberry, aby se OTP byt nenastavil. Ne vždy je toto nastavení žádoucí. Upravit soubor můžete jednoduše pomocí příkazu
$ sudo nano /boot/config.txt
Příprava SSD pro boot
První část máme za sebou – máme poboleno bootování Raspberry z USB. Druhá část je o přípravě mSATA SSD, aby bylo z čeho bootovat. Protože máme jen Raspberry Pi-Desktop, čtečku micro-SD karet a notebook, je pro mne velmi komplikované připojit SSD k počítači a nahrát do něj image. Nejlepší by bylo mít mSATA – USB převodník. A ten nemám. No, ikdyž mám, jen o tom ještě nevím. Jak tedy nahrát image do mSATA SSD?
Vypněte Raspberry (sudo shutdown -h now a pak je potřeba ještě podržet vypínač dokud nezhasne)
Odpojde USB-mikroUSB propojku, která spojuje Raspberry s rozšiřující deskou pro mSATA SSD disk
Vezměte USB – microUSB kabel, který máte doma pro nabíjení Androidu nebo akční kamery, hodinek, čehokoliv – každá domácnost by takový kabel měla mít hned vedle lékárničky a diazepamu.
Připojte kabel do počítače (velké USB) a na RPi do zdířky odkud jste vypojili propojku.
Zapněte tlačítkem raspberry – rozsvítí se modrá LEDka, RPi možná začne bootovat z karty, to nás v tuto chvíli nezajímá.
Na počítači ověřte, že vidíte USB Mass Storage, tedy SSD disk, v mém případě 256GB. Pokud se tak již nestalo, přidělte mu písmenko.
Spusťte Etcher a vyberte image (Raspbian Lite v mém případě), vyberte správný disk a klikněte na Flash.
Pokud se zobrazí hláška, že disk je moc velký, tak ji ignorujte a nechejte image normálně zapsat na disk.
Po dokončení bezpečně odpojte USB Mass Storage,
Vypněte Raspberry přidržením tlačítka, vytáhněte kabel a vraťte propojku.
Vyjměte micro-SD kartu a zapněte raspberry.
Zvolejte 3x hurá a nezapomeňte si po přihlášení aktualizovat systém 😉