Fissítés: azóta már megjelent hivatalos support, tehát a lenti leírásom már outdated. Használható, de az sd kártyák instabilitása miatt megfontolandó már nem annyira használni. 🙂
A helyzet a következő.
Raspberry Pi 4-en jelen pillanatban stable firmware-el még nem elérhető usb boot. Ez azt jelenti, hogy csak microSD kártyát bedugva képes üzemelni a bankkártya méretű kis számítógép.
Probléma lehet még továbbá az is, hogy ha kifogyunk a memóriából akkor a rendszer elkezd akadni, megállni és – mivel nem tud, nem lehet mindent kilőni – kb a használhatatlanságig lassul. Nyilván ezt a problémát lehet orvosolni azzal, hogy egy nagyobb memóriával rendelkező Raspi4-et veszel, de ha esetleg abból is kifogynál még mindig van cserehely (swap) ahova az oprendszer a memóriából a nem használt dolgokat ki tudja lapozni.
Igen ám, a probléma viszont ott kezdődik, hogy a kis gépecske alapesetben sd kártyáról üzemel ami nem a gyors/sok írás-olvasásra lett kitalálva, magyarán szólva a gépünk marhára lassú lesz az SD kártya miatt.
Ezért (és a nagyobb tárkapacitásért) érdemesebb venni egy SSD-t és egy usb 3.0-s sata átalakítót és a Raspbian-t átköltöztetni rá.
Jelen leírásomban nem azt mutatom be, hogy hogyan tud abszolút SD kártya nélkül üzemelni a bébi, hanem azt, hogy egy már meglévő alap, buta, lassú sd kártya mellé hogyan lehet ssd-re átköltöztetni és belakni a teljes alaprendszert.
Összetevők
- minimum 8G-os sd kártya
- sata csatolós SSD
- sata-usb 3.0 átalakító, vagy beépítőkeret 2.5″-os meghajtóhoz
nem szükséges külső táposat venni, az ssd-t és lényegében a legtöbb hdd-t is képes a rpi üzembiztosan a saját hivatalos tápegységével meghajtani
Alaprendszer telepítése
Töltsd le az aktuális legújabb Raspbian-t (ez egyébként a 10-es Debian-nal egyenértékű), írd ki az sd kártyára, dugd be a raspi-ba, hálózatot is adj neki, indítsd el, hagyd, hogy összeszedje magát.
Ha megvan
sudo su raspi-config
paranccsal az Interfacing Options alatt engedélyezd az ssh-t. Ezek után már monitor nélkül egy másik számítógépről is rácsatlakozhatsz PuTTY-ot használva.
Előkészítés
Miután már él az ssh kapcsolat az összerakott usb-s ssd-t csatlakoztasd a raspi kék színű aljzatához. A kék színű aljzat a 3.0-s csatoló.
Konzolon (putty) csekkold le, hogy látja-e az ssd-t a raspi:
fdisk -l
/dev/sda-ként meg kellene jelenjen.
Ha nem egy lsusb paranccsal nézd meg biztosan megfelelő-e a csatlakozás, ellenőrizd a kábeleket, nézd meg pc-re dugva az ssd-t, hogy okés-e vagy sem.
Ha az fdisk-ben látható a /dev/sda akkor nyert ügyed van, mehetünk tovább.
A másolást megelőzően le kell formáznunk az ssd-t, figyelj oda, nehogy fontos adatokat tárolj rajta!
fdisk /dev/sda > o > n > p > enter, enter, enter > p (ezután kellene láss /dev/sda1-et) > w mkfs.ext4 /dev/sda1
Nyitottunk egy új partíciós táblát, létrehoztunk egy partíciót, majd ext4-re formáztuk.
Költözés
mkdir /mnt/ssd mount /dev/sda1 /mnt/ssd rsync --exclude="mnt" --exclude="lost+found" --exclude="sys" --exclude="proc" --exclude="cdrom" --exclude="media" --exclude="swapfile" -aP / /mnt/ssd/ mkdir /mnt/ssd/{mnt,proc,sys}
Megtörtént az ssd felcsatolása, és a gyökér fájlrendszer tükrözése. Fontos, hogy e művelet közben semmi mást ne csináljon a raspi. Igazából élő rendszeren nem is egészséges ilyet csinálni, mert inkonzisztencia léphet fel a másolt/cél fájlrendszerben, de mivel egy zsír új rendszerről van szó nagy kár nem történhet, max újrakezdjük.
Ha sikeresen lefutott a másolás akkor rá kell vennünk a raspi-t, hogy a gyökér fájlrendszert ne az sd kártyán keresse hanem a csatlakoztatott usb meghajtón.
Kérdezzük le először is az ssd-n lévő partuuid-ját:
blkid /dev/sda1
Ilyesmi fog fogadni:
/dev/sda1: UUID="b1b85e84-6440-4b65-8dd7-35ee51314143" TYPE="ext4" PARTUUID="3ea0d1f6-01"
Ebből nekünk a PARTUUID fog kelleni, másoljuk ki az értékét valahova jegyzettömbbe.
Ezután jön az a rész, hogy megmondjuk a raspi-nak, hogy ez a partuuid lesz az ő root-ja a jövőben.
nano /etc/fstab
Illetve
nano /mnt/ssd/etc/fstab
helyeken keressük meg azt a sort ahol a második „oszlop” csak egy „/”
Itt a PARTUUID= utáni értéket módosítsuk az ssd partuuid-jára, majd
nano /boot/cmdline.txt
Itt egyetlen sort találsz, keresd meg benne a root=PARTUUID=… részt, itt is módosítsd az értéket az ssd-d id-jára. Ha ezzel is megvagyunk akkor kb végeztünk is, nézzük meg sikerrel jártunk-e:
df -h
Ha a „Mounted on” oszlopot figyeljük és megkeressük a /-t akkor az „Avail” oszlopban látható az sd kártyánk mérete. A rendszer ekkor még nem ssd-t használja.
Indítsuk újra a raspi-t:
reboot
Bejelentkezést követően ismét nézzük meg a csatolt lemezeket és tadam:
root@winben:/home/winben# df -h Filesystem Size Used Avail Use% Mounted on /dev/root 880G 21G 815G 3% / devtmpfs 358M 0 358M 0% /dev tmpfs 487M 0 487M 0% /dev/shm tmpfs 487M 31M 456M 7% /run tmpfs 5.0M 4.0K 5.0M 1% /run/lock tmpfs 487M 0 487M 0% /sys/fs/cgroup /dev/mmcblk0p1 253M 53M 200M 21% /boot tmpfs 98M 0 98M 0% /run/user/1001 root@winben:/home/winben#
Ha az Avail oszlopban látható az ssd nagyobb kapacitása sikerrel jártunk.
Swap beállítása
Alapból 100Mb default cserehely/swap van egy raspbian-on beállítva, ez pont elég ahhoz, hogy az alkalmazások elinduljanak és közben ne egye meg az sd kártyát, de nekünk egy gyors ssd-nk lett, így már lehet nagyban gondolkozni.
fallocate -l 16G /swapfile chmod 600 /swapfile mkswap /swapfile swapon /swapfile
Készítettünk egy 16GB méretű cserehelyet az ssd-n és kvázi fel is csatoltuk. Nézzünk rá sikerrel jártunk-e:
swapon --show
vagy
htop
vagy
free -h
Ha látható a létrehozott 16G-s swapfile felcsatolva sikeres volt a létrehozás.
Viszont ahhoz, hogy újraindítás után is használja a rendszer fel kell vennünk fstab-ba:
echo '/swapfile none swap sw 0 0' | tee -a /etc/fstab
Mostantól újraindítást követően is nyomonkövethető lesz htop-ban mennyi ramot és mennyi swapot/cserehelyet használ a bébi.
Enjoy!