wlado's website

Raspberry Pi 3 - Boot from SSD

V tomto článku je popis instalace Raspbianu (Debian pro Raspberry Pi) na SSD disk. Díky úpravě firmware Raspberry Pi 3 a vyšší, je instalace triviální a je vpodstatě totožná s instalacé na SD kartu.

Komponenty
-------------
  • Raspberry Pi 3 Model B, revize 1.2
  • Raspbian 2017-11-29 (Stretch) 2018-11-13 Stretch lite
  • WD GREEN SSD 240GB
    na štítku je uvedena spotřeba 0,7 A
  • Napájecí adaptér USB 2,1 A
  • USB to SATA adapter AXAGO EE25-XA
  • MacBook s MacOS X 10.6.8

Poznámka: Výše uvedená sestava funguje více než rok bez jediného výpadku. Napájení utáhne pro kontrolní účely i HDMI monitor a USB dongle pro bezdrátovou myš a klávenici.

Známé potíže
------------
WD v současnosti nevyrábí SSD s větší kapacitou v GREEN variantě. Dostupný disk WD BLUE SSD 1TB má na štítku uvedenou spotřebu 1,6 A. Tato sestava je velmi nestabilní, při rebootu kdy nastává největší odběr elektřiny, se systém kouše a nakonec dojde k poškození souborového systému na disku. Je nutné použít samostatné napájení pro SSD. Některé adaptéry USB SATA mají sice druhou USB zástrčku pro napájení, ale ta je přímo propojená s první datovou USB zástrčkou a po připojení napájecího adaptéru pro SSD se zpětně po datovém kabelu napájí i Raspberry Pi 3 a sestava nejde korektně vypnout a dojde k poškození souborového systému.

1) Povolit bootování z USB na Raspberry Pi 3
Upozornění: Provede se pouze jednou u dalších reistalací se tento krok přeskočí.
--------------------------------------------

Raspberry Pi 3 s funkčním systémem Raspian 2017-4 a novější na SD kartě (viz předcházející článek: Raspberry Pi 3 - Instalace)
Připomenutí: Funkční je pouze na Raspberry Pi 3 a vyšší.
$ vcgencmd otp_dump | grep 17:

pokud napíše jiné číslo než 0x3020000a pak je nutný další krok
$ nano /boot/config.txt

na konec textu doplnit:
program_usb_boot_mode=1

restart raspberry pi
$ sudo reboot
kontrola
$ vcgencmd otp_dump | grep 17:
17:3020000a


Teď je jednou pro vždy nastavena možnost bootovat i z externího USB disku (toto nastavení už není možné změnit zpátky). Bootování z SD karty zůstává.
Poznámka: Je vhodné opět smazat z SD karty zapínání USB boot, aby se to nechtíc nenastavilo na jiných počítačích pokud se tam vsune SD karta.

2) Instalace systému na USB SSD
-------------------------------

Připojit USB SSD k Macovi
Restart macosx
2.1) Download Raspian Stretch a vyšší

2.2) Rozbalit stažený zip soubor na Plochu (Unzip *.zip) - *.img

2.3) Zobrazit seznam disků
$ diskutil list
/dev/disk0
#: TYPE NAME SIZE IDENTIFIER
0: GUID_partition_scheme *500.1 GB disk0
1: EFI 209.7 MB disk0s1
2: Apple_HFS HD500GB 499.2 GB disk0s2
3: Apple_Boot Recovery HD 650.0 MB disk0s3
/dev/disk1
#: TYPE NAME SIZE IDENTIFIER
0: FDisk_partition_scheme *240.1 GB disk1
1: Windows_FAT_32 BOOT 98.6 MB disk1s1
2: Linux 240.0 GB disk1s2

2.4) Odpojit disk
$ sudo diskutil unmount /dev/disk1s1
Password:
Volume NO NAME on disk1s1 unmounted
$

2.5) Instalace obrazu disku
$ sudo dd bs=1m if=/Users/user/Desktop/2017-09-07-raspbian-stretch.img of=/dev/rdisk1
Password:
4688+1 records in
4688+1 records out
4916019200 bytes transferred in 191.701890 secs (25644083 bytes/sec)
$

2.6) U headless (bez monitoru a klávesnice) instalace přidat prázdný soubor s názvem ssh do oddílu boot
$ cd /Volumes/boot/
$ touch ssh

2.7) vysunout disk - někdy to nefunguje*
$ diskutil eject /dev/rdisk1
Disk /dev/rdisk1 ejected
*(Volume failed to eject) pak vypnout terminal a vysunout disk z Finderu
$

2.8) Odpojit USB disk a pripojit do USB v Raspberry Pi 3
Připomenutí: Pro headless provoz (bez monitoru a klávesnice) je nutné před vyjmutím SSD ještě vytvořit obyčejný soubor v /boot/ s názvem SSH. Po spuštění v Raspberry Pi se povolí SSH a soubor je smazán. Pak je možné se vzdáleně přihlásit přes terminál pi@ip_adresa, heslo “raspberry”. Adresu lze zjistit z routeru, který ji přiděluje přes DHCP server.

2.9) Spustit Raspberry Pi 3 s připojeným USB SSD
Raspberry Pi nastartuje

2.10) Raspberrypi provede “resize disku” na plnou kapacitu

2.11) Změnit heslo z bezpečnostních důvodů hned
$ sudo raspi-config
1 Change User Password
$